@@ -483,6 +483,7 @@ def set_value(self, value: int) -> None:
483483 self .value = value
484484
485485 def set_field (self , field_name : str , field_value : int ) -> int :
486+ field_name = field_name .upper ()
486487 field_attrs = self .fields [field_name ]
487488 bit = field_attrs ['bit' ]
488489 size = field_attrs ['size' ]
@@ -492,6 +493,7 @@ def set_field(self, field_name: str, field_value: int) -> int:
492493 def get_field (
493494 self , field_name : str , preserve_field_position : Optional [bool ] = False
494495 ) -> int :
496+ field_name = field_name .upper ()
495497 if self .value is None :
496498 self .read ()
497499 field_attrs = self .fields [field_name ]
@@ -500,6 +502,7 @@ def get_field(
500502 return get_bits (self .value , field_bit , field_size , preserve_field_position )
501503
502504 def has_field (self , field_name : str ) -> bool :
505+ field_name = field_name .upper ()
503506 return self .fields .get (field_name , None ) is not None
504507
505508 def has_all_fields (self , field_names : List [str ]) -> bool :
@@ -645,6 +648,8 @@ def is_any_value(self, value: int, mask: Optional[int] = None) -> bool:
645648
646649 def get_field_value_if_equivalent (self , field : str , preserve_field_position : bool = False ) -> Optional [int ]:
647650 """Get field value if all instances have the same value for that field"""
651+ if len (self ) == 0 :
652+ return None
648653 field_value = self [0 ].get_field (field , preserve_field_position )
649654 if any (inst .get_field (field , preserve_field_position ) != field_value for inst in self [1 :]):
650655 return None
@@ -740,6 +745,10 @@ def has_field(self, field_name: str) -> bool:
740745 def get_field (self , field_name : str ,
741746 preserve_field_position : bool = False ) -> int :
742747 """Null implementation of get_field."""
748+ field_name = field_name .upper ()
743749 logger ().log_warning (f'Attempted to get field { field_name } '
744750 f'from null register { self .name } ' )
745751 return 0
752+
753+ def read_field (self , field_name : str , preserve_field_position : bool = False ) -> int :
754+ return self .get_field (field_name , preserve_field_position )
0 commit comments