bot_app_ebike.lua 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. local bot_asset = require("bot_asset")
  2. local bot_app_ebike = {}
  3. -- EBike 数据上报格式
  4. local ebike_pub_data_fmt = [[
  5. {
  6. "assetId": "%s",
  7. "vehStatus": %d,
  8. "mileage": %d,
  9. "batteryCap": %d,
  10. "soh": %d,
  11. "soc": %d,
  12. "voltage": %d,
  13. "temperature": %d,
  14. "fullChargeCycles": %d,
  15. "batteryStatus": %d,
  16. "dataTime": "%s",
  17. "coordinateSystem": %d,
  18. "longitude": %f,
  19. "latitude": %f,
  20. "altitude": %f,
  21. "source": %d
  22. }
  23. ]]
  24. -- EBike 资产类型code
  25. local asset_type_code_ebike = {
  26. EBICYCLE_TYPE_OTHERS = 1011, -- 其他
  27. EBICYCLE_TYPE_BICYCLE = 1012, -- 单车
  28. EBICYCLE_TYPE_PEDELEC = 1013 -- 助力车
  29. }
  30. -- EBike 数据结构
  31. local function create_asset_data()
  32. return {
  33. vehStatus = 0, -- 车辆状态
  34. mileage = 0, -- 单次里程,单位:米
  35. batteryCap = 0, -- 电池剩余容量,单位:mAh
  36. soh = 0, -- 电池健康状态,取值范围:[0-100]
  37. soc = 0, -- 电池电量,取值范围:[0-100]
  38. voltage = 0, -- 电池电压,单位:0.01V
  39. temperature = 0, -- 电池温度,单位:0.01℃
  40. fullChargeCycles = 0, -- 累计充放电次数
  41. batteryStatus = 0, -- 电池状态,0-搁置,1-充电,2-放电,3-预留
  42. dataTime = "", -- 数据采集时间,"20211103173632"表示2021/11/03 17:36:32
  43. location = bot_asset.locationInfo() -- 地理位置信息
  44. }
  45. end
  46. local function user_asset_id_get()
  47. -- 资产编号,作为资产的唯一标识, 根据实际修改, "BOT-TEST" 仅用于测试
  48. -- 需用户按实际情况填写
  49. return "BOT-TEST"
  50. end
  51. function bot_app_ebike.user_asset_config_get()
  52. local asset_config = bot_asset.configInfo()
  53. -- /***************** 以下信息需用户按实际情况填写 *******************************/
  54. local asset_id = user_asset_id_get()
  55. local asset_type_code = asset_type_code_ebike.EBICYCLE_TYPE_PEDELEC
  56. -- 表示资产型号, 内容为自定义字符串(且不能带有符号"-")
  57. local asset_model = "WD215"
  58. -- /***************** 以上信息需用户按实际情况填写 *******************************/
  59. asset_config.id = asset_id
  60. asset_config.type = tostring(asset_type_code) .. "-" .. asset_model
  61. asset_config.adv = BOT_ASSET_DATA_VERSION
  62. return asset_config
  63. end
  64. function bot_app_ebike.user_asset_data_get()
  65. local ebike_data = create_asset_data()
  66. -- /***************** 以下信息需用户按实际情况填写 *******************************/
  67. -- /* !!!必填项,详细说明请参考项目信息表 */
  68. -- /* 业务数据,需要填入实际运行数据,缺省字段请不要删除,int型默认传入: -1,string默认传入: "-" */
  69. ebike_data.vehStatus = 12 -- /* 车辆状态 */
  70. ebike_data.mileage = 5000 -- /* 单次里程,单位:米 */
  71. ebike_data.batteryCap = 20000 -- /* 电池剩余容量,单位:mAh */
  72. ebike_data.soh = 90 -- /* 电池健康状态,取值范围:[0-100] */
  73. ebike_data.soc = 90 -- /* 电池电量,取值范围:[0-100] */
  74. ebike_data.voltage = 3000 -- /* 电池电压,单位:0.01V */
  75. ebike_data.temperature = 3000 -- /* 电池温度,单位:0.01℃ */
  76. ebike_data.fullChargeCycles = 12 -- /* 累计充放电次数 */
  77. ebike_data.batteryStatus = 1 -- /* 电池状态,0-搁置,1-充电,2-放电,3-预留 */
  78. ebike_data.dataTime = "20221027173632" -- /* 数据采集时间,"20211103173632"表示2021/11/03 17:36:32 */
  79. -- /* 非必填项 */
  80. -- /* 地理位置信息,若没有地理位置信息数据,请不要删除字段,默认传入:-1 */
  81. ebike_data.location.coordinateSystem = 2 -- /* 坐标系,1-WGS_84,2-GCJ_02 */
  82. ebike_data.location.longitude = 121.5065267 -- /* 经度 */
  83. ebike_data.location.latitude = 31.2173088 -- /* 纬度 */
  84. ebike_data.location.altitude = 30.04 -- /* 海拔高度 */
  85. ebike_data.location.source = 0 -- /* 定位源 */
  86. -- /***************** 以上信息需用户按实际情况填写 *******************************/
  87. -- /* 此处为信息组包,用户无需关注 */
  88. local data = string.format(ebike_pub_data_fmt,
  89. user_asset_id_get(),
  90. ebike_data.vehStatus,
  91. ebike_data.mileage,
  92. ebike_data.batteryCap,
  93. ebike_data.soh,
  94. ebike_data.soc,
  95. ebike_data.voltage,
  96. ebike_data.temperature,
  97. ebike_data.fullChargeCycles,
  98. ebike_data.batteryStatus,
  99. ebike_data.dataTime,
  100. ebike_data.location.coordinateSystem,
  101. ebike_data.location.longitude,
  102. ebike_data.location.latitude,
  103. ebike_data.location.altitude,
  104. ebike_data.location.source
  105. )
  106. print("bot user data: " .. data, "len " .. #data)
  107. return data
  108. end
  109. return bot_app_ebike