| 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" } |
| |