@@ -252,6 +252,129 @@ def test_deserialize_motion_r(self):
252
252
253
253
self .assertTrue (True )
254
254
255
+ def test_deserialize_motion_r_new_fw (self ):
256
+ firmware_state = [0x03 , 0x03 , 0x01 ]
257
+
258
+ self .firmware_revision = create_string_buffer (b'1.3.3' , 5 )
259
+ self .boardType = TestMetaWearBase .METAWEAR_MOTION_R_BOARD
260
+
261
+ state_buffer = self .to_string_buffer (TestMetaWearBoardSerialize .motion_r_state )
262
+ self .libmetawear .mbl_mw_metawearboard_deserialize (self .board , state_buffer .raw , len (state_buffer .raw ))
263
+ self .libmetawear .mbl_mw_metawearboard_initialize (self .board , self .initialized_fn )
264
+
265
+ state_array_size = c_uint (0 )
266
+ state_ptr = cast (self .libmetawear .mbl_mw_metawearboard_serialize (self .board , byref (state_array_size )), POINTER (c_ubyte * state_array_size .value ))
267
+
268
+ python_array = []
269
+ for i in range (0 , state_array_size .value ):
270
+ python_array .append (state_ptr .contents [i ])
271
+ self .libmetawear .mbl_mw_memory_free (state_ptr )
272
+
273
+ self .assertEqual (python_array [1 :4 ], firmware_state )
274
+
275
+ def test_serialize_readable_logger (self ):
276
+ logger_state = [
277
+ 0x1 ,
278
+ 0xff , 0x04 , 0xc1 , 0x00 , 0x01 , 0x00
279
+ ]
280
+
281
+ self .firmware_revision = create_string_buffer (b'1.2.5' , 5 )
282
+ self .boardType = TestMetaWearBase .METAWEAR_RPRO_BOARD
283
+ self .libmetawear .mbl_mw_metawearboard_initialize (self .board , self .initialized_fn )
284
+
285
+ readable_signal = self .libmetawear .mbl_mw_multi_chnl_temp_get_temperature_data_signal (self .board , 0 )
286
+ self .libmetawear .mbl_mw_datasignal_log (readable_signal , self .logger_created );
287
+
288
+ state_array_size = c_uint (0 )
289
+ state_ptr = cast (self .libmetawear .mbl_mw_metawearboard_serialize (self .board , byref (state_array_size )), POINTER (c_ubyte * state_array_size .value ))
290
+
291
+ python_array = []
292
+ for i in range (0 , state_array_size .value ):
293
+ python_array .append (state_ptr .contents [i ])
294
+ self .libmetawear .mbl_mw_memory_free (state_ptr )
295
+
296
+ print (python_array )
297
+ self .assertEqual (python_array [368 :], logger_state )
298
+
299
+ def test_deserialize_readable_logger (self ):
300
+ state = [
301
+ 1 ,
302
+ 5 , 2 , 1 ,
303
+ 1 , 49 ,
304
+ 25 ,
305
+ 1 , 0 , 0 , 0 ,
306
+ 2 , 0 , 0 , 0 ,
307
+ 3 , 1 , 1 , 0 ,
308
+ 4 , 1 , 0 , 4 , 0 , 3 , 1 , 2 ,
309
+ 5 , 0 , 0 , 0 ,
310
+ 6 , 0 , 0 , 0 ,
311
+ 7 , 0 , 0 , 0 ,
312
+ 8 , 0 , 0 , 0 ,
313
+ 9 , 0 , 0 , 1 , 28 ,
314
+ 10 , 0 , 0 , 1 , 28 ,
315
+ 11 , 0 , 2 , 5 , 8 , 128 , 45 , 0 , 0 ,
316
+ 12 , 0 , 0 , 1 , 8 ,
317
+ 13 , 0 , 0 , 0 ,
318
+ 15 , 0 , 0 , 0 ,
319
+ 16 , 255 , 255 ,
320
+ 17 , 0 , 0 , 0 ,
321
+ 18 , 0 , 0 , 0 ,
322
+ 19 , 0 , 1 , 0 ,
323
+ 20 , 0 , 0 , 0 ,
324
+ 21 , 255 , 255 ,
325
+ 22 , 255 , 255 ,
326
+ 23 , 255 , 255 ,
327
+ 24 , 255 , 255 ,
328
+ 25 , 255 , 255 ,
329
+ 254 , 0 , 0 , 0 ,
330
+ 21 ,
331
+ 1 , 1 , 255 , 0 , 1 , 0 , 1 , 1 , 0 , 0 ,
332
+ 3 , 4 , 255 , 0 , 7 , 2 , 3 , 2 , 1 , 0 ,
333
+ 3 , 4 , 255 , 0 , 8 , 2 , 1 , 2 , 1 , 0 ,
334
+ 3 , 4 , 255 , 0 , 8 , 2 , 1 , 2 , 1 , 2 ,
335
+ 3 , 4 , 255 , 0 , 8 , 2 , 1 , 2 , 1 , 4 ,
336
+ 3 , 25 , 255 , 0 , 1 , 0 , 1 , 1 , 0 , 0 ,
337
+ 3 , 28 , 255 , 0 , 7 , 2 , 3 , 2 , 1 , 0 ,
338
+ 3 , 218 , 255 , 0 , 1 , 0 , 1 , 2 , 0 , 0 ,
339
+ 4 , 193 , 0 , 0 , 2 , 6 , 1 , 2 , 1 , 0 ,
340
+ 4 , 193 , 1 , 0 , 2 , 6 , 1 , 2 , 1 , 0 ,
341
+ 4 , 193 , 2 , 0 , 2 , 6 , 1 , 2 , 1 , 0 ,
342
+ 4 , 193 , 3 , 0 , 2 , 6 , 1 , 2 , 1 , 0 ,
343
+ 18 , 1 , 255 , 0 , 3 , 3 , 1 , 4 , 0 , 0 ,
344
+ 18 , 2 , 255 , 0 , 4 , 3 , 1 , 4 , 1 , 0 ,
345
+ 18 , 193 , 255 , 0 , 3 , 3 , 1 , 4 , 0 , 0 ,
346
+ 19 , 5 , 255 , 0 , 5 , 4 , 3 , 2 , 1 , 0 ,
347
+ 19 , 5 , 255 , 0 , 6 , 4 , 1 , 2 , 1 , 0 ,
348
+ 19 , 5 , 255 , 0 , 6 , 4 , 1 , 2 , 1 , 2 ,
349
+ 19 , 5 , 255 , 0 , 6 , 4 , 1 , 2 , 1 , 4 ,
350
+ 19 , 7 , 255 , 0 , 5 , 4 , 3 , 2 , 1 , 0 ,
351
+ 20 , 3 , 255 , 0 , 1 , 0 , 1 , 4 , 0 , 0 ,
352
+ 4 ,
353
+ 3 , 40 , 3 , 7 , 48 , 129 , 11 , 192 , 0 , 20 , 20 , 20 , 64 , 10 , 24 , 72 , 8 , 17 , 0 , 0 ,
354
+ 18 , 44 , 0 ,
355
+ 19 , 40 , 0 ,
356
+ 20 , 0 , 3 ,
357
+ 1 ,
358
+ 226 , 118 , 142 , 47 , 90 , 1 , 0 , 0 , 21 , 4 , 0 , 0 , 5 ,
359
+ 1 ,
360
+ 255 , 4 , 193 , 0 , 1 , 0
361
+ ]
362
+
363
+ self .firmware_revision = create_string_buffer (b'1.2.5' , 5 )
364
+ self .boardType = TestMetaWearBase .METAWEAR_RPRO_BOARD
365
+
366
+ state_buffer = self .to_string_buffer (state )
367
+ self .libmetawear .mbl_mw_metawearboard_deserialize (self .board , state_buffer .raw , len (state_buffer .raw ))
368
+ self .libmetawear .mbl_mw_metawearboard_initialize (self .board , self .initialized_fn )
369
+
370
+ logger = self .libmetawear .mbl_mw_logger_lookup_id (self .board , 0 );
371
+ self .libmetawear .mbl_mw_logger_subscribe (logger , self .sensor_data_handler );
372
+
373
+ buffer = create_string_buffer (b'\x0b \x07 \xa0 \x37 \x43 \x00 \x00 \xc8 \x00 \x00 \x00 ' , 11 )
374
+ self .libmetawear .mbl_mw_metawearboard_notify_char_changed (self .board , buffer .raw , len (buffer ))
375
+
376
+ self .assertAlmostEqual (self .data_float .value , 25.0 )
377
+
255
378
class TestMetaWearBoardTearDownSerialize (TestMetaWearBase ):
256
379
def __init__ (self , * args , ** kwargs ):
257
380
super ().__init__ (* args , ** kwargs )
0 commit comments