class Frame:
# Sensor types
- ACC_SNS = 0x00
- MAG_SNS = 0x01
- LGT_SNS = 0x02
- TCH_SNS = 0x03
- A2D_SNS = 0x04
+ SNS_ACC = 0x00
+ SNS_MAG = 0x01
+ SNS_LGT = 0x02
+ SNS_TCH = 0x03
+ SNS_A2D = 0x04
SNS_NUM = 0x05
SNS_SHIFT = 4
SNS_MASK = 0xF0
# Data types
- INT = 0
- LONG = 1
- FLOAT = 2
- DOUBLE = 3
-
- TYP_NUM = 4
+ TYP_S8 = 0
+ TYP_S16 = 1
+ TYP_S32 = 2
+ TYP_U8 = 3
+ TYP_U16 = 4
+ TYP_U32 = 5
+ TYP_F32 = 6
+ TYP_F64 = 7
+
+ TYP_NUM = 8
TYP_SHIFT = 0
TYP_MASK = 0x0F
# Command codes
- STOP = 0
- START = 1
- RATE = 2
+ CMD_STOP = 0
+ CMD_START = 1
+ CMD_RATE = 2
- OPER_NUM = 3
- OPER_SHIFT = 0
- OPER_MASK = 0x0F
+ CMD_NUM = 3
+ CMD_SHIFT = 0
+ CMD_MASK = 0x0F
# Frame information
HEADER = 0x02
DATA_POS = 3
# Maps
- snsMap = {ACC_SNS: 'acc',
- MAG_SNS: 'mag',
- LGT_SNS: 'lgt',
- TCH_SNS: 'tch',
- A2D_SNS: 'a2d'}
-
- cmdMap = {START, 'start',
- STOP, 'stop',
- RATE, 'rate'}
-
- sizeMap = {INT: 2,
- LONG: 4,
- FLOAT: 4,
- DOUBLE: 8}
-
- fmtMap = {INT: 'h',
- LONG: 'i',
- FLOAT: 'f',
- DOUBLE: 'd'}
+ snsMap = {SNS_ACC: 'acc',
+ SNS_MAG: 'mag',
+ SNS_LGT: 'lgt',
+ SNS_TCH: 'tch',
+ SNS_A2D: 'a2d'}
+
+ cmdMap = {CMD_START, 'start',
+ CMD_STOP, 'stop',
+ CMD_RATE, 'rate'}
+
+ sizeMap = {TYP_S8: 1, TYP_S16: 2, TYP_S32: 4,
+ TYP_U8: 1, TYP_U16: 2, TYP_U32: 4,
+ TYP_F32: 4, TYP_F64: 8}
+
+ fmtMap = {TYP_S8: 'b', TYP_S16: 'h', TYP_S32: 'i',
+ TYP_U8: 'B', TYP_U16: 'H', TYP_U32: 'I',
+ TYP_F32: 'f', TYP_F64: 'd'}
# Parser data
index = 0 # read index
def set_rate(self, sensor, interval):
sns = Frame.findCode(Frame.snsMap, sensor)
- bits = (sns << Frame.SNS_SHIFT) | \
- (Frame.RATE << Frame.OPER_SHIFT)
+ bits = (sns << Frame.SNS_SHIFT) | \
+ (Frame.CMD_RATE << Frame.CMD_SHIFT)
self._write_binary('Bf', bits, interval)
def set_enable(self, sensor, enabled):
sns = Frame.findCode(Frame.snsMap, sensor)
- oper = Frame.START if enabled else Frame.STOP
- bits = (sns << Frame.SNS_SHIFT) | \
- (oper << Frame.OPER_SHIFT)
+ cmd = Frame.CMD_START if enabled else Frame.CMD_STOP
+ bits = (sns << Frame.SNS_SHIFT) | \
+ (cmd << Frame.CMD_SHIFT)
self._write_binary('B', bits)
def process(self):