| module My_can_matrix { |
| |
| import from General_Types all // for OCT1, OCT2, ..., INT1, .. |
| import from Can all // for CAN_id |
| import from CAN_matrix_general_types all |
| |
| |
| |
| |
| //The following section is used for the automatic message encding / decoding |
| |
| type record CAN_MESSAGE_TESTFRAME0 |
| { |
| BIT11_MSB test_sig_11_bit_bitstring_lsb_coded, |
| BIT5_MSB test_sig_5_bit_bitstring_lsb_coded |
| |
| } with {variant "FIELDORDER(msb)" |
| variant (test_sig_11_bit_bitstring_lsb_coded) "BITORDERINFIELD(lsb)" |
| variant (test_sig_5_bit_bitstring_lsb_coded) "BITORDERINFIELD(lsb)" |
| } |
| |
| type record CAN_MESSAGE_TESTFRAME1 |
| { |
| BIT11_MSB test_sig_11_bit_bitstring_msb_coded, |
| BIT5_MSB test_sig_5_bit_bitstring_msb_coded |
| |
| } with {variant "FIELDORDER(msb)" |
| variant (test_sig_11_bit_bitstring_msb_coded) "BITORDERINFIELD(msb)" |
| variant (test_sig_5_bit_bitstring_msb_coded) "BITORDERINFIELD(msb)" |
| } |
| |
| type record CAN_MESSAGE_TESTFRAME2 |
| { |
| INT_BIT11_MSB test_sig_11_bit_integer_msb_coded, |
| INT_BIT5_MSB test_sig_5_bit_integer_msb_coded |
| |
| } with {variant "FIELDORDER(msb)" |
| variant (test_sig_11_bit_integer_msb_coded) "BITORDERINFIELD(msb)" |
| variant (test_sig_5_bit_integer_msb_coded) "BITORDERINFIELD(msb)" |
| } |
| |
| type record CAN_MESSAGE_TESTFRAME3 |
| { |
| OCT1 test_sig_1_byte_octetstring_msb_coded, |
| OCT2 test_sig_2_byte_octetstring_msb_coded |
| |
| } with {variant "" } |
| |
| type integer INT_BIT9_PADDED_2_MSB (0..511) with |
| { variant "ALIGN(right)"; |
| variant "FIELDLENGTH(11)" |
| variant "BITORDER(msb)" |
| }; |
| |
| type record CAN_MESSAGE_TESTFRAME4 |
| { |
| INT_BIT9_PADDED_2_MSB test_unsig_9_bit_2_padded_integer_msb_coded, |
| INT_BIT5_MSB test_sig_5_bit_integer_msb_coded |
| |
| } with {variant "FIELDORDER(msb)" |
| variant (test_unsig_9_bit_2_padded_integer_msb_coded) "BITORDERINFIELD(msb)" |
| variant (test_sig_5_bit_integer_msb_coded) "BITORDERINFIELD(msb)" |
| } |
| |
| type record CAN_MESSAGE_TESTFRAME5 |
| { |
| INT_BIT9_PADDED_2_MSB test_unsig_9_bit_2_padded_integer_msb_coded, |
| INT_BIT5_MSB test_sig_5_bit_integer_msb_coded |
| |
| } with {variant "FIELDORDER(msb)" |
| variant (test_unsig_9_bit_2_padded_integer_msb_coded) "BITORDERINFIELD(lsb)" |
| variant (test_sig_5_bit_integer_msb_coded) "BITORDERINFIELD(lsb)" |
| } |
| |
| type record CAN_MESSAGE_EXTENDEDFRAME1 |
| { |
| // CAN_id can_id ('80000001'O), |
| // according to SocketCAN Extended frames have the bit 31 set, |
| OCT2 test_sig_2_byte_octetstring_msb_coded |
| |
| } with {variant ""} |
| |
| type union CAN_MatrixPayloadUnion |
| { |
| CAN_MESSAGE_TESTFRAME0 message_MyTestframe0, |
| CAN_MESSAGE_TESTFRAME1 message_MyTestframe1, |
| CAN_MESSAGE_TESTFRAME2 message_MyTestframe2, |
| CAN_MESSAGE_TESTFRAME3 message_MyTestframe3, |
| CAN_MESSAGE_TESTFRAME4 message_MyTestframe4, |
| CAN_MESSAGE_TESTFRAME5 message_MyTestframe5, |
| CAN_MESSAGE_EXTENDEDFRAME1 message_extendedFrame1 |
| } |
| with {variant "" } |
| |
| type record CAN_MatrixUnion { |
| CAN_id can_id, |
| CAN_MatrixPayloadUnion can_pdu |
| } with {variant (can_pdu) "CROSSTAG( |
| message_MyTestframe0, can_id = '00000122'O; |
| message_MyTestframe1, can_id = '00000123'O; |
| message_MyTestframe2, can_id = '00000124'O; |
| message_MyTestframe3, can_id = '00000125'O; |
| message_MyTestframe4, can_id = '00000126'O; |
| message_MyTestframe5, can_id = '00000127'O; |
| message_extendedFrame1, can_id = '80000001'O; |
| )" |
| } |
| |
| |
| //The above section is used for the automatic message encding / decoding |
| |
| } with { encode "RAW" } |