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
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
 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()
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
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()
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
    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 {})
Ejemplo n.º 11
0
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()
Ejemplo n.º 13
0
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 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()
Ejemplo n.º 16
0
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 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 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()
Ejemplo n.º 19
0
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)