def create(self, **kwargs): """ 新建设备 """ assert self.device is None if "category" not in kwargs: cat = self.choose_device_category(kwargs["no"]) if not cat: logger.error("[device](%s) 未找到对应型号", kwargs["no"]) raise Exception("未找到对应型号") kwargs["category"] = cat if "name" not in kwargs: kwargs["name"] = kwargs["no"] category = kwargs["category"] device = Device.create(**kwargs) device.save() for i in range(category.road_count): road = Road.create( device=device, no="%02d" % (i + 1), ) road.save() self.device = device logger.info("[device](%s) 创建设备并初始化货道", device.no) return device
def add_device(): # Attributes can be null name = request.form['name'] dcode = request.form['dcode'] secret = request.form['secret'] device_type = request.form['type'] description = request.form['description'] # Attributes cannot be null ip = request.form['ip'] port = request.form['port'] topic = request.form['topic'] device = Device.create(name=name, dcode=dcode, secret=secret, type=device_type, ip=ip, port=port, description=description) device.save() for s in topic.split(";"): Connection.create(device_id=device.id, topic=s.strip()).save() RuleEngine.add_client(device) response = {'status': 1, 'msg': "添加成功"} return json.dumps(response, ensure_ascii=False)