@@ -110,9 +110,9 @@ class PerformanceMode(CV):
110
110
111
111
PerformanceMode .add_values ((
112
112
('MODE_LOW_POWER' , 0 , 'Low Power' , None ),
113
- ('MODE_MEDIUM' , 1 , 'Medium Power ' , None ),
114
- ('MODE_HIGH' , 2 , 'High Power ' , None ),
115
- ('MODE_ULTRA' , 3 , 'Ultra-high Power ' , None )
113
+ ('MODE_MEDIUM' , 1 , 'Medium Performance ' , None ),
114
+ ('MODE_HIGH' , 2 , 'High Performance ' , None ),
115
+ ('MODE_ULTRA' , 3 , 'Ultra-high Performance ' , None )
116
116
))
117
117
class Rate (CV ):
118
118
"""Options for `data_rate`"""
@@ -126,14 +126,18 @@ class Rate(CV):
126
126
('RATE_10_HZ' , 0b1000 , 10.0 , None ),
127
127
('RATE_20_HZ' , 0b1010 , 20.0 , None ),
128
128
('RATE_40_HZ' , 0b1100 , 40.0 , None ),
129
- ('RATE_80_HZ' , 0b1110 , 80.0 , None )
129
+ ('RATE_80_HZ' , 0b1110 , 80.0 , None ),
130
+ ('RATE_155_HZ' , 0b0001 , 155.0 , None ),
131
+ ('RATE_300_HZ' , 0b0011 , 300.0 , None ),
132
+ ('RATE_560_HZ' , 0b0101 , 560.0 , None ),
133
+ ('RATE_1000_HZ' , 0b0111 , 1000.0 , None ),
130
134
))
131
135
# /** The magnetometer data rate, includes FAST_ODR bit */
132
136
133
- # RATE_155_HZ = 0b0001 , ///< 155 Hz (FAST_ODR + UHP)
134
- # RATE_300_HZ = 0b0011 , ///< 300 Hz (FAST_ODR + HP)
135
- # RATE_560_HZ = 0b0101 , ///< 560 Hz (FAST_ODR + MP)
136
- # RATE_1000_HZ = 0b0111 , ///< 1000 Hz (FAST_ODR + LP)
137
+ # = , ///< Hz (FAST_ODR + UHP)
138
+ # = , ///< Hz (FAST_ODR + HP)
139
+ # = , ///< Hz (FAST_ODR + MP)
140
+ # = , ///< Hz (FAST_ODR + LP)
137
141
# } lis3mdl_dataRate_t;
138
142
139
143
# /** The magnetometer operation mode */
@@ -222,16 +226,16 @@ def data_rate(self):
222
226
223
227
@data_rate .setter
224
228
def data_rate (self , value ):
225
- # if
226
- # if current_data_rate is Rate.RATE_155_HZ:
227
- # self.performance_mode = Mode .MODE_ULTRA
228
- # if current_data_rate is Rate.RATE_300_H :
229
- # self.performance_mode = Mode .MODE_HIGH
230
- # if current_data_rate is Rate.RATE_560_HZ:
231
- # self.performance_mode = Mode .MODE_MEDIUM
232
- # if current_data_rate is Rate.RATE_1000_HZ:
233
- # self.performance_mode = Mode .MODE_LOW_POWER
234
- # sleep(0.010)
229
+ #pylint: disable=no-member
230
+ if value is Rate .RATE_155_HZ :
231
+ self .performance_mode = PerformanceMode .MODE_ULTRA
232
+ if value is Rate .RATE_300_HZ :
233
+ self .performance_mode = PerformanceMode .MODE_HIGH
234
+ if value is Rate .RATE_560_HZ :
235
+ self .performance_mode = PerformanceMode .MODE_MEDIUM
236
+ if value is Rate .RATE_1000_HZ :
237
+ self .performance_mode = PerformanceMode .MODE_LOW_POWER
238
+ sleep (0.010 )
235
239
if not Rate .is_valid (value ):
236
240
raise AttributeError ("`data_rate` must be a `Rate`" )
237
241
self ._data_rate = value
@@ -242,10 +246,11 @@ def performance_mode(self):
242
246
Note that `performance_mode` affects the available data rate and will be
243
247
automatically changed by setting ``data_rate`` to certain values."""
244
248
245
- return self ._data_rate
249
+ return self ._perf_mode
246
250
247
251
@performance_mode .setter
248
252
def performance_mode (self , value ):
249
- #TODO: check value
253
+ if not PerformanceMode .is_valid (value ):
254
+ raise AttributeError ("`performance_mode` must be a `PerformanceMode`" )
250
255
self ._perf_mode = value
251
256
self ._z_perf_mode = value
0 commit comments