@@ -39,101 +39,105 @@ def __init__(self, indev, i2c):
3939self ._buf = bytearray (1 )
4040self ._mv = memoryview (self ._buf )
4141
42- self ._config_data = bytearray (184 )
42+ self ._config_data = bytearray (186 )
4343self ._config_mv = memoryview (self ._config_data )
4444
45- self ._i2c . read_mem (_CONFIG_START_REG ,buf = self ._config_mv )
45+ self ._indev . _read_reg (_CONFIG_START_REG ,buf = self ._config_mv [ 2 :] )
4646
4747@property
4848def width (self ):
4949return (
50- (self ._config_data [_X_OUTPUT_MAX_HIGH_POS ]<< 8 )|
51- self ._config_data [_X_OUTPUT_MAX_LOW_POS ]
50+ (self ._config_data [_X_OUTPUT_MAX_HIGH_POS + 2 ]<< 8 )|
51+ self ._config_data [_X_OUTPUT_MAX_LOW_POS + 2 ]
5252 )
5353
5454@width .setter
5555def width (self ,value ):
56- self ._config_data [_X_OUTPUT_MAX_LOW_POS ]= value & 0xFF
57- self ._config_data [_X_OUTPUT_MAX_HIGH_POS ]= (value >> 8 )& 0xFF
56+ self ._config_data [_X_OUTPUT_MAX_LOW_POS + 2 ]= value & 0xFF
57+ self ._config_data [_X_OUTPUT_MAX_HIGH_POS + 2 ]= (value >> 8 )& 0xFF
5858
5959@property
6060def height (self ):
6161return (
62- (self ._config_data [_Y_OUTPUT_MAX_HIGH_POS ]<< 8 )|
63- self ._config_data [_Y_OUTPUT_MAX_LOW_POS ]
62+ (self ._config_data [_Y_OUTPUT_MAX_HIGH_POS + 2 ]<< 8 )|
63+ self ._config_data [_Y_OUTPUT_MAX_LOW_POS + 2 ]
6464 )
6565
6666@height .setter
6767def height (self ,value ):
68- self ._config_data [_Y_OUTPUT_MAX_LOW_POS ]= value & 0xFF
69- self ._config_data [_Y_OUTPUT_MAX_HIGH_POS ]= (value >> 8 )& 0xFF
68+ self ._config_data [_Y_OUTPUT_MAX_LOW_POS + 2 ]= value & 0xFF
69+ self ._config_data [_Y_OUTPUT_MAX_HIGH_POS + 2 ]= (value >> 8 )& 0xFF
7070
7171@property
7272def noise_reduction (self ):
73- return self ._config_data [_NOISE_REDUCTION_POS ]& 0x0F
73+ return self ._config_data [_NOISE_REDUCTION_POS + 2 ]& 0x0F
7474
7575@noise_reduction .setter
7676def noise_reduction (self ,value ):
77- upper_val = self ._config_data [_NOISE_REDUCTION_POS ]>> 4
78- self ._config_data [_NOISE_REDUCTION_POS ]= (upper_val << 4 )| (value & 0x0F )
77+ upper_val = self ._config_data [_NOISE_REDUCTION_POS + 2 ]>> 4
78+ self ._config_data [_NOISE_REDUCTION_POS + 2 ]= (upper_val << 4 )| (value & 0x0F )
7979
8080@property
8181def touch_press_level (self ):
82- return self ._config_data [_TOUCH_PRESS_LEVEL_POS ]
82+ return self ._config_data [_TOUCH_PRESS_LEVEL_POS + 2 ]
8383
8484@touch_press_level .setter
8585def touch_press_level (self ,value ):
86- self ._config_data [_TOUCH_PRESS_LEVEL_POS ]= value & 0xFF
86+ self ._config_data [_TOUCH_PRESS_LEVEL_POS + 2 ]= value & 0xFF
8787
8888@property
8989def touch_leave_level (self ):
90- return self ._config_data [_TOUCH_LEAVE_LEVEL_POS ]
90+ return self ._config_data [_TOUCH_LEAVE_LEVEL_POS + 2 ]
9191
9292@touch_leave_level .setter
9393def touch_leave_level (self ,value ):
94- self ._config_data [_TOUCH_LEAVE_LEVEL_POS ]= value & 0xFF
94+ self ._config_data [_TOUCH_LEAVE_LEVEL_POS + 2 ]= value & 0xFF
9595
9696@property
9797def pad_left (self ):
98- return self ._config_data [_HOR_SPACE_POS ]>> 4
98+ return self ._config_data [_HOR_SPACE_POS + 2 ]>> 4
9999
100100@pad_left .setter
101101def pad_left (self ,value ):
102- self ._config_data [_HOR_SPACE_POS ]= (value << 4 )| self .pad_right
102+ self ._config_data [_HOR_SPACE_POS + 2 ]= (value << 4 )| self .pad_right
103103
104104@property
105105def pad_right (self ):
106- return self ._config_data [_HOR_SPACE_POS ]& 0xF
106+ return self ._config_data [_HOR_SPACE_POS + 2 ]& 0xF
107107
108108@pad_right .setter
109109def pad_right (self ,value ):
110- self ._config_data [_HOR_SPACE_POS ]= (self .pad_left << 4 )| (value & 0xF )
110+ self ._config_data [_HOR_SPACE_POS + 2 ]= (self .pad_left << 4 )| (value & 0xF )
111111
112112@property
113113def pad_top (self ):
114- return self ._config_data [_VER_SPACE_POS ]>> 4
114+ return self ._config_data [_VER_SPACE_POS + 2 ]>> 4
115115
116116@pad_top .setter
117117def pad_top (self ,value ):
118- self ._config_data [_VER_SPACE_POS ]= (value << 4 )| self .pad_bottom
118+ self ._config_data [_VER_SPACE_POS + 2 ]= (value << 4 )| self .pad_bottom
119119
120120@property
121121def pad_bottom (self ):
122- return self ._config_data [_VER_SPACE_POS ]& 0xF
122+ return self ._config_data [_VER_SPACE_POS + 2 ]& 0xF
123123
124124@pad_bottom .setter
125125def pad_bottom (self ,value ):
126- self ._config_data [_VER_SPACE_POS ]= (self .pad_top << 4 )| (value & 0xF )
126+ self ._config_data [_VER_SPACE_POS + 2 ]= (self .pad_top << 4 )| (value & 0xF )
127127
128128def save (self ):
129- checksum = ((~ sum (self ._config_data ))+ 1 )& 0xFF
129+ checksum = ((~ sum (self ._config_data [ 2 :] ))+ 1 )& 0xFF
130130
131- self ._i2c .write_mem (_CONFIG_CHKSUM_REG ,buf = self ._config_mv )
131+ self ._config_data [0 ]= _CONFIG_CHKSUM_REG >> 8
132+ self ._config_data [1 ]= _CONFIG_CHKSUM_REG & 0xFF
133+ self ._indev ._write_reg (_CONFIG_CHKSUM_REG ,buf = self ._config_mv )
132134
133- self ._buf [0 ]= checksum
134- self ._i2c . write_mem (_CONFIG_CHKSUM_REG ,buf = self ._mv [:1 ])
135+ self ._buf [2 ]= checksum
136+ self ._indev . _write_reg (_CONFIG_CHKSUM_REG ,buf = self ._mv [:3 ])
135137
136- self ._buf [0 ]= 0x01
137- self ._i2c .write_mem (_CONFIG_FRESH_REG ,buf = self ._mv [:1 ])
138+ self ._config_data [0 ]= _CONFIG_FRESH_REG >> 8
139+ self ._config_data [1 ]= _CONFIG_FRESH_REG & 0xFF
140+ self ._buf [2 ]= 0x01
141+ self ._indev ._write_reg (_CONFIG_FRESH_REG ,buf = self ._mv [:3 ])
138142
139143self ._indev .hw_reset ()