+ def handle_reg_0x00(self, databyte):
+ self.sx = databyte
+ self.put(0, 0, self.out_ann,
+ [0, ['Analog stick X position: 0x%02x' % self.sx]])
+ self.put(0, 0, self.out_ann, [1, ['SX: 0x%02x' % self.sx]])
+
+ def handle_reg_0x01(self, databyte):
+ self.sy = databyte
+ self.put(0, 0, self.out_ann,
+ [0, ['Analog stick Y position: 0x%02x' % self.sy]])
+ self.put(0, 0, self.out_ann, [1, ['SY: 0x%02x' % self.sy]])
+
+ def handle_reg_0x02(self, databyte):
+ self.ax = databyte << 2
+ self.put(0, 0, self.out_ann,
+ [0, ['Accelerometer X value bits[9:2]: 0x%03x' % self.ax]])
+ self.put(0, 0, self.out_ann, [1, ['AX[9:2]: 0x%03x' % self.ax]])
+
+ def handle_reg_0x03(self, databyte):
+ self.ay = databyte << 2
+ self.put(0, 0, self.out_ann,
+ [0, ['Accelerometer Y value bits[9:2]: 0x%03x' % self.ay]])
+ self.put(0, 0, self.out_ann, [1, ['AY[9:2]: 0x%x' % self.ay]])
+
+ def handle_reg_0x04(self, databyte):
+ self.az = databyte << 2
+ self.put(0, 0, self.out_ann,
+ [0, ['Accelerometer Z value bits[9:2]: 0x%03x' % self.az]])
+ self.put(0, 0, self.out_ann, [1, ['AZ[9:2]: 0x%x' % self.az]])
+
+ # TODO: Bit-exact annotations.
+ def handle_reg_0x05(self, databyte):
+ self.bz = (databyte & (1 << 0)) >> 0 # Bits[0:0]
+ self.bc = (databyte & (1 << 1)) >> 1 # Bits[1:1]
+ ax_rest = (databyte & (3 << 2)) >> 2 # Bits[3:2]
+ ay_rest = (databyte & (3 << 4)) >> 4 # Bits[5:4]
+ az_rest = (databyte & (3 << 6)) >> 6 # Bits[7:6]
+ self.ax |= ax_rest
+ self.ay |= ay_rest
+ self.az |= az_rest
+
+ s = '' if (self.bz == 0) else 'not '
+ self.put(0, 0, self.out_ann, [0, ['Z button: %spressed' % s]])
+ self.put(0, 0, self.out_ann, [1, ['BZ: %d' % self.bz]])
+
+ s = '' if (self.bc == 0) else 'not '
+ self.put(0, 0, self.out_ann, [0, ['C button: %spressed' % s]])
+ self.put(0, 0, self.out_ann, [1, ['BC: %d' % self.bc]])
+
+ self.put(0, 0, self.out_ann,
+ [0, ['Accelerometer X value bits[1:0]: 0x%03x' % ax_rest]])
+ self.put(0, 0, self.out_ann, [1, ['AX[1:0]: 0x%x' % ax_rest]])
+
+ self.put(0, 0, self.out_ann,
+ [0, ['Accelerometer Y value bits[1:0]: 0x%03x' % ay_rest]])
+ self.put(0, 0, self.out_ann, [1, ['AY[1:0]: 0x%x' % ay_rest]])
+
+ self.put(0, 0, self.out_ann,
+ [0, ['Accelerometer Z value bits[1:0]: 0x%03x' % az_rest]])
+ self.put(0, 0, self.out_ann, [1, ['AZ[1:0]: 0x%x' % az_rest]])