|
@@ -53,6 +53,8 @@ class GatewaySubDeviceView(View):
|
|
|
return self.get_sensor_list(request_dict, response)
|
|
|
elif operation == 'device-list': # 获取设备信息
|
|
|
return self.get_device_list(request_dict, response)
|
|
|
+ elif operation == 'update-online-status': # 更新子设备在线状态
|
|
|
+ return self.update_online_status(request_dict, response)
|
|
|
else:
|
|
|
return response.json(414)
|
|
|
|
|
@@ -625,6 +627,30 @@ class GatewaySubDeviceView(View):
|
|
|
return response.json(0, device_list)
|
|
|
except Exception as e:
|
|
|
return response.json(500, repr(e))
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def update_online_status(request_dict, response):
|
|
|
+ """
|
|
|
+ 更新子设备在线状态
|
|
|
+ @param request_dict: 请求参数
|
|
|
+ @request_dict online: 在线状态, 1:在线, 0:离线
|
|
|
+ @request_dict ieee_addr: 长地址
|
|
|
+ @param response: 响应对象
|
|
|
+ @return: response
|
|
|
+ """
|
|
|
+ online = request_dict.get('online', None)
|
|
|
+ ieee_addr = request_dict.get('ieee_addr', None)
|
|
|
+
|
|
|
+ if not all([online, ieee_addr]):
|
|
|
+ return response.json(444, {'error param': 'online or ieee_addr'})
|
|
|
+ online = int(online)
|
|
|
+ try:
|
|
|
+ GatewaySubDevice.objects.filter(ieee_addr=ieee_addr).update(status=online)
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, 'error_ine:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
+
|
|
|
#
|
|
|
# ___====-_ _-====___
|
|
|
# _--^^^#####// \\#####^^^--_
|