@@ -484,12 +484,12 @@ def get_instance(self) -> Any:
484484 def set_value (self , value : int ) -> None :
485485 self .value = value
486486
487- def set_field (self , field_name : str , field_value : int ) -> int :
487+ def set_field (self , field_name : str , field_value : int , preserve_field_position : Optional [ bool ] = False ) -> int :
488488 field_name = field_name .upper ()
489489 field_attrs = self .fields [field_name ]
490490 bit = field_attrs ['bit' ]
491491 size = field_attrs ['size' ]
492- self .value = set_bits (bit , size , self .value , field_value )
492+ self .value = set_bits (bit , size , self .value , field_value , preserve_field_position )
493493 return self .value
494494
495495 def get_field (
@@ -526,13 +526,13 @@ def get_field_mask(
526526 return mask
527527
528528 def write_field (
529- self , field_name : str , field_value : int , update_value : bool = False
529+ self , field_name : str , field_value : int , update_value : bool = False , preserve_field_position : Optional [ bool ] = False
530530 ) -> None :
531531 if update_value or self .value is None :
532532 if self .value is None :
533533 self .logger .log_debug (f'Value is None for { self .name } . Reading value' )
534534 self .read ()
535- new_value = self .set_field (field_name , field_value )
535+ new_value = self .set_field (field_name , field_value , preserve_field_position )
536536 self .write (new_value )
537537
538538 def read_field (
0 commit comments