@@ -340,3 +340,86 @@ def test_event_mapping(self):
340340 self .assertEqual (len (messages2 ), 1 )
341341 event_data2 = json .loads (messages2 [0 ].data )
342342 self .assertEqual (event_data2 ["text" ], "This event tests the event mapping" )
343+
344+ def test_value_scaling_combined (self ):
345+ register_def = {
346+ "number" : 100 ,
347+ "startbit" : 0 ,
348+ "nobits" : 16 ,
349+ "multiplier" : 3 ,
350+ "divisor" : 4 ,
351+ "decimalshiftright" : 1 ,
352+ "offset" : - 20 ,
353+ "signed" : False ,
354+ "measurementmapping" : {"templatestring" : '{"temp": %%}' },
355+ }
356+
357+ messages , _ = self .mapper .map_register (
358+ read_register = [20 ], register_def = register_def
359+ )
360+ data = json .loads (messages [0 ].data )
361+ self .assertAlmostEqual (data ["temp" ], 130.0 )
362+
363+ def test_value_scaling_multiplier (self ):
364+ register_def = {
365+ "number" : 100 ,
366+ "startbit" : 0 ,
367+ "nobits" : 16 ,
368+ "multiplier" : 3 ,
369+ "signed" : False ,
370+ "measurementmapping" : {"templatestring" : '{"temp": %%}' },
371+ }
372+
373+ messages , _ = self .mapper .map_register (
374+ read_register = [20 ], register_def = register_def
375+ )
376+ data = json .loads (messages [0 ].data )
377+ self .assertAlmostEqual (data ["temp" ], 60.0 )
378+
379+ def test_value_scaling_divisor (self ):
380+ register_def = {
381+ "number" : 100 ,
382+ "startbit" : 0 ,
383+ "nobits" : 16 ,
384+ "divisor" : 4 ,
385+ "signed" : False ,
386+ "measurementmapping" : {"templatestring" : '{"temp": %%}' },
387+ }
388+
389+ messages , _ = self .mapper .map_register (
390+ read_register = [20 ], register_def = register_def
391+ )
392+ data = json .loads (messages [0 ].data )
393+ self .assertAlmostEqual (data ["temp" ], 5.0 )
394+
395+ def test_value_scaling_decimalshiftright (self ):
396+ register_def = {
397+ "number" : 100 ,
398+ "startbit" : 0 ,
399+ "nobits" : 16 ,
400+ "decimalshiftright" : 2 ,
401+ "signed" : False ,
402+ "measurementmapping" : {"templatestring" : '{"temp": %%}' },
403+ }
404+
405+ messages , _ = self .mapper .map_register (
406+ read_register = [20 ], register_def = register_def
407+ )
408+ data = json .loads (messages [0 ].data )
409+ self .assertAlmostEqual (data ["temp" ], 2000.0 )
410+
411+ def test_value_scaling_offset (self ):
412+ register_def = {
413+ "number" : 100 ,
414+ "startbit" : 0 ,
415+ "nobits" : 16 ,
416+ "offset" : 10 ,
417+ "signed" : False ,
418+ "measurementmapping" : {"templatestring" : '{"temp": %%}' },
419+ }
420+
421+ messages , _ = self .mapper .map_register (
422+ read_register = [50 ], register_def = register_def
423+ )
424+ data = json .loads (messages [0 ].data )
425+ self .assertAlmostEqual (data ["temp" ], 60.0 )
0 commit comments