update: object module change

This commit is contained in:
JackSun-qc 2022-03-28 20:29:01 +08:00
parent 3e08c59e60
commit ccbb3ede4f
9 changed files with 632 additions and 279 deletions

View File

@ -121,8 +121,11 @@
"0": "无",
"1": "GPS",
"2": "基站",
"4": "WIFI",
"7": "全部支持"
"3": "GPS_基站",
"4": "Wifi",
"5": "GPS_Wifi",
"6": "基站_Wifi",
"7": "GPS_基站_Wifi"
}
}
},
@ -161,12 +164,8 @@
"accessMode": "r",
"required": false,
"dataType": {
"type": "int",
"specs": {
"min": "0",
"max": "2147483647",
"step": "1"
}
"type": "date",
"specs": {}
}
},
{
@ -329,16 +328,17 @@
},
{
"identifier": "drive_behavior_code",
"name": "驾驶行为代码",
"name": "异常驾驶行为",
"accessMode": "r",
"required": false,
"dataType": {
"type": "enum",
"specs": {
"40001": "quick_start",
"40002": "quick_stop",
"40003": "quick_turn_left",
"40004": "quick_turn_right"
"0": "无",
"1": "急起",
"2": "急停",
"3": "左急转弯",
"4": "右急转弯"
}
}
},
@ -348,10 +348,9 @@
"accessMode": "rw",
"required": false,
"dataType": {
"type": "bool",
"type": "enum",
"specs": {
"0": "关",
"1": "开"
"1": "重启"
}
}
},
@ -372,20 +371,80 @@
}
},
{
"identifier": "fault_code",
"name": "故障代码",
"identifier": "device_module_status",
"name": "设备模块状态",
"accessMode": "r",
"required": false,
"dataType": {
"type": "enum",
"specs": {
"20001": "net_error",
"20002": "gps_error",
"20003": "temp_sensor_error",
"20004": "light_sensor_error",
"20005": "move_sensor_error",
"20006": "mike_error"
}
"type": "struct",
"specs": [
{
"identifier": "net_error",
"name": "网络状态",
"dataType": {
"type": "enum",
"specs": {
"0": "正常",
"1": "异常"
}
}
},
{
"identifier": "gps_error",
"name": "GPS状态",
"dataType": {
"type": "enum",
"specs": {
"0": "正常",
"1": "异常"
}
}
},
{
"identifier": "temp_sensor_error",
"name": "温湿度传感器状态",
"dataType": {
"type": "enum",
"specs": {
"0": "正常",
"1": "异常"
}
}
},
{
"identifier": "light_sensor_error",
"name": "光照传感器状态",
"dataType": {
"type": "enum",
"specs": {
"0": "正常",
"1": "异常"
}
}
},
{
"identifier": "move_sensor_error",
"name": "三轴加速传感器状态",
"dataType": {
"type": "enum",
"specs": {
"0": "正常",
"1": "异常"
}
}
},
{
"identifier": "mike_error",
"name": "麦克风状态",
"dataType": {
"type": "enum",
"specs": {
"0": "正常",
"1": "异常"
}
}
}
]
}
},
{
@ -409,10 +468,10 @@
"desc": "用户操作,只写功能",
"required": false,
"dataType": {
"type": "bool",
"type": "enum",
"specs": {
"0": "拒绝升级",
"1": "接受升级"
"0": "取消升级",
"1": "确认升级"
}
}
},
@ -548,8 +607,11 @@
"0": "无",
"1": "GPS",
"2": "基站",
"4": "WIFI",
"7": "全部支持"
"3": "GPS_基站",
"4": "Wifi",
"5": "GPS_Wifi",
"6": "基站_Wifi",
"7": "GPS_基站_Wifi"
}
}
},
@ -582,12 +644,8 @@
"identifier": "local_time",
"name": "本地时间",
"dataType": {
"type": "int",
"specs": {
"min": "0",
"max": "2147483647",
"step": "1"
}
"type": "date",
"specs": {}
}
},
{
@ -726,14 +784,15 @@
},
{
"identifier": "drive_behavior_code",
"name": "驾驶行为代码",
"name": "异常驾驶行为",
"dataType": {
"type": "enum",
"specs": {
"40001": "quick_start",
"40002": "quick_stop",
"40003": "quick_turn_left",
"40004": "quick_turn_right"
"0": "无",
"1": "急起",
"2": "急停",
"3": "左急转弯",
"4": "右急转弯"
}
}
},
@ -741,10 +800,9 @@
"identifier": "power_restart",
"name": "模块重启",
"dataType": {
"type": "bool",
"type": "enum",
"specs": {
"0": "关",
"1": "开"
"1": "重启"
}
}
},
@ -763,18 +821,78 @@
}
},
{
"identifier": "fault_code",
"name": "故障代码",
"identifier": "device_module_status",
"name": "设备模块状态",
"dataType": {
"type": "enum",
"specs": {
"20001": "net_error",
"20002": "gps_error",
"20003": "temp_sensor_error",
"20004": "light_sensor_error",
"20005": "move_sensor_error",
"20006": "mike_error"
}
"type": "struct",
"specs": [
{
"identifier": "net_error",
"name": "网络状态",
"dataType": {
"type": "enum",
"specs": {
"0": "正常",
"1": "异常"
}
}
},
{
"identifier": "gps_error",
"name": "GPS状态",
"dataType": {
"type": "enum",
"specs": {
"0": "正常",
"1": "异常"
}
}
},
{
"identifier": "temp_sensor_error",
"name": "温湿度传感器状态",
"dataType": {
"type": "enum",
"specs": {
"0": "正常",
"1": "异常"
}
}
},
{
"identifier": "light_sensor_error",
"name": "光照传感器状态",
"dataType": {
"type": "enum",
"specs": {
"0": "正常",
"1": "异常"
}
}
},
{
"identifier": "move_sensor_error",
"name": "三轴加速传感器状态",
"dataType": {
"type": "enum",
"specs": {
"0": "正常",
"1": "异常"
}
}
},
{
"identifier": "mike_error",
"name": "麦克风状态",
"dataType": {
"type": "enum",
"specs": {
"0": "正常",
"1": "异常"
}
}
}
]
}
},
{
@ -793,10 +911,10 @@
"identifier": "user_ota_action",
"name": "是否OTA升级",
"dataType": {
"type": "bool",
"type": "enum",
"specs": {
"0": "拒绝升级",
"1": "接受升级"
"0": "取消升级",
"1": "确认升级"
}
}
},
@ -830,21 +948,7 @@
"type": "error",
"required": false,
"method": "thing.event.fault_alert.post",
"outputData": [
{
"identifier": "fault_code",
"name": "故障代码",
"dataType": {
"type": "array",
"specs": {
"size": "10",
"item": {
"type": "int"
}
}
}
}
]
"outputData": []
},
{
"identifier": "low_power_alert",
@ -852,22 +956,7 @@
"type": "alert",
"required": false,
"method": "thing.event.low_power_alert.post",
"outputData": [
{
"identifier": "energy",
"name": "电量",
"dataType": {
"type": "int",
"specs": {
"min": "0",
"max": "100",
"unit": "%",
"unitName": "百分比",
"step": "1"
}
}
}
]
"outputData": []
},
{
"identifier": "sim_abnormal_alert",
@ -879,25 +968,11 @@
},
{
"identifier": "drive_behavior_alert",
"name": "驾驶行为报警",
"name": "异常驾驶行为报警",
"type": "alert",
"required": false,
"method": "thing.event.drive_behavior_alert.post",
"outputData": [
{
"identifier": "drive_behavior_code",
"name": "驾驶行为代码",
"dataType": {
"type": "enum",
"specs": {
"40001": "quick_start",
"40002": "quick_stop",
"40003": "quick_turn_left",
"40004": "quick_turn_right"
}
}
}
]
"outputData": []
},
{
"identifier": "disassemble_alert",
@ -955,8 +1030,11 @@
"0": "无",
"1": "GPS",
"2": "基站",
"4": "WIFI",
"7": "全部支持"
"3": "GPS_基站",
"4": "Wifi",
"5": "GPS_Wifi",
"6": "基站_Wifi",
"7": "GPS_基站_Wifi"
}
}
},
@ -1123,10 +1201,9 @@
"identifier": "power_restart",
"name": "模块重启",
"dataType": {
"type": "bool",
"type": "enum",
"specs": {
"0": "关",
"1": "开"
"1": "重启"
}
}
},
@ -1148,10 +1225,10 @@
"identifier": "user_ota_action",
"name": "是否OTA升级",
"dataType": {
"type": "bool",
"type": "enum",
"specs": {
"0": "拒绝升级",
"1": "接受升级"
"0": "取消升级",
"1": "确认升级"
}
}
}
@ -1189,7 +1266,7 @@
"drive_behavior_code",
"power_restart",
"over_speed_threshold",
"fault_code",
"device_module_status",
"gps_mode",
"user_ota_action",
"ota_status"
@ -1301,8 +1378,11 @@
"0": "无",
"1": "GPS",
"2": "基站",
"4": "WIFI",
"7": "全部支持"
"3": "GPS_基站",
"4": "Wifi",
"5": "GPS_Wifi",
"6": "基站_Wifi",
"7": "GPS_基站_Wifi"
}
}
},
@ -1335,12 +1415,8 @@
"identifier": "local_time",
"name": "本地时间",
"dataType": {
"type": "int",
"specs": {
"min": "0",
"max": "2147483647",
"step": "1"
}
"type": "date",
"specs": {}
}
},
{
@ -1479,14 +1555,15 @@
},
{
"identifier": "drive_behavior_code",
"name": "驾驶行为代码",
"name": "异常驾驶行为",
"dataType": {
"type": "enum",
"specs": {
"40001": "quick_start",
"40002": "quick_stop",
"40003": "quick_turn_left",
"40004": "quick_turn_right"
"0": "无",
"1": "急起",
"2": "急停",
"3": "左急转弯",
"4": "右急转弯"
}
}
},
@ -1494,10 +1571,9 @@
"identifier": "power_restart",
"name": "模块重启",
"dataType": {
"type": "bool",
"type": "enum",
"specs": {
"0": "关",
"1": "开"
"1": "重启"
}
}
},
@ -1516,18 +1592,78 @@
}
},
{
"identifier": "fault_code",
"name": "故障代码",
"identifier": "device_module_status",
"name": "设备模块状态",
"dataType": {
"type": "enum",
"specs": {
"20001": "net_error",
"20002": "gps_error",
"20003": "temp_sensor_error",
"20004": "light_sensor_error",
"20005": "move_sensor_error",
"20006": "mike_error"
}
"type": "struct",
"specs": [
{
"identifier": "net_error",
"name": "网络状态",
"dataType": {
"type": "enum",
"specs": {
"0": "正常",
"1": "异常"
}
}
},
{
"identifier": "gps_error",
"name": "GPS状态",
"dataType": {
"type": "enum",
"specs": {
"0": "正常",
"1": "异常"
}
}
},
{
"identifier": "temp_sensor_error",
"name": "温湿度传感器状态",
"dataType": {
"type": "enum",
"specs": {
"0": "正常",
"1": "异常"
}
}
},
{
"identifier": "light_sensor_error",
"name": "光照传感器状态",
"dataType": {
"type": "enum",
"specs": {
"0": "正常",
"1": "异常"
}
}
},
{
"identifier": "move_sensor_error",
"name": "三轴加速传感器状态",
"dataType": {
"type": "enum",
"specs": {
"0": "正常",
"1": "异常"
}
}
},
{
"identifier": "mike_error",
"name": "麦克风状态",
"dataType": {
"type": "enum",
"specs": {
"0": "正常",
"1": "异常"
}
}
}
]
}
},
{
@ -1546,10 +1682,10 @@
"identifier": "user_ota_action",
"name": "是否OTA升级",
"dataType": {
"type": "bool",
"type": "enum",
"specs": {
"0": "拒绝升级",
"1": "接受升级"
"0": "取消升级",
"1": "确认升级"
}
}
},

View File

@ -63,7 +63,7 @@ object_model = {
'drive_behavior_code',
'power_restart',
'over_speed_threshold',
'fault_code',
'device_module_status',
'gps_mode',
'user_ota_action',
'ota_status',
@ -177,7 +177,7 @@ class AliYunIot(object):
}
elif k in object_model['event']:
event_params[k] = {
'value': v,
'value': {},
'time': utime.mktime(utime.localtime()) * 1000
}
else:

View File

@ -48,7 +48,7 @@ object_model = [
(21, ('drive_behavior_code', 'r')),
(33, ('power_restart', 'w')),
(34, ('over_speed_threshold', 'rw')),
(36, ('fault_code', 'r')),
(36, ('device_module_status', 'r')),
(37, ('gps_mode', 'r')),
(38, ('user_ota_action', 'w')),
(39, ('ota_status', 'r')),
@ -63,6 +63,17 @@ object_model = [
(35, ('over_speed_alert', 'r')),
]
object_model_struct = {
'device_module_status': {
'net_error': 1,
'gps_error': 2,
'temp_sensor_error': 3,
'light_sensor_error': 4,
'move_sensor_error': 5,
'mike_error': 6,
}
}
object_model_code = {i[1][0]: i[0] for i in object_model}
@ -113,12 +124,25 @@ class QuecThing(object):
def post_data(self, data):
res = True
log.debug('quecIot post_data: %s' % str(data))
for k, v in data.items():
if object_model_code.get(k) is not None:
# Event Data Format From object_mode_code
if v:
if v is not None:
if isinstance(v, dict):
v = {object_model_code.get(ik) if object_model_code.get(ik) else ik: iv for ik, iv in v.items()}
nv = {}
for ik, iv in v.items():
if object_model_code.get(ik):
nv[object_model_code.get(ik)] = iv
else:
if object_model_struct.get(k):
nv[object_model_struct[k].get(ik)] = iv
else:
nv[ik] = iv
log.debug('nv: %s' % str(nv))
v = nv
log.debug('v: %s' % str(v))
log.debug('k: %s, v: %s' % (k, v))
phymodelReport_res = quecIot.phymodelReport(1, {object_model_code.get(k): v})
if not phymodelReport_res:
res = False

View File

@ -76,9 +76,9 @@ class Controller(Singleton):
def user_ota_action(self, perm, action):
if perm == 'w':
if action is False:
if action == 0:
self.tracker.remote.cloud_ota_action(0)
elif action is True:
elif action == 1:
self.tracker.remote.cloud_ota_action(1)
def ota_status(self, perm, status=None):
@ -89,6 +89,10 @@ class Controller(Singleton):
settings.settings.set('ota_status', status)
settings.settings.save()
def power_restart(self, perm, flag):
if perm == 'w':
self.tracker.device_data_report(power_switch=False, msg='power_restart')
class DownLinkOption(object):
def __init__(self, tracker):

View File

@ -38,20 +38,21 @@ ALERTCODE = {
50001: 'sos_alert',
}
FAULT_CODE = {
20001: 'net_error',
20002: 'gps_error',
20003: 'temp_sensor_error',
20004: 'light_sensor_error',
20005: 'move_sensor_error',
20006: 'mike_error',
DEVICE_MODULE_STATUS = {
'net_error': 1,
'gps_error': 2,
'temp_sensor_error': 3,
'light_sensor_error': 4,
'move_sensor_error': 5,
'mike_error': 6,
}
DRIVE_BEHAVIOR_CODE = {
40001: 'quick_start',
40002: 'quick_stop',
40003: 'quick_turn_left',
40004: 'quick_turn_right',
0: 'none',
1: 'quick_start',
2: 'quick_stop',
3: 'quick_turn_left',
4: 'quick_turn_right',
}
LOWENERGYMAP = {
@ -204,7 +205,9 @@ class default_values_sys(object):
ota_status = _ota_status.none
cloud = _cloud.quecIot
drive_behavior_code = 0
cloud = _cloud.AliYun
cloud_init_params = {}

View File

@ -114,9 +114,9 @@ def test_tracker():
log.info('[.] sleep 3')
utime.sleep(3)
log.info('[.] tracker.device_data_report()')
device_data_report_res = tracker.device_data_report()
log.info('[.] device_data_report_res:', device_data_report_res)
log.info('[.] tracker.device_check()')
device_check_res = tracker.device_check()
log.info('[.] device_check_res:', device_check_res)
log.info('[.] sleep 3')
utime.sleep(3)

View File

@ -76,9 +76,7 @@ class Tracker(Singleton):
dataCall.setCallback(self.nw_callback)
def get_local_time(self):
now = utime.localtime()
# return '%s/%s/%s %s:%s:%s' % (now[1], now[2], now[0], now[3], now[4], now[5])
return '%s:%s:%s' % (now[3], now[4], now[5])
return str(utime.mktime(utime.localtime()) * 1000)
def get_alert_data(self, alert_code, alert_info):
alert_data = {}
@ -123,6 +121,7 @@ class Tracker(Singleton):
'energy': energy,
'local_time': self.get_local_time(),
'ota_status': current_settings['sys']['ota_status'],
'drive_behavior_code': current_settings['sys']['drive_behavior_code'],
})
device_data.update(current_settings['app'])
@ -130,30 +129,35 @@ class Tracker(Singleton):
def get_device_check(self):
alert_data = {}
fault_code = []
device_module_status = []
alert_code = 20000
net_check_res = self.check.net_check()
gps_check_res = self.check.gps_check()
sensor_check_res = self.check.sensor_check()
if net_check_res == (3, 1) and gps_check_res and sensor_check_res:
if net_check_res == (3, 1):
self.net_enable = True
self.running_led.period = 2
else:
self.running_led.period = 0.5
if net_check_res != (3, 1):
self.net_enable = False
fault_code.append(20001)
if not gps_check_res:
fault_code.append(20002)
if not sensor_check_res:
# TODO: Need To Check What Sensor Error To Report.
pass
self.net_enable = False
device_module_status.append('net_error')
if fault_code:
alert_info = {'fault_code': fault_code, 'local_time': self.get_local_time()}
alert_data = self.get_alert_data(alert_code, alert_info)
if not gps_check_res:
device_module_status.append('gps_error')
if not sensor_check_res:
# TODO: Need To Check What Sensor Error To Report.
pass
if device_module_status:
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 device_module_status:
alert_data = self.get_alert_data(alert_code, {'local_time': self.get_local_time()})
alert_data.update(alert_info)
return alert_data
@ -192,6 +196,8 @@ class Tracker(Singleton):
self.running_led.period = None
self.running_led.switch(0)
Power.powerDown()
elif topic.endswith('/power_restart'):
Power.powerRestart()
if self.power_manage.callback:
self.power_manage.callback()
@ -282,6 +288,7 @@ class SelfCheck(object):
retry = 0
gps_data = None
sleep_time = 1
while retry < 5:
gps_data = gps.read()
if gps_data:
@ -290,6 +297,7 @@ class SelfCheck(object):
retry += 1
utime.sleep(sleep_time)
sleep_time *= 2
if gps_data:
return True

View File

@ -257,7 +257,7 @@ tracker.remote.post_data(topic, data)
|驾驶行为代码|`drive_behavior_code`|`int`|取值范围40001 ~ 40004|40001: quick_start;40002: quick_stop;40003: quick_turn_left;40004: quick_turn_right|只读|
|模块重启|`power_restart`|`bool`|`True`:重启,`False`:无动作||读写|
|超速报警阈值|`over_speed_threshold`|`int`|取值范围0 ~ 132|单位km/h|读写|
|故障代码|`fault_code`|`int`|取值范围20001 ~ 29999|20001: net_error,20002: gps_error,20003: temp_sensor_error,20004: light_sensor_error,20005: move_sensor_error,20006: mike_error|只读|
|设备模块状态|`device_module_status`|`int`|1: net_error,2: gps_error,3: temp_sensor_error,4: light_sensor_error,5: move_sensor_error,6: mike_error|只读|
|GPS模块类型|`gps_mode`|`int`|取值范围0 ~ 2|0: 无GPS模块,1: 内置GPS模块,2: 外置GPS模块|只读|
|是否OTA升级|`user_ota_action`|`bool`|`True`:接受升级,`False`:拒绝升级||只写|
|OTA升级状态|`ota_status`|`int`|取值范围0 ~ 5|0: 无升级;1: 待升级;2: 升级中;3: 升级成功;4: 升级失败|只读|
@ -267,10 +267,10 @@ tracker.remote.post_data(topic, data)
|功能名称|标识符|数据定义|
|:---|:---|:---|
|SOS报警|`sos_alert`|`{'local_time': xxx}`|
|故障报警|`fault_alert`|`{'local_time': xxx, 'fault_code': 20001}`|
|低电报警|`low_power_alert`|`{'local_time': xxx, 'energy': 20}`|
|故障报警|`fault_alert`|`{'local_time': xxx}`|
|低电报警|`low_power_alert`|`{'local_time': xxx}`|
|SIM卡异常报警|`sim_abnormal_alert`|`{'local_time': xxx}`|
|驾驶行为报警|`drive_behavior_alert`|`{'local_time': xxx, 'drive_behavior_code': 40001}`|
|驾驶行为报警|`drive_behavior_alert`|`{'local_time': xxx}`|
|拆卸报警|`disassemble_alert`|`{'local_time': xxx}`|
|超速报警|`over_speed_alert`|`{'local_time': xxx}`|
@ -290,7 +290,6 @@ tracker.remote.post_data(topic, data)
import utime
alert_code = 20000
alert_info = {
'fault_code': 20001,
'local_time': utime.mktime(utime.localtime())
}
res = tracker.get_alert_data(alert_code, alert_info)

View File

@ -2,7 +2,7 @@
"profile":{
"tslVersion":"1.1.0",
"productKey":"p11275",
"version":"20220325114956585"
"version":"20220328195506205"
},
"properties":[
{
@ -57,36 +57,78 @@
"desc":""
},
{
"specs":{
"unit":"",
"min":"0",
"max":"7",
"step":"1"
},
"specs":[
{
"dataType":"ENUM",
"name":"无",
"value":"0"
},
{
"dataType":"ENUM",
"name":"GPS",
"value":"1"
},
{
"dataType":"ENUM",
"name":"基站",
"value":"2"
},
{
"dataType":"ENUM",
"name":"GPS_基站",
"value":"3"
},
{
"dataType":"ENUM",
"name":"Wifi",
"value":"4"
},
{
"dataType":"ENUM",
"name":"GPS_Wifi",
"value":"5"
},
{
"dataType":"ENUM",
"name":"基站_Wifi",
"value":"6"
},
{
"dataType":"ENUM",
"name":"GPS_基站_Wifi",
"value":"7"
}
],
"code":"loc_method",
"dataType":"INT",
"dataType":"ENUM",
"name":"定位方式",
"subType":"RW",
"id":24,
"sort":3,
"type":"PROPERTY",
"desc":"0: 无\n1: GPS\n2: 基站\n4: WIFI(暂不支持)\n7: 全部支持"
"desc":""
},
{
"specs":{
"unit":"",
"min":"1",
"max":"2",
"step":"1"
},
"specs":[
{
"dataType":"ENUM",
"name":"周期性模式",
"value":"1"
},
{
"dataType":"ENUM",
"name":"智能模式",
"value":"2"
}
],
"code":"work_mode",
"dataType":"INT",
"dataType":"ENUM",
"name":"工作模式",
"subType":"RW",
"id":25,
"sort":4,
"type":"PROPERTY",
"desc":"1: 周期性模式\n2: 智能模式"
"desc":""
},
{
"specs":{
@ -105,14 +147,8 @@
"desc":""
},
{
"specs":{
"unit":"",
"min":"",
"max":"",
"step":""
},
"code":"local_time",
"dataType":"INT",
"dataType":"DATE",
"name":"本地时间",
"subType":"R",
"id":19,
@ -189,7 +225,7 @@
],
"code":"sw_ota_auto_upgrade",
"dataType":"BOOL",
"name":"OTA自动升级功能开关",
"name":"OTA自动升级开关",
"subType":"RW",
"id":13,
"sort":10,
@ -373,38 +409,54 @@
"desc":""
},
{
"specs":{
"unit":"",
"min":"40001",
"max":"40004",
"step":"1"
},
"specs":[
{
"dataType":"ENUM",
"name":"无",
"value":"0"
},
{
"dataType":"ENUM",
"name":"急起",
"value":"1"
},
{
"dataType":"ENUM",
"name":"急停",
"value":"2"
},
{
"dataType":"ENUM",
"name":"左急转弯",
"value":"3"
},
{
"dataType":"ENUM",
"name":"右急转弯",
"value":"4"
}
],
"code":"drive_behavior_code",
"dataType":"INT",
"name":"驾驶行为代码",
"dataType":"ENUM",
"name":"异常驾驶行为",
"subType":"R",
"id":21,
"sort":19,
"type":"PROPERTY",
"desc":"40001: quick_start\n40002: quick_stop\n40003: quick_turn_left\n40004: quick_turn_right"
"desc":""
},
{
"specs":[
{
"dataType":"BOOL",
"dataType":"ENUM",
"name":"重启",
"value":"true"
},
{
"dataType":"BOOL",
"name":"无动作",
"value":"false"
"value":"1"
}
],
"code":"power_restart",
"dataType":"BOOL",
"dataType":"ENUM",
"name":"模块重启",
"subType":"W",
"subType":"RW",
"id":33,
"sort":26,
"type":"PROPERTY",
@ -427,72 +479,211 @@
"desc":"单位km/h"
},
{
"specs":{
"size":"10",
"dataType":"INT"
},
"code":"fault_code",
"dataType":"ARRAY",
"name":"故障代码",
"specs":[
{
"specs":[
{
"dataType":"ENUM",
"name":"正常",
"value":"0"
},
{
"dataType":"ENUM",
"name":"异常",
"value":"1"
}
],
"code":"net_error",
"dataType":"ENUM",
"name":"网络状态",
"id":1
},
{
"specs":[
{
"dataType":"ENUM",
"name":"正常",
"value":"0"
},
{
"dataType":"ENUM",
"name":"异常",
"value":"1"
}
],
"code":"gps_error",
"dataType":"ENUM",
"name":"GPS状态",
"id":2
},
{
"specs":[
{
"dataType":"ENUM",
"name":"正常",
"value":"0"
},
{
"dataType":"ENUM",
"name":"异常",
"value":"1"
}
],
"code":"temp_sensor_error",
"dataType":"ENUM",
"name":"温湿度传感器状态",
"id":3
},
{
"specs":[
{
"dataType":"ENUM",
"name":"正常",
"value":"0"
},
{
"dataType":"ENUM",
"name":"异常",
"value":"1"
}
],
"code":"light_sensor_error",
"dataType":"ENUM",
"name":"光照传感器状态",
"id":4,
"desc":""
},
{
"specs":[
{
"dataType":"ENUM",
"name":"正常",
"value":"0"
},
{
"dataType":"ENUM",
"name":"异常",
"value":"1"
}
],
"code":"move_sensor_error",
"dataType":"ENUM",
"name":"三轴加速传感器状态",
"id":5
},
{
"specs":[
{
"dataType":"ENUM",
"name":"正常",
"value":"0"
},
{
"dataType":"ENUM",
"name":"异常",
"value":"1"
}
],
"code":"mike_error",
"dataType":"ENUM",
"name":"麦克风状态",
"id":6
}
],
"code":"device_module_status",
"dataType":"STRUCT",
"name":"设备模块状态",
"subType":"R",
"id":36,
"sort":29,
"type":"PROPERTY",
"desc":"20001: net_error,\n20002: gps_error,\n20003: temp_sensor_error,\n20004: light_sensor_error,\n20005: move_sensor_error,\n20006: mike_error,"
"desc":""
},
{
"specs":{
"unit":"",
"min":"0",
"max":"2",
"step":"1"
},
"specs":[
{
"dataType":"ENUM",
"name":"无GPS模块",
"value":"0"
},
{
"dataType":"ENUM",
"name":"内置GPS模块",
"value":"1"
},
{
"dataType":"ENUM",
"name":"外置GPS模块",
"value":"2"
}
],
"code":"gps_mode",
"dataType":"INT",
"dataType":"ENUM",
"name":"GPS模块类型",
"subType":"R",
"id":37,
"sort":30,
"type":"PROPERTY",
"desc":"0: 无GPS模块,\n1: 内置GPS模块,\n2: 外置GPS模块,"
"desc":""
},
{
"specs":[
{
"dataType":"BOOL",
"name":"接受升级",
"value":"true"
"dataType":"ENUM",
"name":"取消升级",
"value":"0"
},
{
"dataType":"BOOL",
"name":"拒绝升级",
"value":"false"
"dataType":"ENUM",
"name":"确认升级",
"value":"1"
}
],
"code":"user_ota_action",
"dataType":"BOOL",
"dataType":"ENUM",
"name":"是否OTA升级",
"subType":"W",
"subType":"RW",
"id":38,
"sort":31,
"type":"PROPERTY",
"desc":"当OTA自动升级关闭时, 用户通过查看设备当前是否有OTA升级来进行自主选择升级或不升级"
},
{
"specs":{
"unit":"",
"min":"0",
"max":"5",
"step":"1"
},
"specs":[
{
"dataType":"ENUM",
"name":"无升级",
"value":"0"
},
{
"dataType":"ENUM",
"name":"待升级",
"value":"1"
},
{
"dataType":"ENUM",
"name":"升级中",
"value":"2"
},
{
"dataType":"ENUM",
"name":"升级成功",
"value":"3"
},
{
"dataType":"ENUM",
"name":"升级失败",
"value":"4"
}
],
"code":"ota_status",
"dataType":"INT",
"dataType":"ENUM",
"name":"OTA升级状态",
"subType":"R",
"id":39,
"sort":32,
"type":"PROPERTY",
"desc":"0: 无升级;\n1: 待升级;\n2: 升级中;\n3: 升级成功;\n4: 升级失败"
"desc":""
}
],
"events":[
@ -514,9 +705,6 @@
"outputData":[
{
"$ref":"#/properties/id/19"
},
{
"$ref":"#/properties/id/36"
}
],
"code":"fault_alert",
@ -529,14 +717,8 @@
},
{
"outputData":[
{
"$ref":"#/properties/id/4"
},
{
"$ref":"#/properties/id/19"
},
{
"$ref":"#/properties/id/15"
}
],
"code":"low_power_alert",
@ -563,15 +745,12 @@
},
{
"outputData":[
{
"$ref":"#/properties/id/21"
},
{
"$ref":"#/properties/id/19"
}
],
"code":"drive_behavior_alert",
"name":"驾驶行为报警",
"name":"异常驾驶行为报警",
"subType":"WARN",
"id":22,
"sort":24,