update: device module status

This commit is contained in:
JackSun-qc 2022-03-29 17:11:32 +08:00
parent 4db774bc21
commit 10acc7d5df
3 changed files with 25 additions and 46 deletions

View File

@ -66,12 +66,12 @@ object_model = [
object_model_struct = { object_model_struct = {
'device_module_status': { 'device_module_status': {
'net_error': 1, 'net': 1,
'gps_error': 2, 'location': 2,
'temp_sensor_error': 3, 'temp_sensor': 3,
'light_sensor_error': 4, 'light_sensor': 4,
'move_sensor_error': 5, 'move_sensor': 5,
'mike_error': 6, 'mike': 6,
}, },
'loc_method': { 'loc_method': {
'gps': 1, 'gps': 1,
@ -130,7 +130,7 @@ class QuecThing(object):
def post_data(self, data): def post_data(self, data):
res = True res = True
log.debug('quecIot post_data: %s' % str(data)) # log.debug('post_data: %s' % str(data))
for k, v in data.items(): for k, v in data.items():
if object_model_code.get(k) is not None: if object_model_code.get(k) is not None:
# Event Data Format From object_mode_code # Event Data Format From object_mode_code
@ -145,10 +145,8 @@ class QuecThing(object):
nv[object_model_struct[k].get(ik)] = iv nv[object_model_struct[k].get(ik)] = iv
else: else:
nv[ik] = iv nv[ik] = iv
log.debug('nv: %s' % str(nv))
v = nv v = nv
log.debug('v: %s' % str(v)) # log.debug('k: %s, v: %s' % (k, v))
log.debug('k: %s, v: %s' % (k, v))
phymodelReport_res = quecIot.phymodelReport(1, {object_model_code.get(k): v}) phymodelReport_res = quecIot.phymodelReport(1, {object_model_code.get(k): v})
if not phymodelReport_res: if not phymodelReport_res:
res = False res = False

View File

@ -39,12 +39,12 @@ ALERTCODE = {
} }
DEVICE_MODULE_STATUS = { DEVICE_MODULE_STATUS = {
'net_error': 1, 'net': 1,
'gps_error': 2, 'location': 2,
'temp_sensor_error': 3, 'temp_sensor': 3,
'light_sensor_error': 4, 'light_sensor': 4,
'move_sensor_error': 5, 'move_sensor': 5,
'mike_error': 6, 'mike': 6,
} }
DRIVE_BEHAVIOR_CODE = { DRIVE_BEHAVIOR_CODE = {

View File

@ -31,7 +31,6 @@ from usr.common import numiter
from usr.common import Singleton from usr.common import Singleton
from usr.mpower import PowerManage from usr.mpower import PowerManage
from usr.logging import getLogger from usr.logging import getLogger
# from usr.location import GPS
from usr.location import Location from usr.location import Location
from usr.timer import LEDTimer from usr.timer import LEDTimer
@ -64,8 +63,6 @@ class Tracker(Singleton):
self.power_manage = PowerManage(self) self.power_manage = PowerManage(self)
self.led_timer = LEDTimer(self) self.led_timer = LEDTimer(self)
# self.energy = 100
# self.cenergy = -10
if PowerKey is not None: if PowerKey is not None:
self.power_key = PowerKey() self.power_key = PowerKey()
@ -102,14 +99,6 @@ class Tracker(Singleton):
current_settings = settings.settings.get() current_settings = settings.settings.get()
# TODO: Test Energy
# if self.energy <= 10:
# self.cenergy = 10
# if self.energy >= 100:
# self.cenergy = -10
# self.energy = self.energy + self.cenergy
# energy = self.energy
energy = self.battery.energy() energy = self.battery.energy()
if energy <= current_settings['app']['low_power_alert_threshold']: if energy <= current_settings['app']['low_power_alert_threshold']:
alert_data = self.get_alert_data(30002, {'local_time': self.get_local_time()}) alert_data = self.get_alert_data(30002, {'local_time': self.get_local_time()})
@ -144,35 +133,28 @@ class Tracker(Singleton):
def get_device_check(self): def get_device_check(self):
alert_data = {} alert_data = {}
device_module_status = [] device_module_status = {}
alert_code = 20000 alert_code = 20000
net_check_res = self.check.net_check() net_check_res = self.check.net_check()
gps_check_res = self.check.gps_check() loc_check_res = self.check.loc_check()
sensor_check_res = self.check.sensor_check() sensor_check_res = self.check.sensor_check()
if net_check_res == (3, 1): self.net_enable = True if net_check_res == (3, 1) else False
self.net_enable = True device_module_status['net'] = 1 if net_check_res == (3, 1) else 0
else:
self.net_enable = False
device_module_status.append('net_error')
if not gps_check_res: device_module_status['location'] = 1 if loc_check_res else 0
device_module_status.append('gps_error')
# TODO: Check Sensor.
if not sensor_check_res: if not sensor_check_res:
# TODO: Need To Check What Sensor Error To Report.
pass pass
if device_module_status: self.running_led.period = 0.5 if not (net_check_res == (3, 1) and loc_check_res and sensor_check_res) else 2
self.running_led.period = 0.5
else:
self.running_led.period = 2
alert_info = {'device_module_status': {i: 1 if i in device_module_status else 0 for i in settings.DEVICE_MODULE_STATUS.keys()}} if not (net_check_res == (3, 1) and loc_check_res and sensor_check_res):
if device_module_status:
alert_data = self.get_alert_data(alert_code, {'local_time': self.get_local_time()}) alert_data = self.get_alert_data(alert_code, {'local_time': self.get_local_time()})
alert_data.update(alert_info)
alert_data.update({'device_module_status': device_module_status})
return alert_data return alert_data
@ -296,9 +278,8 @@ class SelfCheck(object):
check_res = checknet.wait_network_connected(timeout) check_res = checknet.wait_network_connected(timeout)
return check_res return check_res
def gps_check(self): def loc_check(self):
# return True if OK # return True if OK
# gps = GPS(settings.default_values_sys._gps_cfg)
locator = Location() locator = Location()
retry = 0 retry = 0