@@ -38,6 +38,7 @@ pub struct SDOFrame {
38
38
39
39
impl SDOFrame {
40
40
const FRAME_DATA_SIZE : usize = 8 ;
41
+ const DATA_CONTENT_SIZE : usize = 4 ;
41
42
42
43
pub fn new_sdo_read_frame ( node_id : NodeID , index : u16 , sub_index : u8 ) -> Self {
43
44
Self {
@@ -76,7 +77,7 @@ impl ToSocketCANFrame for SDOFrame {
76
77
77
78
fn set_data ( & self , buf : & mut [ u8 ] ) -> usize {
78
79
assert ! ( buf. len( ) >= Self :: FRAME_DATA_SIZE ) ;
79
- assert ! ( self . data. len( ) <= 4 ) ;
80
+ assert ! ( self . data. len( ) <= Self :: DATA_CONTENT_SIZE ) ;
80
81
81
82
buf[ 0 ] = ( ( self . ccs as u8 ) << 5 )
82
83
+ match self . size_specified {
@@ -259,7 +260,7 @@ mod tests {
259
260
data : vec ! [ ] ,
260
261
}
261
262
. set_data ( & mut buf) ;
262
- assert_eq ! ( frame_data_size, SDOFrame :: FRAME_DATA_SIZE ) ;
263
+ assert_eq ! ( frame_data_size, 8 ) ;
263
264
assert_eq ! (
264
265
& buf[ ..frame_data_size] ,
265
266
& [ 0x40 , 0x18 , 0x10 , 0x02 , 0x00 , 0x00 , 0x00 , 0x00 ]
@@ -278,7 +279,7 @@ mod tests {
278
279
data : vec ! [ 0xFF ] ,
279
280
}
280
281
. set_data ( & mut buf) ;
281
- assert_eq ! ( frame_data_size, SDOFrame :: FRAME_DATA_SIZE ) ;
282
+ assert_eq ! ( frame_data_size, 8 ) ;
282
283
assert_eq ! (
283
284
& buf[ ..frame_data_size] ,
284
285
& [ 0x2F , 0x02 , 0x14 , 0x02 , 0xFF , 0x00 , 0x00 , 0x00 ]
@@ -297,7 +298,7 @@ mod tests {
297
298
data : vec ! [ 0xE8 , 0x03 ] ,
298
299
}
299
300
. set_data ( & mut buf) ;
300
- assert_eq ! ( frame_data_size, SDOFrame :: FRAME_DATA_SIZE ) ;
301
+ assert_eq ! ( frame_data_size, 8 ) ;
301
302
assert_eq ! (
302
303
& buf[ ..frame_data_size] ,
303
304
& [ 0x2B , 0x17 , 0x10 , 0x00 , 0xE8 , 0x03 , 0x00 , 0x00 ]
@@ -316,7 +317,7 @@ mod tests {
316
317
data : vec ! [ 0x0A , 0x06 , 0x00 , 0x00 ] ,
317
318
}
318
319
. set_data ( & mut buf) ;
319
- assert_eq ! ( frame_data_size, SDOFrame :: FRAME_DATA_SIZE ) ;
320
+ assert_eq ! ( frame_data_size, 8 ) ;
320
321
assert_eq ! (
321
322
& buf[ 0 ..frame_data_size] ,
322
323
& [ 0x23 , 0x00 , 0x12 , 0x01 , 0x0A , 0x06 , 0x00 , 0x00 ]
@@ -335,7 +336,7 @@ mod tests {
335
336
data : vec ! [ 0x92 , 0x01 , 0x02 , 0x00 ] ,
336
337
}
337
338
. set_data ( & mut buf) ;
338
- assert_eq ! ( frame_data_size, SDOFrame :: FRAME_DATA_SIZE ) ;
339
+ assert_eq ! ( frame_data_size, 8 ) ;
339
340
assert_eq ! (
340
341
& buf[ 0 ..frame_data_size] ,
341
342
& [ 0x43 , 0x00 , 0x10 , 0x00 , 0x92 , 0x01 , 0x02 , 0x00 ]
@@ -354,7 +355,7 @@ mod tests {
354
355
data : vec ! [ 0x02 , 0x00 , 0x01 , 0x06 ] , // SDO_ERR_ACCESS_RO
355
356
}
356
357
. set_data ( & mut buf) ;
357
- assert_eq ! ( frame_data_size, SDOFrame :: FRAME_DATA_SIZE ) ;
358
+ assert_eq ! ( frame_data_size, 8 ) ;
358
359
assert_eq ! (
359
360
& buf[ 0 ..frame_data_size] ,
360
361
& [ 0x80 , 0x00 , 0x10 , 0x00 , 0x02 , 0x00 , 0x01 , 0x06 ]
0 commit comments