Revision 71
fixed packet parsing, remote fully operational
mouse.c | ||
---|---|---|
49 | 49 |
pp.rb = pp.bytes[0] & RIGHT_BUTTON; |
50 | 50 |
pp.mb = pp.bytes[0] & MIDDLE_BUTTON; |
51 | 51 |
pp.lb = pp.bytes[0] & LEFT_BUTTON; |
52 |
pp.delta_x = pp.bytes[1];
|
|
53 |
pp.delta_y = pp.bytes[2];
|
|
52 |
pp.delta_x = sign_extend_byte((packet_bytes[0] & MSB_X_DELTA) != 0, pp.bytes[1]);
|
|
53 |
pp.delta_y = sign_extend_byte((packet_bytes[0] & MSB_Y_DELTA) != 0, pp.bytes[2]);
|
|
54 | 54 |
pp.x_ov = pp.bytes[0] & X_OVERFLOW; |
55 | 55 |
pp.y_ov = pp.bytes[0] & Y_OVERFLOW; |
56 | 56 |
return pp; |
... | ... | |
101 | 101 |
} |
102 | 102 |
return TIMEOUT_ERROR; |
103 | 103 |
} |
104 |
|
|
105 |
int16_t (sign_extend_byte)(uint8_t sign_bit, uint8_t byte) { |
|
106 |
return (int16_t)(((0xFF * sign_bit)<<8) | byte); |
|
107 |
} |
Also available in: Unified diff