def populate(self): # devices device1 = Device(device_id="1", creation_date=datetime.now() + timedelta(days=-2)) device2 = Device(device_id="2", creation_date=datetime.now()) device3 = Device(device_id="3", creation_date=datetime.now()) device4 = Device(device_id="4", creation_date=datetime.now()) # sims sim1 = Sim(serial_number="123") sim2 = Sim(serial_number="456") sim3 = Sim(serial_number="789") sim1.devices.append(device1) sim1.devices.append(device2) sim2.devices.append(device3) sim3.devices.append(device4) # carriers carrier1 = Carrier(name="test_carrier_1") carrier2 = Carrier(name="test_carrier_2") carrier1.sims.append(sim1) carrier1.sims.append(sim2) carrier2.sims.append(sim3) db.session.add(carrier1) db.session.add(carrier2) db.session.commit()
def postSensorData(): #What the client sends to us device_key = request.args["deviceKey"] sensor_type = request.args["sensortype"] value = request.args["value"] #Date in miliseconds dateInMilis = float(request.args["date"]) device = Device.getDeviceByKey(device_key) #Check if there is a device found if device: user = Device.getDeviceByKey(device_key).getUser() userSession = user.getRunningSession() date = datetime.datetime.fromtimestamp(dateInMilis/1000.0) #Check whether the user has a running session if userSession: if not userSession.isPaused(): sensorData = Sensordata(sensor_type, userSession, int(value), date) db.session.add(sensorData) db.session.commit() return "Sensordata saved" else: return "Session is paused" else: return "There is no running session at the moment" else: return "There is no device registered with key " + device_key
def post_device(): ''' Register a new device ''' try: device_obj = Device() device_obj.id = request.json.get('id') device_obj.username = request.json.get('username') device_obj.created_at = datetime.now() db.session.add(device_obj) db.session.commit() return jsonify({'message': 'Success'}) except: db.session.rollback() abort(400)
def __init__(self, email, name, surname, password, study, deviceID=None, profilePic_small = None , profilePic_big = None ): self.email = email self.name = name self.surname = surname self.password = password self.study = study Course.addUserCoursesStudy(self, study) Device.registerDevice(deviceID, self) newUS = Statistics() db.session.add(newUS) self.statistics = newUS self.picBig = profilePic_big self.picSmall = profilePic_small db.session.commit()
def set_events_context(jsonvar): from app.models.device import Device device = Device.get_device_or_add_it(jsonvar["device_records"]) app_version_code = jsonvar["device_records"]["app_version_code"] from app.models.sim import Sim sim = Sim.get_sim_or_add_it(jsonvar["sim_records"]) if sim: # Get carrier or add it, if it does not exist from app.models.carrier import Carrier carrier = Carrier.get_carrier_or_add_it(mnc=jsonvar["sim_records"]["mnc"], mcc=jsonvar["sim_records"]["mcc"]) # Link carrier with sim carrier.add_sim(sim) # Link sim with device sim.add_device(device) db.session.add(sim) db.session.add(carrier) # add new device, sim or carrier db.session.commit() return device, sim, app_version_code
def set_events_context(jsonvar): from app.models.device import Device device = Device.get_device_or_add_it(jsonvar["device_records"]) app_version_code = jsonvar["device_records"]["app_version_code"] from app.models.sim import Sim sim = Sim.get_sim_or_add_it(jsonvar["sim_records"]) if sim: # Get carrier or add it, if it does not exist from app.models.carrier import Carrier carrier = Carrier.get_carrier_or_add_it( mnc=jsonvar["sim_records"]["mnc"], mcc=jsonvar["sim_records"]["mcc"]) # Link carrier with sim carrier.add_sim(sim) # Link sim with device sim.add_device(device) db.session.add(sim) db.session.add(carrier) # add new device, sim or carrier try: db.session.commit() except Exception as e: db.session.rollback() application.logger.error("Error adding device or sim to database " + str(e)) return device, sim, app_version_code
def unused_device_list(): """ 未选择项目的设备列表 :return: """ # companyId = request.args.get("companyId",'') devices = Device.objects(__raw__={"project_id": None, "company_name": "金峰测试"}).get_or_404() return Success(list(devices))
def populate(self): # devices device1 = Device(device_id="1") device2 = Device(device_id="2") device3 = Device(device_id="3") device4 = Device(device_id="4") # sims sim1 = Sim(serial_number="123") sim2 = Sim(serial_number="456") sim3 = Sim(serial_number="789") sim1.devices.append(device1) sim1.devices.append(device2) sim2.devices.append(device1) sim2.devices.append(device3) sim3.devices.append(device4) # carriers carrier1 = Carrier(name="test_carrier_1") carrier2 = Carrier(name="test_carrier_2") carrier1.sims.append(sim1) carrier1.sims.append(sim2) carrier2.sims.append(sim3) # GSM events event1 = GsmEvent(date=datetime.now() + timedelta(days=-2)) event2 = GsmEvent(date=datetime.now()) event3 = GsmEvent(date=datetime.now()) event4 = GsmEvent(date=datetime.now()) event5 = GsmEvent(date=datetime.now()) sim1.events.append(event1) sim1.events.append(event2) sim3.events.append(event3) sim3.events.append(event4) sim3.events.append(event5) device1.events = [event1, event2] device2.events = [event3] device3.events = [event4, event5] db.session.add(carrier1) db.session.add(carrier2) db.session.commit()
def delete_one(category_id): '''删除设备类型/n/t 如果设备已经绑定了该类型,无法删除''' device_category = DeviceCategory.get_or_404(id=category_id) if DeviceModel.get(category_id=category_id): raise ForbiddenException(msg='该类别下存在设备,不可删除') device_category.delete() return Success(error_code=2)
def handle(self) -> Response: """デバイス情報を取得 :return Response: レスポンス """ device = Device.get(self.request.query('id')) return GetDeviceResponse( device.to_dict(), LightColors.get().to_dict() if device.has_color else {})
def add_device(): """ 项目添加设备 :return: """ data = request.get_json() device = Device.objects(__raw__={"project_id":{"$exists":False},"device_id":data["device_id"]}).first_or_404() project = Project.objects.filter(id=data["project_id"]).first_or_404() device["project_id"] = project["id"] device["project_name"] = project["name"] device.save() return Success()
def populate(self): # devices device1 = Device(device_id="1", creation_date=datetime.now() + timedelta(days=-2)) device2 = Device(device_id="2", creation_date=datetime.now()) device3 = Device(device_id="3", creation_date=datetime.now()) device4 = Device(device_id="4", creation_date=datetime.now()) # Eventos event1 = StateChangeEvent() event2 = StateChangeEvent() event3 = StateChangeEvent() device1.events = [event1, event2] device2.events = [event3] device3.events = [] db.session.add(device1) db.session.add(device2) db.session.add(device3) db.session.add(device4) db.session.commit()
def save_device(): """读取设备""" with open("./utils/devices.json") as file: rows = json.load(file) for r in rows: resp = map.googleToBaidu(r[2], r[1]) #print(resp) device = Device(sn=r[0], google_lng=r[2], google_lat=r[1], baidu_lng=resp["result"][0]["x"], baidu_lat=resp["result"][0]["y"]) db.session.add(device) db.session.commit()
def populate(self): # devices device1 = Device(device_id="1") device2 = Device(device_id="2") device3 = Device(device_id="3") device4 = Device(device_id="4") # GSM events event1 = GsmEvent(date=datetime.now() + timedelta(days=-2)) event2 = GsmEvent(date=datetime.now()) event3 = GsmEvent(date=datetime.now()) device1.events = [event1, event2] device2.events = [event3] device3.events = [] db.session.add(device1) db.session.add(device2) db.session.add(device3) db.session.add(device4) db.session.add(event1) db.session.add(event2) db.session.add(event3) db.session.commit()
def device_list(): """ 公司项目组详情列表 包括项目名、设备列表、告警数、设备在线数 :return: """ project = Project.objects(company_name="金峰测试").all() data = [] for p in project: print(p["name"]) device = Device.objects(project_id=p["id"]).all() print(device) online = Project.get_online_number(p["id"]) alarm_count = Alarm.objects.filter(project_id=p["id"], createdAt__gte=month_datetime(), status=0).count() data.append({ "project_name": p["name"], "project_id": p["id"], "device_list": list(device), "device_number": len(device), "online": online, "alarm_count": alarm_count }) return Success(data)
def check_and_save(device_dict): device = device_dict print(device) # 获取数据库ID datacenter_name = device.get('datacneter_name') area_name = device.get('area_name') cabinet_sn = device.get('cabinet_sn') start_u = device.get('start_u') device_contract_order = device.get('device_contract_order') secure_contract_orders = device.get('secure_contract_orders') device['secure_contracts'] = [] passwords = device.get('passwords') pop_list = [ 'datacenter_name', 'area_name', 'cabinet_sn', 'start_u', 'device_contract_order', 'secure_contract_orders', 'passwords' ] if cabinet_sn: cabinet = Cabinet.query.filter_by(cabinet_sn=cabinet_sn).one_or_none() if not cabinet: print('找不到指定的机柜') raise Exception("找不到指定的机柜") if datacenter_name: datacenter = cabinet.room.building.datacenter if datacenter.datacenter_name != datacenter_name: print("+" * 100, "\n", datacenter.datacenter_name) print('指定机柜不在指定的数据中心内') raise Exception("指定机柜不在指定的数据中心内") else: device['datacenter_id'] = datacenter.id if start_u: start_u = cabinet.u_ids.filter_by(up=start_u).one_or_none() if not start_u: print('没有指定的起始U位') raise Exception('没有指定的起始U位') device['start_u_id'] = start_u.id else: if datacenter_name: datacenter = DataCenter.query.filter_by( datacenter_name=datacenter_name).one_or_none() print("*" * 100, "\n", datacenter.datacenter_name) if not datacenter: print('不存在指定的数据中心') raise Exception("不存在指定的数据中心") device['datacenter_id'] = datacenter.id if area_name: net_area = NetArea.query.filter_by( area_name=area_name).one_or_none() if not net_area: print('不存在指定的网络区域') raise Exception("不存在指定的网络区域") if device_contract_order: print(device_contract_order) contract = DeviceContract.query.filter_by( contract_order=device_contract_order).one_or_none() if not contract: print("不存在设备合同:%s" % device_contract_order) raise Exception("不存在设备合同:%s" % device_contract_order) device['device_contract_id'] = contract.id # 将所需要维保合同对象添加到字典中 for secure_order in secure_contract_orders: contract = ContractSecure.query.filter_by( contract_order=secure_order).one_or_none() if not contract: print("不存在设备合同:%s" % secure_order) raise Exception("不存在设备合同:%s" % secure_order) device['secure_contracts'].append(contract) # print(device) # 删除创建设备数据库对象不需要的字段 res_dict = {} for key in device.keys(): print('1', key) if key not in pop_list: print('2', key) res_dict[key] = device[key] print(res_dict) device_db = Device(**res_dict) db.session.add(device_db) # 创建密码表记录 for password in passwords: password['device'] = device_db passwd_db = DevicePasswd(**password) db.session.add(passwd_db)