11import lcd_utils
22import struct
3+ import sys
34
45try :
56 from esp32 import NVS # NOQA
@@ -95,30 +96,34 @@ class TouchCalData(object):
9596 def __init__ (self , name ):
9697 self ._config = NVS (name )
9798
98- blob = bytearray (24 )
99+ blob = bytearray (26 )
100+ mv = memoryview (blob )
99101 try :
100- self ._config .get_blob ("ts_config" , blob )
102+ self ._config .get_blob ("ts_config" , mv )
103+ except OSError as err :
104+ sys .print_exception (err )
101105
102- except OSError :
103106 self ._alphaX = None
104107 self ._betaX = None
105108 self ._deltaX = None
106109 self ._alphaY = None
107110 self ._betaY = None
108111 self ._deltaY = None
109- self ._mirror = None
112+ self ._mirror_x = None
113+ self ._mirror_y = None
110114 else :
111115 (
112- alphaX , betaX , deltaX , alphaY , betaY , deltaY , mirror
113- ) = struct .unpack ("<IIIIIIB " , blob )
116+ alphaX , betaX , deltaX , alphaY , betaY , deltaY , mirror_x , mirror_y
117+ ) = struct .unpack ("<IIIIIIBB " , blob )
114118
115119 self ._alphaX = round (lcd_utils .int_float_converter (alphaX ), 7 )
116120 self ._betaX = round (lcd_utils .int_float_converter (betaX ), 7 )
117121 self ._deltaX = round (lcd_utils .int_float_converter (deltaX ), 7 )
118122 self ._alphaY = round (lcd_utils .int_float_converter (alphaY ), 7 )
119123 self ._betaY = round (lcd_utils .int_float_converter (betaY ), 7 )
120124 self ._deltaY = round (lcd_utils .int_float_converter (deltaY ), 7 )
121- self ._mirror = mirror
125+ self ._mirror_x = bool (mirror_x )
126+ self ._mirror_y = bool (mirror_y )
122127
123128 self ._is_dirty = False
124129
@@ -131,7 +136,8 @@ def save(self):
131136 self ._alphaY ,
132137 self ._betaY ,
133138 self ._deltaY ,
134- self ._mirror
139+ self ._mirror_x ,
140+ self ._mirror_y
135141 ):
136142 self ._config .erase ('ts_config' )
137143
@@ -144,49 +150,41 @@ def save(self):
144150 deltaY = lcd_utils .int_float_converter (self ._deltaY )
145151
146152 blob = struct .pack (
147- '<IIIIIIB' ,
148- alphaX , betaX , deltaX , alphaY , betaY , deltaY , self ._mirror
153+ '<IIIIIIBB' ,
154+ alphaX , betaX , deltaX , alphaY , betaY , deltaY ,
155+ int (self ._mirror_x ), int (self ._mirror_y )
149156 )
150157
151- self ._config .set_blob ("ts_config" , blob )
158+ blob = bytearray (blob )
159+ mv = memoryview (blob )
160+
161+ self ._config .set_blob ("ts_config" , mv )
152162
153163 self ._config .commit ()
154164
155165 @property
156166 def mirrorX (self ):
157- if self ._mirror is None :
158- return None
159-
160- return bool (self ._mirror >> 1 & 0x1 )
167+ return self ._mirror_x
161168
162169 @mirrorX .setter
163170 def mirrorX (self , value ):
164- if self ._mirror is None :
165- self ._mirror = 0
166-
167- if value :
168- self ._mirror |= 0x2
171+ if value is None :
172+ self ._mirror_x = None
169173 else :
170- self ._mirror &= ~ 0x2
174+ self ._mirror_x = bool ( value )
171175
172176 self ._is_dirty = True
173177
174178 @property
175179 def mirrorY (self ):
176- if self ._mirror is None :
177- return None
178-
179- return bool (self ._mirror & 0x1 )
180+ return self ._mirror_y
180181
181182 @mirrorY .setter
182183 def mirrorY (self , value ):
183- if self ._mirror is None :
184- self ._mirror = 0
185-
186- if value :
187- self ._mirror |= 0x1
184+ if value is None :
185+ self ._mirror_y = None
188186 else :
189- self ._mirror &= ~ 0x1
187+ self ._mirror_y = bool ( value )
190188
191189 self ._is_dirty = True
192190
@@ -275,5 +273,7 @@ def reset(self):
275273 self .alphaY = None
276274 self .betaY = None
277275 self .deltaY = None
278- self ._mirror = None
276+ self ._mirror_x = None
277+ self ._mirror_y = None
278+ self ._is_dirty = True
279279 self .save ()
0 commit comments