14
14
from collections import namedtuple
15
15
import common
16
16
17
- Acceleration = namedtuple ("acceleration" , ["x" , "y" , "z" ])
17
+ Acceleration = namedtuple (CONSTANTS . EXPRESS_STATE . ACCELERATION , ["x" , "y" , "z" ])
18
18
19
19
20
20
class Express :
21
21
def __init__ (self ):
22
22
# State in the Python process
23
- self .__state = {
24
- "brightness" : 1.0 ,
25
- "button_a" : False ,
26
- "button_b" : False ,
27
- "pixels" : [
28
- (0 , 0 , 0 ),
29
- (0 , 0 , 0 ),
30
- (0 , 0 , 0 ),
31
- (0 , 0 , 0 ),
32
- (0 , 0 , 0 ),
33
- (0 , 0 , 0 ),
34
- (0 , 0 , 0 ),
35
- (0 , 0 , 0 ),
36
- (0 , 0 , 0 ),
37
- (0 , 0 , 0 ),
38
- ],
39
- "red_led" : False ,
40
- "switch" : False ,
41
- "temperature" : 0 ,
42
- "light" : 0 ,
43
- "motion_x" : 0 ,
44
- "motion_y" : 0 ,
45
- "motion_z" : 0 ,
46
- "touch" : [False ] * 7 ,
47
- "shake" : False ,
48
- }
23
+ self .__state = {}
24
+ self . __state [ CONSTANTS . EXPRESS_STATE . BRIGHTNESS ] = 1.0
25
+ self . __state [ CONSTANTS . EXPRESS_STATE . BUTTON_A ] = False
26
+ self . __state [ CONSTANTS . EXPRESS_STATE . BUTTON_B ] = False
27
+ self . __state [ CONSTANTS . EXPRESS_STATE . PIXELS ] = [
28
+ (0 , 0 , 0 ),
29
+ (0 , 0 , 0 ),
30
+ (0 , 0 , 0 ),
31
+ (0 , 0 , 0 ),
32
+ (0 , 0 , 0 ),
33
+ (0 , 0 , 0 ),
34
+ (0 , 0 , 0 ),
35
+ (0 , 0 , 0 ),
36
+ (0 , 0 , 0 ),
37
+ (0 , 0 , 0 ),
38
+ ]
39
+ self . __state [ CONSTANTS . EXPRESS_STATE . RED_LED ] = False
40
+ self . __state [ CONSTANTS . EXPRESS_STATE . SWITCH ] = False
41
+ self . __state [ CONSTANTS . EXPRESS_STATE . TEMPERATURE ] = 0
42
+ self . __state [ CONSTANTS . EXPRESS_STATE . LIGHT ] = 0
43
+ self . __state [ CONSTANTS . EXPRESS_STATE . MOTION_X ] = 0
44
+ self . __state [ CONSTANTS . EXPRESS_STATE . MOTION_Y ] = 0
45
+ self . __state [ CONSTANTS . EXPRESS_STATE . MOTION_Z ] = 0
46
+ self . __state [ CONSTANTS . EXPRESS_STATE . TOUCH ] = [False ] * 7
47
+ self . __state [ CONSTANTS . EXPRESS_STATE . SHAKE ] = False
48
+ self . __state [ CONSTANTS . EXPRESS_STATE . DETECT_TAPS ] = 0
49
49
self .pixels = Pixel (self .__state )
50
50
51
51
@property
52
52
def acceleration (self ):
53
53
telemetry_py .send_telemetry (TelemetryEvent .CPX_API_ACCELERATION )
54
54
return Acceleration (
55
- self .__state ["motion_x" ], self .__state ["motion_y" ], self .__state ["motion_z" ]
55
+ self .__state [CONSTANTS .EXPRESS_STATE .MOTION_X ],
56
+ self .__state [CONSTANTS .EXPRESS_STATE .MOTION_Y ],
57
+ self .__state [CONSTANTS .EXPRESS_STATE .MOTION_Z ],
56
58
)
57
59
58
60
@property
59
61
def button_a (self ):
60
62
telemetry_py .send_telemetry (TelemetryEvent .CPX_API_BUTTON_A )
61
- return self .__state ["button_a" ]
63
+ return self .__state [CONSTANTS . EXPRESS_STATE . BUTTON_A ]
62
64
63
65
@property
64
66
def button_b (self ):
65
67
telemetry_py .send_telemetry (TelemetryEvent .CPX_API_BUTTON_B )
66
- return self .__state ["button_b" ]
68
+ return self .__state [CONSTANTS . EXPRESS_STATE . BUTTON_B ]
67
69
68
70
@property
69
71
def detect_taps (self ):
70
72
telemetry_py .send_telemetry (TelemetryEvent .CPX_API_DETECT_TAPS )
71
- return self .__state ["detect_taps" ]
73
+ return self .__state [CONSTANTS . EXPRESS_STATE . DETECT_TAPS ]
72
74
73
75
@detect_taps .setter
74
76
def detect_taps (self , value ):
75
77
telemetry_py .send_telemetry (TelemetryEvent .CPX_API_DETECT_TAPS )
76
78
value_int = int (value )
77
- self .__state ["detect_taps" ] = (
79
+ self .__state [CONSTANTS . EXPRESS_STATE . DETECT_TAPS ] = (
78
80
value_int if (value_int == 1 or value_int == 2 ) else 1
79
81
)
80
82
@@ -88,28 +90,28 @@ def tapped(self):
88
90
@property
89
91
def red_led (self ):
90
92
telemetry_py .send_telemetry (TelemetryEvent .CPX_API_RED_LED )
91
- return self .__state ["red_led" ]
93
+ return self .__state [CONSTANTS . EXPRESS_STATE . RED_LED ]
92
94
93
95
@red_led .setter
94
96
def red_led (self , value ):
95
97
telemetry_py .send_telemetry (TelemetryEvent .CPX_API_RED_LED )
96
- self .__state ["red_led" ] = bool (value )
98
+ self .__state [CONSTANTS . EXPRESS_STATE . RED_LED ] = bool (value )
97
99
self .__show ()
98
100
99
101
@property
100
102
def switch (self ):
101
103
telemetry_py .send_telemetry (TelemetryEvent .CPX_API_SWITCH )
102
- return self .__state ["switch" ]
104
+ return self .__state [CONSTANTS . EXPRESS_STATE . SWITCH ]
103
105
104
106
@property
105
107
def temperature (self ):
106
108
telemetry_py .send_telemetry (TelemetryEvent .CPX_API_TEMPERATURE )
107
- return self .__state ["temperature" ]
109
+ return self .__state [CONSTANTS . EXPRESS_STATE . TEMPERATURE ]
108
110
109
111
@property
110
112
def light (self ):
111
113
telemetry_py .send_telemetry (TelemetryEvent .CPX_API_LIGHT )
112
- return self .__state ["light" ]
114
+ return self .__state [CONSTANTS . EXPRESS_STATE . LIGHT ]
113
115
114
116
def __show (self ):
115
117
if utils .debug_mode :
@@ -121,7 +123,7 @@ def __show(self):
121
123
122
124
def __touch (self , i ):
123
125
telemetry_py .send_telemetry (TelemetryEvent .CPX_API_TOUCH )
124
- return self .__state ["touch" ][i - 1 ]
126
+ return self .__state [CONSTANTS . EXPRESS_STATE . TOUCH ][i - 1 ]
125
127
126
128
@property
127
129
def touch_A1 (self ):
@@ -160,7 +162,7 @@ def adjust_touch_threshold(self, adjustment):
160
162
161
163
def shake (self , shake_threshold = 30 ):
162
164
telemetry_py .send_telemetry (TelemetryEvent .CPX_API_SHAKE )
163
- return self .__state ["shake" ]
165
+ return self .__state [CONSTANTS . EXPRESS_STATE . SHAKE ]
164
166
165
167
def play_file (self , file_name ):
166
168
telemetry_py .send_telemetry (TelemetryEvent .CPX_API_PLAY_FILE )
0 commit comments