from hub import methods, Global async def code_2001(**sources): """ 获取全部渣包车状态 """ """ VehicleInfo: 渣包车信息表 VehicleInfo.uuid: 车辆标识 VehicleInfo.name: 车辆名称 VehicleInfo.address: 车辆ip VehicleInfo.state: 车辆状态 1 离线(默认值) 2 在线空闲 3 人工驾驶中 4 远程驾驶中 5 自动驾驶中 VehicleInfo.check_vehicle_direction: 当前车头方向是否符合自动驾驶条件 True 符合 False 不符合(默认值) VehicleInfo.current_vehicle_direction: 当前车头方向类型 3 围栏方向 9 渣场方向 12 维修间方向 6 维修间正对方向 0 未知(默认值) VehicleInfo.check_vehicle_coordinate: 当前车辆坐标是否符合自动驾驶条件 True 符合 False 不符合(默认值) VehicleInfo.current_vehicle_coordinate_x: 当前所在位置坐标 VehicleInfo.current_vehicle_coordinate_y: 当前所在位置坐标 VehicleInfo.current_vehicle_weight: 当前车辆负载重量 """ # --- fill d1 --- d1 = list() for item in Global.mdb.get_all('VehicleInfo'): # --- check --- if 'check_vehicle_direction' not in item: item['check_vehicle_direction'] = False if 'current_vehicle_direction' not in item: item['current_vehicle_direction'] = 0 if 'state' not in item: item['state'] = 1 if 'current_vehicle_weight' not in item: item['current_vehicle_weight'] = 0 # --- append --- item['uuid'] = str(item.get('_id')) item.pop('_id') d1.append(item) return dict(code=0, data=d1) async def code_2002(**sources): """ 指定渣包车点火操作接口 """ return dict(code=0, data=sources.get('uuid')) async def code_2003(**sources): """ 指定渣包车熄火操作接口 """ return dict(code=0, data=sources.get('uuid')) async def code_2004(**sources): """ 指定渣包车建立远程操作权限(或是切换)接口 """ return dict(code=0, data=sources.get('uuid')) async def code_2101(**sources): """ 新增渣包车接口 """ # --- save --- """ VehicleInfo: 渣包车信息表 VehicleInfo.uuid: 标识 VehicleInfo.name: 车辆名称 VehicleInfo.address: 车辆ip VehicleInfo.state: 车辆状态 1 离线(默认值) 2 在线空闲 3 人工驾驶中 4 远程驾驶中 5 自动驾驶中 VehicleInfo.check_vehicle_direction: 当前车头方向是否符合自动驾驶条件 True 符合 False 不符合(默认值) VehicleInfo.current_vehicle_direction: 当前车头方向类型 3 围栏方向 9 渣场方向 12 维修间方向 6 维修间正对方向 0 未知(默认值) VehicleInfo.check_vehicle_coordinate: 当前车辆坐标是否符合自动驾驶条件 True 符合 False 不符合(默认值) VehicleInfo.current_vehicle_coordinate_x: 当前所在位置坐标 VehicleInfo.current_vehicle_coordinate_y: 当前所在位置坐标 VehicleInfo.current_vehicle_weight: 当前车辆负载重量 """ data = { 'name': sources.get('name'), 'address': sources.get('address'), 'state': 1, 'check_vehicle_direction': False, 'update_at': methods.now_ts(), } uuid = Global.mdb.add('VehicleInfo', data) return dict(code=0, data=uuid) async def code_2102(**sources): """ 修改渣包车接口 """ # --- check --- uuid = sources.get('uuid') if not uuid: return dict(code=1, detail=f"something is wrong.") # --- check --- item = Global.mdb.get_one_by_id('VehicleInfo', uuid) if not item: return dict(code=2, detail=f"something is wrong.") # --- update VehicleInfo by id --- """ VehicleInfo: 渣包车信息表 VehicleInfo.uuid: 标识 VehicleInfo.name: 车辆名称 VehicleInfo.address: 车辆ip VehicleInfo.state: 车辆状态 1 离线(默认值) 2 在线空闲 3 人工驾驶中 4 远程驾驶中 5 自动驾驶中 VehicleInfo.check_vehicle_direction: 当前车头方向是否符合自动驾驶条件 True 符合 False 不符合(默认值) VehicleInfo.current_vehicle_direction: 当前车头方向类型 3 围栏方向 9 渣场方向 12 维修间方向 6 维修间正对方向 0 未知(默认值) VehicleInfo.check_vehicle_coordinate: 当前车辆坐标是否符合自动驾驶条件 True 符合 False 不符合(默认值) VehicleInfo.current_vehicle_coordinate_x: 当前所在位置坐标 VehicleInfo.current_vehicle_coordinate_y: 当前所在位置坐标 VehicleInfo.current_vehicle_weight: 当前车辆负载重量 """ update_dict = dict() update_dict['update_at'] = methods.now_ts() if sources.get('name'): update_dict['name'] = sources.get('name') if sources.get('address'): update_dict['address'] = sources.get('address') Global.mdb.update_one_by_id('VehicleInfo', uuid, update_dict) # --- get --- item = Global.mdb.get_one_by_id('VehicleInfo', uuid) item['uuid'] = str(item.get('_id')) item.pop('_id') return dict(code=0, data=item) async def code_2103(**sources): """ 删除渣包车接口 """ # --- check --- uuid = sources.get('uuid') if not uuid: return dict(code=1, detail=f"something is wrong.") # --- check --- item = Global.mdb.get_one_by_id('VehicleInfo', uuid) if not item: return dict(code=2, detail=f"something is wrong.") # --- clean --- Global.mdb.remove_one_by_id('VehicleInfo', uuid) return dict(code=0, data=uuid)