Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CanMessageFactory.hpp
Go to the documentation of this file.
1#ifndef IV_COMMS_CAN_CANMESSAGEFACTORY_HPP
2#define IV_COMMS_CAN_CANMESSAGEFACTORY_HPP
3
5
6namespace iv::comms::can
7{
8
10{
11public:
12 static CMessageCan *readMessageCAN(const std::shared_ptr<iv::streams::IInputStream> &inputStream,
13 const std::string &sourceId = "FILE");
14 static void readMessageCAN(const std::shared_ptr<iv::streams::IInputStream> &inputMessage,
15 iv::types::timestamp *timestamp, uint32_t *msgId, uint8_t bytes[8],
16 uint32_t *lengthMessage, bool *isRTR, iv::types::subnetwork *idSubnetwork,
17 uint32_t *lengthMessageExtra, uint8_t **bytesExtra, bool *isExtended);
18 static void writeMessageCAN(const std::shared_ptr<iv::streams::IOutputStream> &output, uint32_t timestamp,
19 uint32_t msgId, const uint8_t bytes[8], uint32_t lengthMessage, bool isRTR,
20 iv::types::subnetwork idSubnetwork, uint32_t lengthMessageExtra,
21 const uint8_t *bytesExtra);
22
23 static CMessageCan *createMessage(const std::string &source, uint64_t msgIdAndUnitLocal, const uint8_t bytes[8],
24 uint64_t timeStamp, uint64_t lengthData, bool isRTR, uint16_t idSubnetwork,
25 uint64_t lengthDataExtra, uint8_t **bytesDataExtra, bool isExtended);
26 static CMessageCan *createMessageQuerySdoClient(iv::types::unitId idUnit, const uint8_t bytes[8],
27 uint64_t lengthData);
28
29 static CMessageCan *createMasterCommandLss(uint8_t cmdLSS);
30 static CMessageCan *createMasterCommandLssData(uint8_t cmdLSS, uint8_t data);
31
34 static CMessageCan *createNmtStartUnit(uint32_t idUnit);
36 static CMessageCan *createNmtStopUnit(uint16_t idUnit);
37
38 static CMessageCan *createCallAll(iv::types::unitId idStation, uint16_t zoneRepeaters, bool isCalling);
39 static CMessageCan *createCommandWatchCall(iv::types::unitId stationUnitId, uint16_t idRepeater, uint8_t command,
40 uint8_t value);
41 static CMessageCan *createOnDuty(iv::types::unitId idStation, uint16_t idRepeater, bool isOnDuty);
42 static CMessageCan *createUpdateWatchCall(iv::types::unitId idStation, uint16_t zoneRepeaters,
43 uint64_t watchCallState);
44
46 uint16_t indexChannel, uint8_t typeAlarmAndStatus, uint64_t time,
47 float valueAlarm);
49 uint16_t indexChannel, uint8_t typeAlarmAndStatus, uint64_t time,
50 float valueAlarm);
51
52 static CMessageCan *createValueAnalogFloat(uint16_t idUnit, uint16_t indexChannel, float value);
53 static CMessageCan *createValueAnalogULong(uint16_t idUnit, uint16_t indexChannel, uint32_t value);
54 static CMessageCan *createValueAnalogULongReversed(uint16_t idUnit, uint16_t indexChannel, uint32_t value);
55
56 static CMessageCan *createSegmentString(uint16_t idUnit, uint16_t indexChannel, const char *value,
57 uint64_t sizeValue, uint8_t segmentPosition, bool isLastSegment);
58
59 static std::shared_ptr<CMessageCan> createAck(uint16_t idUnit, uint16_t indexChannel);
60 static CMessageCan *createCommand(uint16_t idUnitSource, uint16_t idUnitDest, uint16_t indexChannel,
61 uint8_t command, uint64_t value);
62 static CMessageCan *createCommandCtrl(uint32_t idUnit, uint16_t indexChannel, uint64_t value);
63 static CMessageCan *createCommandSetAnalogOutput(uint16_t idUnit, uint16_t indexChannel, uint64_t value);
64 static CMessageCan *createTimeStamp(uint16_t numDaysSince1984, uint32_t numMilliseconds1984);
65
66 static CMessageCan *createUpdateGroupsInAlarm(iv::types::unitId idStation, const void *buffer, uint64_t numBytes);
67
70 static std::shared_ptr<CMessageCan> createSoundOff(iv::model::eShipArea areaStation);
71
72 static CMessageCan *createAlarm(iv::types::unitId idUnit, uint16_t idChannelIndex,
73 const iv::types::groupId &idGroup, uint8_t typeAlarm, float valueEventAlarm);
74 static CMessageCan *createTimestampAlarm(iv::types::unitId idUnit, uint16_t indexChannel,
75 const iv::types::groupId &idGroup, uint16_t numDaysSince1984,
76 uint64_t milliseconds);
77
78 static CMessageCan *createMessageSynchronizeTimeUtc(const iv::types::unitId &idStation, int16_t offsetGMT,
79 uint64_t timeUTC);
80
81 static CMessageCan *createUpdateAlarmSignal(uint16_t idUnit);
82 static CMessageCan *createUpdateAnalogSignal(uint16_t idUnit);
83 static CMessageCan *createUpdateStationDigitalSignal(uint16_t idUnit);
84
85 static CMessageCan *createUpdateGroupAlarmStates(iv::types::unitId stationUnitId, uint64_t groupAlarmStates);
87
88 static void writeValuesDataMessageAlarm(const std::shared_ptr<iv::streams::OutputStreamMemory> &output,
89 uint16_t indexChannel, uint8_t idGroupForLoms, uint8_t typeAlarm,
90 float valueAlarm);
91 static void writeValuesDataMessageAlarmTimestamp(const std::shared_ptr<iv::streams::OutputStreamMemory> &output,
92 uint16_t indexChannel, uint16_t numDaysSince1984,
93 uint32_t milliseconds);
94 static void writeValuesDataMessageTimestamp(const std::shared_ptr<iv::streams::OutputStreamMemory> &output,
95 uint16_t numDaysSince1984, uint32_t numMilliseconds1984);
96 static void writeValuesDataMessageAnalogInput(const std::shared_ptr<iv::streams::OutputStreamMemory> &output,
97 iv::types::unitId idUnit, uint16_t indexChannel, uint8_t typeData,
98 uint32_t value);
99 static void writeValuesDataMessageText(const std::shared_ptr<iv::streams::OutputStreamMemory> &output,
100 uint8_t idUnit, uint16_t indexChannel, const char *value, uint64_t sizeValue,
101 uint8_t segmentPosition, bool isLastSegment);
102 static void writeValuesDataMessageCommand(const std::shared_ptr<iv::streams::OutputStreamMemory> &output,
103 uint8_t idUnitLocalDest, uint16_t indexChannel, uint8_t command,
104 uint32_t value);
105 static void writeValuesDataMessageCommandBool(const std::shared_ptr<iv::streams::OutputStreamMemory> &output,
106 uint8_t idUnitLocalDest, uint16_t indexChannel, uint8_t command,
107 bool value);
108 static void writeValuesDataMessageCommandChar(const std::shared_ptr<iv::streams::OutputStreamMemory> &output,
109 uint8_t idUnitLocalDest, uint16_t indexChannel, uint8_t command,
110 uint8_t value);
111 static void writeValuesDataMessageGmtSync(const std::shared_ptr<iv::streams::OutputStreamMemory> &output,
112 uint8_t idUnitStation, int8_t offsetGMT, uint32_t timeUTC);
113 static void writeValuesDataMessageHeartbeat(const std::shared_ptr<iv::streams::OutputStreamMemory> &output,
114 iv::comms::eHeartbeatState heartbeatState, uint8_t heartbeatType);
115 static void writeValuesDataMessageHistorySync(const std::shared_ptr<iv::streams::OutputStreamMemory> &output,
116 const iv::types::stationId &idStation, uint16_t indexChannel,
117 uint8_t typeAlarmAndStatus, iv::types::timestamp time,
118 float valueAlarm);
119
120 static CMessageCan *createStationHeartbeat(types::unitId stationUnitId);
121
122private:
123 static CMessageCan *prvCreateBroadcast(iv::model::eShipArea areaStation, uint16_t typeBroadcast);
124 static CMessageCan *prvCreateCommand(iv::types::unitId idUnit, iv::types::unitId idUnitDest, uint16_t indexChannel,
125 uint8_t command, uint64_t value);
126 static CMessageCan *prvCreateHistorySynchronize(uint64_t msgId, iv::types::unitId idUnit,
127 const iv::types::stationId &idStation, uint16_t indexChannel,
128 uint8_t typeAlarmAndStatus, uint64_t time, float valueAlarm);
129 static CMessageCan *prvCreateMessageDefault(std::string_view source, uint32_t msgId, iv::types::unitId idUnitLocal,
130 const uint8_t bytes[8], iv::types::timestamp timeStamp,
131 uint32_t lengthData, bool isRTR, iv::types::subnetwork idSubnetwork);
132 static CMessageCan *prvCreateMessageDefault2(uint64_t cobId, iv::types::unitId idUnitLocal,
133 const std::shared_ptr<iv::streams::OutputStreamMemory> &output,
134 uint64_t sizeMessage, iv::types::subnetwork idSubnetwork);
135 static CMessageCan *prvCreateMessageWithBytesExtra(std::string_view source, uint64_t msgId,
136 iv::types::unitId idUnitLocal, const uint8_t *bytes,
137 iv::types::timestamp timeStamp, uint64_t lengthData,
138 iv::types::subnetwork idSubnetwork);
139 static CMessageCan *prvCreateMsgNmt(iv::types::unitId idUnitInSubnetwork, iv::types::subnetwork idSubnetwork,
140 uint8_t commandSpec);
141 static CMessageCan *prvCreateValueAnalogULong(uint32_t idUnit, uint16_t indexChannel, uint32_t value);
142};
143
144}// namespace iv::comms::can
145
146#endif//IV_COMMS_CAN_CANMESSAGEFACTORY_HPP
Definition CMessageCan.hpp:13
Definition CanMessageFactory.hpp:10
static CMessageCan * createCallAll(iv::types::unitId idStation, uint16_t zoneRepeaters, bool isCalling)
Definition CanMessageFactory.cpp:227
static void writeValuesDataMessageTimestamp(const std::shared_ptr< iv::streams::OutputStreamMemory > &output, uint16_t numDaysSince1984, uint32_t numMilliseconds1984)
Definition CanMessageFactory.cpp:526
static CMessageCan * createMessageQuerySdoClient(iv::types::unitId idUnit, const uint8_t bytes[8], uint64_t lengthData)
Definition CanMessageFactory.cpp:130
static CMessageCan * createNmtStopAllUnit()
Definition CanMessageFactory.cpp:212
static CMessageCan * createNmtSetPreOperationalUnit(iv::types::unitId idUnit)
Definition CanMessageFactory.cpp:187
static CMessageCan * createAlarm(iv::types::unitId idUnit, uint16_t idChannelIndex, const iv::types::groupId &idGroup, uint8_t typeAlarm, float valueEventAlarm)
Definition CanMessageFactory.cpp:397
static CMessageCan * prvCreateMessageDefault(std::string_view source, uint32_t msgId, iv::types::unitId idUnitLocal, const uint8_t bytes[8], iv::types::timestamp timeStamp, uint32_t lengthData, bool isRTR, iv::types::subnetwork idSubnetwork)
Definition CanMessageFactory.cpp:697
static CMessageCan * prvCreateMessageWithBytesExtra(std::string_view source, uint64_t msgId, iv::types::unitId idUnitLocal, const uint8_t *bytes, iv::types::timestamp timeStamp, uint64_t lengthData, iv::types::subnetwork idSubnetwork)
Definition CanMessageFactory.cpp:731
static CMessageCan * readMessageCAN(const std::shared_ptr< iv::streams::IInputStream > &inputStream, const std::string &sourceId="FILE")
Definition CanMessageFactory.cpp:40
static CMessageCan * createUpdateGroupsInAlarm(iv::types::unitId idStation, const void *buffer, uint64_t numBytes)
Definition CanMessageFactory.cpp:368
static CMessageCan * createBroadcastAck(iv::model::eShipArea areaStation)
Definition CanMessageFactory.cpp:381
static CMessageCan * createNmtStartAllUnit()
Definition CanMessageFactory.cpp:207
static void writeValuesDataMessageCommandBool(const std::shared_ptr< iv::streams::OutputStreamMemory > &output, uint8_t idUnitLocalDest, uint16_t indexChannel, uint8_t command, bool value)
Definition CanMessageFactory.cpp:577
static CMessageCan * createOnDuty(iv::types::unitId idStation, uint16_t idRepeater, bool isOnDuty)
Definition CanMessageFactory.cpp:257
static CMessageCan * createHistorySynchronize(iv::types::unitId idUnit, iv::types::stationId idStation, uint16_t indexChannel, uint8_t typeAlarmAndStatus, uint64_t time, float valueAlarm)
Definition CanMessageFactory.cpp:291
static CMessageCan * createBroadcastNewAlarm(iv::model::eShipArea areaStation)
Definition CanMessageFactory.cpp:386
static CMessageCan * createHistoryAckSynchronize(iv::types::unitId idUnit, iv::types::stationId idStation, uint16_t indexChannel, uint8_t typeAlarmAndStatus, uint64_t time, float valueAlarm)
Definition CanMessageFactory.cpp:299
static CMessageCan * createCommand(uint16_t idUnitSource, uint16_t idUnitDest, uint16_t indexChannel, uint8_t command, uint64_t value)
Definition CanMessageFactory.cpp:340
static void writeValuesDataMessageHistorySync(const std::shared_ptr< iv::streams::OutputStreamMemory > &output, const iv::types::stationId &idStation, uint16_t indexChannel, uint8_t typeAlarmAndStatus, iv::types::timestamp time, float valueAlarm)
Definition CanMessageFactory.cpp:622
static void writeValuesDataMessageGmtSync(const std::shared_ptr< iv::streams::OutputStreamMemory > &output, uint8_t idUnitStation, int8_t offsetGMT, uint32_t timeUTC)
Definition CanMessageFactory.cpp:603
static CMessageCan * createUpdateGroupAlarmStates(iv::types::unitId stationUnitId, uint64_t groupAlarmStates)
Definition CanMessageFactory.cpp:781
static CMessageCan * createSegmentString(uint16_t idUnit, uint16_t indexChannel, const char *value, uint64_t sizeValue, uint8_t segmentPosition, bool isLastSegment)
Creates a string msg segment to be sent.
Definition CanMessageFactory.cpp:489
static CMessageCan * createUpdateStationDigitalSignal(uint16_t idUnit)
Definition CanMessageFactory.cpp:471
static void writeValuesDataMessageHeartbeat(const std::shared_ptr< iv::streams::OutputStreamMemory > &output, iv::comms::eHeartbeatState heartbeatState, uint8_t heartbeatType)
Definition CanMessageFactory.cpp:612
static CMessageCan * createTimestampAlarm(iv::types::unitId idUnit, uint16_t indexChannel, const iv::types::groupId &idGroup, uint16_t numDaysSince1984, uint64_t milliseconds)
Definition CanMessageFactory.cpp:417
static CMessageCan * createMessageSynchronizeTimeUtc(const iv::types::unitId &idStation, int16_t offsetGMT, uint64_t timeUTC)
Definition CanMessageFactory.cpp:434
static CMessageCan * createTimeStamp(uint16_t numDaysSince1984, uint32_t numMilliseconds1984)
Definition CanMessageFactory.cpp:358
static CMessageCan * createCommandWatchCall(iv::types::unitId stationUnitId, uint16_t idRepeater, uint8_t command, uint8_t value)
Definition CanMessageFactory.cpp:242
static void writeValuesDataMessageCommandChar(const std::shared_ptr< iv::streams::OutputStreamMemory > &output, uint8_t idUnitLocalDest, uint16_t indexChannel, uint8_t command, uint8_t value)
Definition CanMessageFactory.cpp:590
static std::shared_ptr< CMessageCan > createAck(uint16_t idUnit, uint16_t indexChannel)
Definition CanMessageFactory.cpp:334
static CMessageCan * prvCreateCommand(iv::types::unitId idUnit, iv::types::unitId idUnitDest, uint16_t indexChannel, uint8_t command, uint64_t value)
Definition CanMessageFactory.cpp:647
static CMessageCan * createMasterCommandLssData(uint8_t cmdLSS, uint8_t data)
Definition CanMessageFactory.cpp:152
static void writeValuesDataMessageAlarm(const std::shared_ptr< iv::streams::OutputStreamMemory > &output, uint16_t indexChannel, uint8_t idGroupForLoms, uint8_t typeAlarm, float valueAlarm)
WRITE DATAS.
Definition CanMessageFactory.cpp:507
static CMessageCan * prvCreateHistorySynchronize(uint64_t msgId, iv::types::unitId idUnit, const iv::types::stationId &idStation, uint16_t indexChannel, uint8_t typeAlarmAndStatus, uint64_t time, float valueAlarm)
Definition CanMessageFactory.cpp:670
static CMessageCan * prvCreateValueAnalogULong(uint32_t idUnit, uint16_t indexChannel, uint32_t value)
Definition CanMessageFactory.cpp:766
static CMessageCan * createCommandCtrl(uint32_t idUnit, uint16_t indexChannel, uint64_t value)
Definition CanMessageFactory.cpp:346
static CMessageCan * createValueAnalogULong(uint16_t idUnit, uint16_t indexChannel, uint32_t value)
Definition CanMessageFactory.cpp:318
static CMessageCan * createCommandSetAnalogOutput(uint16_t idUnit, uint16_t indexChannel, uint64_t value)
Definition CanMessageFactory.cpp:352
static void writeValuesDataMessageText(const std::shared_ptr< iv::streams::OutputStreamMemory > &output, uint8_t idUnit, uint16_t indexChannel, const char *value, uint64_t sizeValue, uint8_t segmentPosition, bool isLastSegment)
Definition CanMessageFactory.cpp:544
static void writeValuesDataMessageAnalogInput(const std::shared_ptr< iv::streams::OutputStreamMemory > &output, iv::types::unitId idUnit, uint16_t indexChannel, uint8_t typeData, uint32_t value)
Definition CanMessageFactory.cpp:534
static void writeMessageCAN(const std::shared_ptr< iv::streams::IOutputStream > &output, uint32_t timestamp, uint32_t msgId, const uint8_t bytes[8], uint32_t lengthMessage, bool isRTR, iv::types::subnetwork idSubnetwork, uint32_t lengthMessageExtra, const uint8_t *bytesExtra)
Definition CanMessageFactory.cpp:90
static std::shared_ptr< CMessageCan > createSoundOff(iv::model::eShipArea areaStation)
Definition CanMessageFactory.cpp:391
static CMessageCan * createUpdateAnalogSignal(uint16_t idUnit)
Definition CanMessageFactory.cpp:460
static CMessageCan * createNmtStopUnit(uint16_t idUnit)
Definition CanMessageFactory.cpp:217
static CMessageCan * createMessage(const std::string &source, uint64_t msgIdAndUnitLocal, const uint8_t bytes[8], uint64_t timeStamp, uint64_t lengthData, bool isRTR, uint16_t idSubnetwork, uint64_t lengthDataExtra, uint8_t **bytesDataExtra, bool isExtended)
Definition CanMessageFactory.cpp:115
static CMessageCan * prvCreateBroadcast(iv::model::eShipArea areaStation, uint16_t typeBroadcast)
Definition CanMessageFactory.cpp:634
static CMessageCan * prvCreateMessageDefault2(uint64_t cobId, iv::types::unitId idUnitLocal, const std::shared_ptr< iv::streams::OutputStreamMemory > &output, uint64_t sizeMessage, iv::types::subnetwork idSubnetwork)
Definition CanMessageFactory.cpp:708
static void writeValuesDataMessageCommand(const std::shared_ptr< iv::streams::OutputStreamMemory > &output, uint8_t idUnitLocalDest, uint16_t indexChannel, uint8_t command, uint32_t value)
Definition CanMessageFactory.cpp:567
static CMessageCan * createUpdateAlarmSignal(uint16_t idUnit)
Definition CanMessageFactory.cpp:449
static CMessageCan * createStationHeartbeat(types::unitId stationUnitId)
Definition CanMessageFactory.cpp:163
static CMessageCan * createValueAnalogFloat(uint16_t idUnit, uint16_t indexChannel, float value)
Definition CanMessageFactory.cpp:308
static CMessageCan * createMasterCommandLss(uint8_t cmdLSS)
Definition CanMessageFactory.cpp:142
static void writeValuesDataMessageAlarmTimestamp(const std::shared_ptr< iv::streams::OutputStreamMemory > &output, uint16_t indexChannel, uint16_t numDaysSince1984, uint32_t milliseconds)
Definition CanMessageFactory.cpp:517
static CMessageCan * prvCreateMsgNmt(iv::types::unitId idUnitInSubnetwork, iv::types::subnetwork idSubnetwork, uint8_t commandSpec)
Definition CanMessageFactory.cpp:751
static CMessageCan * createNmtStartUnit(uint32_t idUnit)
Definition CanMessageFactory.cpp:197
static CMessageCan * createValueAnalogULongReversed(uint16_t idUnit, uint16_t indexChannel, uint32_t value)
Definition CanMessageFactory.cpp:324
static CMessageCan * createUpdateWatchCall(iv::types::unitId idStation, uint16_t zoneRepeaters, uint64_t watchCallState)
Definition CanMessageFactory.cpp:273
Definition AbstractMessageProcessor.hpp:12
uint16_t idUnitStation(uint16_t idStation)
Definition utils.hpp:200
bool isLastSegment(const uint8_t command)
Definition ParametersDownloadManager.cpp:2481
eHeartbeatState
Definition enums.hpp:297
eShipArea
Definition enums.hpp:11
uint64_t timestamp
Definition types.hpp:21
uint16_t subnetwork
Definition types.hpp:76
uint16_t unitId
Definition types.hpp:77
std::string stationId
Definition types.hpp:75
std::string groupId
Definition types.hpp:70