Browse Source

增加接口:更新子设备在线状态

keiSenFront 2 years ago
parent
commit
adbfb43fea
1 changed files with 26 additions and 0 deletions
  1. 26 0
      Controller/SensorGateway/SubDeviceController.py

+ 26 - 0
Controller/SensorGateway/SubDeviceController.py

@@ -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)))
+
 #
 #                   ___====-_  _-====___
 #             _--^^^#####//      \\#####^^^--_