testLbsLoc.lua 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. --- 模块功能:根据基站信息获取经纬度功能测试.
  2. -- @author openLuat
  3. -- @module lbsLoc.testLbsLoc
  4. -- @license MIT
  5. -- @copyright openLuat
  6. -- @release 2018.03.23
  7. module(...,package.seeall)
  8. require"lbsLoc"
  9. --[[
  10. 功能 :发送查询位置请求
  11. 参数 :无
  12. 返回值:无
  13. ]]
  14. local function reqLbsLoc()
  15. lbsLoc.request(getLocCb)
  16. end
  17. --[[
  18. 功能 :获取基站对应的经纬度后的回调函数
  19. 参数 :
  20. result:number类型,0表示成功,1表示网络环境尚未就绪,2表示连接服务器失败,3表示发送数据失败,4表示接收服务器应答超时,5表示服务器返回查询失败;为0时,后面的5个参数才有意义
  21. lat:string类型,纬度,整数部分3位,小数部分7位,例如031.2425864
  22. lng:string类型,经度,整数部分3位,小数部分7位,例如121.4736522
  23. addr:目前无意义
  24. time:string类型或者nil,服务器返回的时间,6个字节,年月日时分秒,需要转为十六进制读取
  25. 第一个字节:年减去2000,例如2017年,则为0x11
  26. 第二个字节:月,例如7月则为0x07,12月则为0x0C
  27. 第三个字节:日,例如11日则为0x0B
  28. 第四个字节:时,例如18时则为0x12
  29. 第五个字节:分,例如59分则为0x3B
  30. 第六个字节:秒,例如48秒则为0x30
  31. locType:numble类型或者nil,定位类型,0表示基站定位成功,255表示WIFI定位成功
  32. 返回值:无
  33. ]]
  34. function getLocCb(result,lat,lng,addr,time,locType)
  35. log.info("testLbsLoc.getLocCb",result,lat,lng)
  36. --获取经纬度成功
  37. if result==0 then
  38. log.info("服务器返回的时间", time:toHex())
  39. log.info("定位类型,基站定位成功返回0", locType)
  40. --失败
  41. else
  42. end
  43. sys.timerStart(reqLbsLoc,20000)
  44. end
  45. reqLbsLoc()