43
43
44
44
45
45
class RORegBit :
46
- def __init__ (
47
- self , i2c , dev_addr , reg_addr , num_bytes , bit_location , endian = "" , fmt = "B"
48
- ):
46
+ def __init__ (self , i2c , dev_addr , reg_addr , num_bytes , bit_location , endian = "" , fmt = "B" ):
49
47
"""
50
48
Creates an :class:`RORegBit` object which allows read only access to a single bit within a register.
51
49
@@ -143,9 +141,7 @@ def __get__(self):
143
141
144
142
145
143
class RWRegBit :
146
- def __init__ (
147
- self , i2c , dev_addr , reg_addr , num_bytes , bit_location , endian = "" , fmt = "B"
148
- ):
144
+ def __init__ (self , i2c , dev_addr , reg_addr , num_bytes , bit_location , endian = "" , fmt = "B" ):
149
145
"""
150
146
Creates an :class:`RORegBit` object which allows read and write access to a single bit within a register.
151
147
@@ -231,9 +227,7 @@ def get_my_reg2(self, n):
231
227
232
228
__check_reg (self )
233
229
234
- self ._premask , self ._postmask = __calc_mask (
235
- bit_location , bit_location , num_bytes
236
- )
230
+ self ._premask , self ._postmask = __calc_mask (bit_location , bit_location , num_bytes )
237
231
238
232
del (i2c , dev_addr , reg_addr , num_bytes , bit_location , endian , fmt )
239
233
@@ -253,9 +247,7 @@ def __set__(self, setting):
253
247
254
248
255
249
class RORegBits :
256
- def __init__ (
257
- self , i2c , dev_addr , reg_addr , num_bytes , lsb , msb , endian = "" , fmt = "B"
258
- ):
250
+ def __init__ (self , i2c , dev_addr , reg_addr , num_bytes , lsb , msb , endian = "" , fmt = "B" ):
259
251
"""
260
252
Creates an :class:`RORegBits` object which allows read only access to a sequential set of bits within a bitfield.
261
253
@@ -359,9 +351,7 @@ def __get__(self):
359
351
360
352
361
353
class RWRegBits :
362
- def __init__ (
363
- self , i2c , dev_addr , reg_addr , num_bytes , lsb , msb , endian = "" , fmt = "B"
364
- ):
354
+ def __init__ (self , i2c , dev_addr , reg_addr , num_bytes , lsb , msb , endian = "" , fmt = "B" ):
365
355
"""
366
356
Creates an :class:`RWRegBits` object which allows read and write access to a sequential set of bits within a bitfield.
367
357
@@ -742,9 +732,7 @@ def __setbit(reg_object, setting):
742
732
value = pack (reg_object ._endian + reg_object ._fmt , value )
743
733
744
734
# Write to I2C
745
- reg_object ._i2c .writeto_mem (
746
- reg_object ._dev_addr , reg_object ._reg_addr , value
747
- )
735
+ reg_object ._i2c .writeto_mem (reg_object ._dev_addr , reg_object ._reg_addr , value )
748
736
749
737
# Return True for success
750
738
return True
@@ -775,7 +763,6 @@ def __getbits(reg_object):
775
763
def __setbits (reg_object , setting ):
776
764
if isinstance (reg_object , RWRegBits ):
777
765
if isinstance (setting , int ) and setting <= reg_object ._mask :
778
-
779
766
# Retrieve register value and unpack to int
780
767
value = reg_object ._i2c .readfrom_mem (
781
768
reg_object ._dev_addr , reg_object ._reg_addr , reg_object ._num_bytes
@@ -795,16 +782,12 @@ def __setbits(reg_object, setting):
795
782
value = struct .pack (reg_object ._endian + reg_object ._fmt , value )
796
783
797
784
# Write to device
798
- reg_object ._i2c .writeto_mem (
799
- reg_object ._dev_addr , reg_object ._reg_addr , value
800
- )
785
+ reg_object ._i2c .writeto_mem (reg_object ._dev_addr , reg_object ._reg_addr , value )
801
786
802
787
return True
803
788
804
789
else :
805
- raise ValueError (
806
- f"value of setting exceeds max value of bitfield: { reg_object ._mask } "
807
- )
790
+ raise ValueError (f"value of setting exceeds max value of bitfield: { reg_object ._mask } " )
808
791
else :
809
792
raise TypeError ("incorrect object type - must be RWRegBits" )
810
793
@@ -824,13 +807,10 @@ def __getreg(reg_object):
824
807
825
808
826
809
def __setreg (reg_object , settings ):
827
-
828
810
if isinstance (reg_object , RWReg ):
829
811
if isinstance (settings , (bytes , bytearray )):
830
812
# Write to device
831
- reg_object ._i2c .writeto_mem (
832
- reg_object ._dev_addr , reg_object ._reg_addr , settings
833
- )
813
+ reg_object ._i2c .writeto_mem (reg_object ._dev_addr , reg_object ._reg_addr , settings )
834
814
835
815
elif isinstance (settings , (tuple , list )):
836
816
# Where our data will go
@@ -867,10 +847,8 @@ def __calc_mask(lsb, msb, numbytes):
867
847
if lsb .__class__ () == int () and lsb >= 0 :
868
848
if msb .__class__ () == int () and msb >= 0 :
869
849
if numbytes .__class__ () == int () and numbytes >= 0 :
870
-
871
850
# Check for detectable errors
872
851
if msb >= lsb :
873
-
874
852
# Single bit mask
875
853
if msb == lsb :
876
854
pre , post = 0b0 , 0b0
@@ -887,7 +865,6 @@ def __calc_mask(lsb, msb, numbytes):
887
865
888
866
# Multibit mask
889
867
else :
890
-
891
868
# Values to return
892
869
pre , mask , post = 0b0 , 0b0 , 0b0
893
870
@@ -919,7 +896,6 @@ def __calc_mask(lsb, msb, numbytes):
919
896
920
897
921
898
def __check_reg (reg_object ):
922
-
923
899
# Alowable struct.pack/unpack formats to check for
924
900
fmts = {
925
901
"b" : 1 ,
@@ -939,20 +915,16 @@ def __check_reg(reg_object):
939
915
940
916
# Take in only register objects
941
917
if isinstance (reg_object , (RORegBit , RWRegBit , RORegBits , RWRegBits , ROReg , RWReg )):
942
-
943
918
# Make sure they are strings
944
919
if type (reg_object ._fmt ) == str and type (reg_object ._endian ) == str :
945
-
946
920
# Check each letter in format string, To see if allowable
947
921
for n in range (0 , len (reg_object ._fmt )):
948
922
if reg_object ._fmt [n ] in fmts :
949
923
# Add corresonding byte length to verify _num_bytes and format string agree
950
924
byte_count = byte_count + fmts [reg_object ._fmt [n ]]
951
925
952
926
else :
953
- raise ValueError (
954
- f"unsupported format code of '{ reg_object ._fmt [n ]} '"
955
- )
927
+ raise ValueError (f"unsupported format code of '{ reg_object ._fmt [n ]} '" )
956
928
957
929
if byte_count != reg_object ._num_bytes :
958
930
raise ValueError (
@@ -964,4 +936,4 @@ def __check_reg(reg_object):
964
936
else :
965
937
raise TypeError (
966
938
"incorrect object type - must be ROReg, RWReg, ROBits, RWBits, ROReg, RWReg"
967
- )
939
+ )
0 commit comments