blob: 715dcaca2ee91c961b0f01fb80edad4246d27489 [file] [log] [blame]
module IsobusCMMessageTypes {
import from General_Types all
import from IsobusMessageTypes all
type integer SEQ_NO (1..255) with { variant "FIELDLENGTH(8)" }
type integer NUMBER_OF_PACKETS (1..255) with { variant "FIELDLENGTH(8)" }
type OCT1 Ctrl
type record RequestToSend{
Ctrl ctrl ('10'O),
INT2 msgSizeInBytes,
NUMBER_OF_PACKETS totalNumberOfPackets,
INT1 maxNoOfPacketsInResponseToCTS,
PGN pgnOfMultiPacketMessage
} with { variant "" };
type record ClearToSend{
Ctrl ctrl ('11'O),
NUMBER_OF_PACKETS totalNumberOfPackets,
INT1 nextPacketNumber,
OCT1 reserved4 ('FF'O),
OCT1 reserved5 ('FF'O),
PGN pgnOfMultiPacketMessage
} with { variant "" };
type record EndOfMessageAcknowledgement{
Ctrl ctrl ('13'O),
INT2 msgSizeInByte,
NUMBER_OF_PACKETS totalNumberOfPackets,
OCT1 reserved5 ('FF'O),
PGN pgnOfMultiPacketMessage
} with { variant "" };
type enumerated e_ConnectionAbort_AbortReason {
alreadyInOneOrMoreConnectionManagedSessionsAndCannotSupportAnother (1),
systemResourcesWereNeededForAnotherTaskSoThisConnectionManagedSessionWasTerminated (2),
aTimeoutOccurredAndThisIsTheConnectionAbortToCloseTheSession (3),
cts_MessagesReceivedWhenDataTransferIsInProgress (4),
maximumRetransmitRequestLimitReached (5),
unexpectedDataTransferPacket (6),
badSequenceNumber (7),
duplicateSequenceNumber (8),
iso_11783_7_error_code_251 (251),
iso_11783_7_error_code_252 (252),
iso_11783_7_error_code_253 (253),
iso_11783_7_error_code_254 (254),
iso_11783_7_error_code_255 (255)}
with {variant "PADDING(octet)" };
type record ConnectionAbort{
Ctrl ctrl ('FF'O),
e_ConnectionAbort_AbortReason connectionAbortReason,
OCT1 reserved3 ('FF'O),
OCT1 reserved4 ('FF'O),
OCT1 reserved5 ('FF'O),
PGN pgnOfMultiPacketMessage
} with { variant "" };
type record BroadcastAnnounce{
Ctrl ctrl ('20'O),
INT2 msgSizeInByte,
NUMBER_OF_PACKETS totalNumberOfPackets,
OCT1 reserved5 ('FF'O),
PGN pgnOfMultiPacketMessage
} with { variant "" };
type union TP_CM
{
RequestToSend requestToSend,
ClearToSend clearToSend,
EndOfMessageAcknowledgement endOfMessageAcknowledgement,
BroadcastAnnounce broadcastAnnounce,
ConnectionAbort connectionAbort
}
with {variant "TAG (
// put all TP_CM request messages here
requestToSend, ctrl = '10'O;
clearToSend, ctrl = '11'O;
endOfMessageAcknowledgement, ctrl = '13'O;
broadcastAnnounce, ctrl = '20'O;
connectionAbort, ctrl = 'FF'O;
) "
}
// ETP_CM
type integer ETP_MSG_SIZE (1786..117440505)
with { variant "FIELDLENGTH(32)" };
type record ExtendedMessageRequestToSend{
Ctrl ctrl ('20'O),
ETP_MSG_SIZE msgSizeInBytes,
PGN pgnOfExtendedPacketedMessage
} with { variant "" };
type integer ETP_NextPacketNumberToSend (0..16777215)
with { variant "FIELDLENGTH(32)" };
type record ExtendedMessageClearToSend{
Ctrl ctrl ('21'O),
INT1 NumberOfPacketsToSend,
ETP_NextPacketNumberToSend nextPacketNumberToSend,
PGN pgnOfExtendedPacketedMessage
} with { variant "" };
type integer ETP_NoPacketForOffset (1..255)
with { variant "FIELDLENGTH(8)" };
type record ExtendedMessageDataPacketOffset{
Ctrl ctrl ('22'O),
ETP_NoPacketForOffset numberOfPacketsToWhichToApplyTheOffset,
NUMBER_OF_PACKETS totalNumberOfPackets,
ETP_NextPacketNumberToSend dataPacketOffset,
PGN pgnOfExtendedPacketedMessage
} with { variant "" };
type record ExtendedMessageEndOfMessageAcknowledgement{
Ctrl ctrl ('23'O),
ETP_MSG_SIZE numberOfBytesTransferred,
PGN pgnOfExtendedPacketedMessage
} with { variant "" };
type enumerated e_ETP_ConnectionAbort_AbortReason {
alreadyInOneOrMoreConnectionManagedSessionsAndCannotSupportAnother (1),
systemResourcesWereNeededForAnotherTaskSoThisConnectionManagedSessionWasTerminated (2),
aTimeoutOccurredAndThisIsTheConnectionAbortToCloseTheSession (3),
cts_MessagesReceivedWhenDataTransferIsInProgress (4),
maximumRetransmitRequestLimitReached (5),
unexpectedDataTransferPacket (6),
badSequenceNumber (7),
duplicateSequenceNumber (8),
unexpectedEDPO_Packet (9),
unexpectedEDPO_PGN (10),
edpo_numberOfPacketsIsGreaterThanCTS (11),
badEDPO_Offset (12),
unexpectedECTS_PGN (14),
ECTS_requestedPacketsExceedsMessageSize (15),
iso_11783_7_error_code_251 (251),
iso_11783_7_error_code_252 (252),
iso_11783_7_error_code_253 (253),
iso_11783_7_error_code_254 (254),
iso_11783_7_error_code_255 (255)}
with {variant "PADDING(octet)" };
type record ExtendedMessageConnectionAbort{
Ctrl ctrl ('FF'O),
e_ETP_ConnectionAbort_AbortReason connectionAbortReason,
OCT1 reserved3 ('FF'O),
OCT1 reserved4 ('FF'O),
OCT1 reserved5 ('FF'O),
PGN pgnOfExtendedPacketedMessage
} with { variant "" };
type union ETP_CM
{
ExtendedMessageRequestToSend extendedMessageRequestToSend,
ExtendedMessageClearToSend extendedMessageClearToSend,
ExtendedMessageDataPacketOffset extendedMessageDataPacketOffset,
ExtendedMessageEndOfMessageAcknowledgement extendedMessageEndOfMessageAcknowledgement,
ExtendedMessageConnectionAbort extendedMessageConnectionAbort
}
with {variant "TAG (
// put all ETP_CM request messages here
extendedMessageRequestToSend, ctrl = '20'O;
extendedMessageClearToSend, ctrl = '21'O;
extendedMessageDataPacketOffset, ctrl = '22'O;
extendedMessageEndOfMessageAcknowledgement, ctrl = '23'O;
extendedMessageConnectionAbort, ctrl = 'FF'O;
) "
}
type record TP_DT{
SEQ_NO seq_no,
OCT7 data
} with { variant "" }
type record ETP_DT{
SEQ_NO seq_no,
OCT7 data
} with { variant "" }
} with { encode "RAW" }