hs2000.py 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. from hub import methods, Global
  2. async def code_2001(**sources):
  3. """
  4. 获取全部渣包车状态
  5. """
  6. """
  7. VehicleInfo: 渣包车信息表
  8. VehicleInfo.uuid: 车辆标识
  9. VehicleInfo.name: 车辆名称
  10. VehicleInfo.address: 车辆ip
  11. VehicleInfo.state: 车辆状态 1 离线(默认值) 2 在线空闲 3 人工驾驶中 4 远程驾驶中 5 自动驾驶中
  12. VehicleInfo.check_vehicle_direction: 当前车头方向是否符合自动驾驶条件 True 符合 False 不符合(默认值)
  13. VehicleInfo.current_vehicle_direction: 当前车头方向类型 3 围栏方向 9 渣场方向 12 维修间方向 6 维修间正对方向 0 未知(默认值)
  14. VehicleInfo.check_vehicle_coordinate: 当前车辆坐标是否符合自动驾驶条件 True 符合 False 不符合(默认值)
  15. VehicleInfo.current_vehicle_coordinate_x: 当前所在位置坐标
  16. VehicleInfo.current_vehicle_coordinate_y: 当前所在位置坐标
  17. VehicleInfo.current_vehicle_weight: 当前车辆负载重量
  18. """
  19. # --- fill d1 ---
  20. d1 = list()
  21. for item in Global.mdb.get_all('VehicleInfo'):
  22. # --- check ---
  23. if 'check_vehicle_direction' not in item:
  24. item['check_vehicle_direction'] = False
  25. if 'current_vehicle_direction' not in item:
  26. item['current_vehicle_direction'] = 0
  27. if 'state' not in item:
  28. item['state'] = 1
  29. if 'current_vehicle_weight' not in item:
  30. item['current_vehicle_weight'] = 0
  31. # --- append ---
  32. item['uuid'] = str(item.get('_id'))
  33. item.pop('_id')
  34. d1.append(item)
  35. return dict(code=0, data=d1)
  36. async def code_2002(**sources):
  37. """
  38. 指定渣包车点火操作接口
  39. """
  40. return dict(code=0, data=sources.get('uuid'))
  41. async def code_2003(**sources):
  42. """
  43. 指定渣包车熄火操作接口
  44. """
  45. return dict(code=0, data=sources.get('uuid'))
  46. async def code_2004(**sources):
  47. """
  48. 指定渣包车建立远程操作权限(或是切换)接口
  49. """
  50. return dict(code=0, data=sources.get('uuid'))
  51. async def code_2101(**sources):
  52. """
  53. 新增渣包车接口
  54. """
  55. # --- save ---
  56. """
  57. VehicleInfo: 渣包车信息表
  58. VehicleInfo.uuid: 标识
  59. VehicleInfo.name: 车辆名称
  60. VehicleInfo.address: 车辆ip
  61. VehicleInfo.state: 车辆状态 1 离线(默认值) 2 在线空闲 3 人工驾驶中 4 远程驾驶中 5 自动驾驶中
  62. VehicleInfo.check_vehicle_direction: 当前车头方向是否符合自动驾驶条件 True 符合 False 不符合(默认值)
  63. VehicleInfo.current_vehicle_direction: 当前车头方向类型 3 围栏方向 9 渣场方向 12 维修间方向 6 维修间正对方向 0 未知(默认值)
  64. VehicleInfo.check_vehicle_coordinate: 当前车辆坐标是否符合自动驾驶条件 True 符合 False 不符合(默认值)
  65. VehicleInfo.current_vehicle_coordinate_x: 当前所在位置坐标
  66. VehicleInfo.current_vehicle_coordinate_y: 当前所在位置坐标
  67. VehicleInfo.current_vehicle_weight: 当前车辆负载重量
  68. """
  69. data = {
  70. 'name': sources.get('name'),
  71. 'address': sources.get('address'),
  72. 'state': 1,
  73. 'check_vehicle_direction': False,
  74. 'update_at': methods.now_ts(),
  75. }
  76. uuid = Global.mdb.add('VehicleInfo', data)
  77. return dict(code=0, data=uuid)
  78. async def code_2102(**sources):
  79. """
  80. 修改渣包车接口
  81. """
  82. # --- check ---
  83. uuid = sources.get('uuid')
  84. if not uuid:
  85. return dict(code=1, detail=f"something is wrong.")
  86. # --- check ---
  87. item = Global.mdb.get_one_by_id('VehicleInfo', uuid)
  88. if not item:
  89. return dict(code=2, detail=f"something is wrong.")
  90. # --- update VehicleInfo by id ---
  91. """
  92. VehicleInfo: 渣包车信息表
  93. VehicleInfo.uuid: 标识
  94. VehicleInfo.name: 车辆名称
  95. VehicleInfo.address: 车辆ip
  96. VehicleInfo.state: 车辆状态 1 离线(默认值) 2 在线空闲 3 人工驾驶中 4 远程驾驶中 5 自动驾驶中
  97. VehicleInfo.check_vehicle_direction: 当前车头方向是否符合自动驾驶条件 True 符合 False 不符合(默认值)
  98. VehicleInfo.current_vehicle_direction: 当前车头方向类型 3 围栏方向 9 渣场方向 12 维修间方向 6 维修间正对方向 0 未知(默认值)
  99. VehicleInfo.check_vehicle_coordinate: 当前车辆坐标是否符合自动驾驶条件 True 符合 False 不符合(默认值)
  100. VehicleInfo.current_vehicle_coordinate_x: 当前所在位置坐标
  101. VehicleInfo.current_vehicle_coordinate_y: 当前所在位置坐标
  102. VehicleInfo.current_vehicle_weight: 当前车辆负载重量
  103. """
  104. update_dict = dict()
  105. update_dict['update_at'] = methods.now_ts()
  106. if sources.get('name'):
  107. update_dict['name'] = sources.get('name')
  108. if sources.get('address'):
  109. update_dict['address'] = sources.get('address')
  110. Global.mdb.update_one_by_id('VehicleInfo', uuid, update_dict)
  111. # --- get ---
  112. item = Global.mdb.get_one_by_id('VehicleInfo', uuid)
  113. item['uuid'] = str(item.get('_id'))
  114. item.pop('_id')
  115. return dict(code=0, data=item)
  116. async def code_2103(**sources):
  117. """
  118. 删除渣包车接口
  119. """
  120. # --- check ---
  121. uuid = sources.get('uuid')
  122. if not uuid:
  123. return dict(code=1, detail=f"something is wrong.")
  124. # --- check ---
  125. item = Global.mdb.get_one_by_id('VehicleInfo', uuid)
  126. if not item:
  127. return dict(code=2, detail=f"something is wrong.")
  128. # --- clean ---
  129. Global.mdb.remove_one_by_id('VehicleInfo', uuid)
  130. return dict(code=0, data=uuid)