@@ -14,9 +14,9 @@ int sdlp_tc_create_frame(sdlp_tc_frame_t *frame, uint16_t spacecraft_id,
1414 frame -> header .bypass_flag = 0 ;
1515 frame -> header .control_command_flag = 0 ;
1616 frame -> header .reserved = 0 ;
17- frame -> header .spacecraft_id = spacecraft_id & 0x3FF ;
18- frame -> header .virtual_channel_id = virtual_channel_id & 0x3F ;
19- frame -> header .frame_length = data_length - 1 ;
17+ frame -> header .spacecraft_id = ( uint16_t )( spacecraft_id & 0x3ffu ) ;
18+ frame -> header .virtual_channel_id = ( uint8_t )( virtual_channel_id & 0x3fu ) ;
19+ frame -> header .frame_length = ( uint16_t )( data_length - 1u ) ;
2020 frame -> header .frame_sequence_number = frame_seq_num ;
2121
2222 memcpy (frame -> data , data , data_length );
@@ -46,29 +46,29 @@ int sdlp_tc_encode_frame(const sdlp_tc_frame_t *frame, uint8_t *buffer,
4646
4747 size_t offset = 0 ;
4848
49- buffer [offset ++ ] = (frame -> header .transfer_frame_version << 6 ) |
50- ((frame -> header .bypass_flag & 0x01 ) << 5 ) |
51- ((frame -> header .control_command_flag & 0x01 ) << 4 ) |
52- ((frame -> header .reserved & 0x03 ) << 2 ) |
53- ((frame -> header .spacecraft_id >> 8 ) & 0x03 );
54- buffer [offset ++ ] = frame -> header .spacecraft_id & 0xFF ;
55- buffer [offset ++ ] = (( frame -> header .virtual_channel_id & 0x3F ) << 2 ) | 0x00 ;
56- buffer [offset ++ ] = (frame -> header .frame_length >> 8 ) & 0xFF ;
57- buffer [offset ++ ] = frame -> header .frame_length & 0xFF ;
49+ buffer [offset ++ ] = (uint8_t )(( frame -> header .transfer_frame_version << 6 ) |
50+ ((frame -> header .bypass_flag & 0x01u ) << 5 ) |
51+ ((frame -> header .control_command_flag & 0x01u ) << 4 ) |
52+ ((frame -> header .reserved & 0x03u ) << 2 ) |
53+ ((frame -> header .spacecraft_id >> 8 ) & 0x03u ) );
54+ buffer [offset ++ ] = ( uint8_t )( frame -> header .spacecraft_id & 0xffu ) ;
55+ buffer [offset ++ ] = (uint8_t )((( frame -> header .virtual_channel_id & 0x3fu ) << 2 ) | 0x00u ) ;
56+ buffer [offset ++ ] = (uint8_t )(( frame -> header .frame_length >> 8 ) & 0xffu ) ;
57+ buffer [offset ++ ] = ( uint8_t )( frame -> header .frame_length & 0xffu ) ;
5858
5959#ifdef TC_SEGMENT_HEADER_ENABLED
6060 if (!frame -> header .control_command_flag ) {
61- buffer [offset ++ ] = (( frame -> segment_header .sequence_flags & 0x03 ) << 6 ) |
62- (frame -> segment_header .map_id & 0x3F );
61+ buffer [offset ++ ] = (uint8_t )((( frame -> segment_header .sequence_flags & 0x03u ) << 6 ) |
62+ (frame -> segment_header .map_id & 0x3fu ) );
6363 }
6464#endif
6565
6666 memcpy (& buffer [offset ], frame -> data , frame -> data_length );
6767 offset += frame -> data_length ;
6868
6969 uint16_t crc = sdlp_crc16 (buffer , offset );
70- buffer [offset ++ ] = (crc >> 8 ) & 0xFF ;
71- buffer [offset ++ ] = crc & 0xFF ;
70+ buffer [offset ++ ] = (uint8_t )(( crc >> 8 ) & 0xffu ) ;
71+ buffer [offset ++ ] = ( uint8_t )( crc & 0xffu ) ;
7272
7373 * encoded_size = offset ;
7474
@@ -85,34 +85,34 @@ int sdlp_tc_decode_frame(const uint8_t *buffer, size_t buffer_size,
8585
8686 size_t offset = 0 ;
8787
88- frame -> header .transfer_frame_version = (buffer [offset ] >> 6 ) & 0x03 ;
89- frame -> header .bypass_flag = (buffer [offset ] >> 5 ) & 0x01 ;
90- frame -> header .control_command_flag = (buffer [offset ] >> 4 ) & 0x01 ;
91- frame -> header .reserved = (buffer [offset ] >> 2 ) & 0x03 ;
92- frame -> header .spacecraft_id = (( buffer [offset ] & 0x03 ) << 8 ) | buffer [offset + 1 ];
88+ frame -> header .transfer_frame_version = (uint8_t )(( buffer [offset ] >> 6 ) & 0x03u ) ;
89+ frame -> header .bypass_flag = (uint8_t )(( buffer [offset ] >> 5 ) & 0x01u ) ;
90+ frame -> header .control_command_flag = (uint8_t )(( buffer [offset ] >> 4 ) & 0x01u ) ;
91+ frame -> header .reserved = (uint8_t )(( buffer [offset ] >> 2 ) & 0x03u ) ;
92+ frame -> header .spacecraft_id = (uint16_t )((( uint16_t )( buffer [offset ] & 0x03u ) << 8 ) | buffer [offset + 1 ]) ;
9393 offset += 2 ;
9494
95- frame -> header .virtual_channel_id = (buffer [offset ] >> 2 ) & 0x3F ;
95+ frame -> header .virtual_channel_id = (uint8_t )(( buffer [offset ] >> 2 ) & 0x3fu ) ;
9696 offset ++ ;
9797
98- frame -> header .frame_length = (buffer [offset ] << 8 ) | buffer [offset + 1 ];
98+ frame -> header .frame_length = (uint16_t )((( uint16_t ) buffer [offset ] << 8 ) | buffer [offset + 1 ]) ;
9999 offset += 2 ;
100100
101101#ifdef TC_SEGMENT_HEADER_ENABLED
102102 if (!frame -> header .control_command_flag ) {
103103 if (buffer_size < TC_PRIMARY_HEADER_SIZE + TC_SEGMENT_HEADER_SIZE + TC_FRAME_ERROR_CONTROL_SIZE ) {
104104 return SDLP_ERROR_INVALID_FRAME ;
105105 }
106- frame -> segment_header .sequence_flags = (buffer [offset ] >> 6 ) & 0x03 ;
107- frame -> segment_header .map_id = buffer [offset ] & 0x3F ;
106+ frame -> segment_header .sequence_flags = (uint8_t )(( buffer [offset ] >> 6 ) & 0x03u ) ;
107+ frame -> segment_header .map_id = ( uint8_t )( buffer [offset ] & 0x3fu ) ;
108108 offset ++ ;
109- frame -> data_length = buffer_size - TC_PRIMARY_HEADER_SIZE - TC_SEGMENT_HEADER_SIZE -
110- TC_FRAME_ERROR_CONTROL_SIZE ;
109+ frame -> data_length = ( uint16_t )( buffer_size - TC_PRIMARY_HEADER_SIZE - TC_SEGMENT_HEADER_SIZE -
110+ TC_FRAME_ERROR_CONTROL_SIZE ) ;
111111 } else {
112- frame -> data_length = buffer_size - TC_PRIMARY_HEADER_SIZE - TC_FRAME_ERROR_CONTROL_SIZE ;
112+ frame -> data_length = ( uint16_t )( buffer_size - TC_PRIMARY_HEADER_SIZE - TC_FRAME_ERROR_CONTROL_SIZE ) ;
113113 }
114114#else
115- frame -> data_length = buffer_size - TC_PRIMARY_HEADER_SIZE - TC_FRAME_ERROR_CONTROL_SIZE ;
115+ frame -> data_length = ( uint16_t )( buffer_size - TC_PRIMARY_HEADER_SIZE - TC_FRAME_ERROR_CONTROL_SIZE ) ;
116116#endif
117117
118118 if (frame -> data_length > TC_MAX_DATA_SIZE ) {
@@ -122,7 +122,7 @@ int sdlp_tc_decode_frame(const uint8_t *buffer, size_t buffer_size,
122122 memcpy (frame -> data , & buffer [offset ], frame -> data_length );
123123 offset += frame -> data_length ;
124124
125- frame -> fecf = (buffer [offset ] << 8 ) | buffer [offset + 1 ];
125+ frame -> fecf = (uint16_t )((( uint16_t ) buffer [offset ] << 8 ) | buffer [offset + 1 ]) ;
126126
127127 uint16_t calculated_crc = sdlp_crc16 (buffer , buffer_size - TC_FRAME_ERROR_CONTROL_SIZE );
128128
@@ -138,8 +138,8 @@ int sdlp_tc_set_segment_header(sdlp_tc_frame_t *frame, sdlp_tc_seq_flag_t sequen
138138 if (!frame ) {
139139 return SDLP_ERROR_INVALID_PARAM ;
140140 }
141- frame -> segment_header .sequence_flags = sequence_flags & 0x03 ;
142- frame -> segment_header .map_id = map_id & 0x3F ;
141+ frame -> segment_header .sequence_flags = ( uint8_t )( sequence_flags & 0x03u ) ;
142+ frame -> segment_header .map_id = ( uint8_t )( map_id & 0x3fu ) ;
143143 return SDLP_SUCCESS ;
144144}
145145#endif
0 commit comments