]> Pileus Git - ~andy/csm213a-hw/blobdiff - vis/device.py
More bug fixes..
[~andy/csm213a-hw] / vis / device.py
index 82b8b4598b44e55757f79d1fbb543714fe92b875..852b87391e6ca9f975a8ee1032162009bd980687 100644 (file)
@@ -18,34 +18,38 @@ class State:                                    #information stored
 
 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
@@ -57,25 +61,23 @@ class Frame:
        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
@@ -201,15 +203,15 @@ class Device:
 
        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):