定位代码
PROJECT = "wx_lbs"
VERSION = "1.0.0"
_G.sys = require("sys")
_G.sysplus = require("sysplus")
local lbsLoc = require("lbsLoc")
local mqtt_host = "122.114.225.56"
local mqtt_port = 1883
local mqtt_isssl = false
local client_id = mobile.imei()
local user_name = "admin"
local password = "123456"
local pub_topic = "client_send"
local sub_topic = "service_send"
if rtos.bsp() == "EC618" and pm and pm.PWK_MODE then
pm.power(pm.PWK_MODE, false)
end
led2 = gpio.setup(27,0,gpio.PULLUP)
local last = false
sys.timerLoopStart(function()
led2(last and 0 or 1)
log.info("led2",last)
last = not last
end,1000)
local function getLocCb(result, lat, lng, addr, time, locType)
log.info("LbsLoc.getLocCb", result, lat, lng)
if result == 0 then
log.info("服务器返回的时间", time:toHex())
log.info("定位类型,基站定位成功返回0", locType)
end
sys.publish("lbsloc_result", result, lat, lng)
end
sys.taskInit(function()
local mqttc = mqtt.create(nil, mqtt_host, mqtt_port, mqtt_isssl, nil)
mqttc:auth(client_id, user_name, password)
mqttc:autoreconn(true, 3000)
mqttc:on(function(mqtt_client, event, data, payload)
if event == "conack" then
sys.publish("mqtt_conack")
mqtt_client:subscribe(sub_topic)
elseif event == "recv" then
log.info("mqtt", "received", "topic", data, "payload", payload)
elseif event == "sent" then
log.info("mqtt", "sent", "pkgid", data)
end
end)
mqttc:connect()
sys.waitUntil("mqtt_conack")
while true do
local r,result,lat,lng =sys.waitUntil('lbsloc_result', 40000)
local data = json.encode({action = "lbs",lat=lat,lng=lng,result=result})
local pkgid = mqttc:publish(pub_topic, data, 1)
log.info("mqtt", "published", pkgid, pub_topic, data)
end
mqttc:disconnect()
mqttc:close()
mqttc = nil
end)
sys.taskInit(function()
sys.waitUntil("IP_READY", 30000)
while 1 do
mobile.reqCellInfo(15)
sys.waitUntil("CELL_INFO_UPDATE", 3000)
lbsLoc.request(getLocCb)
sys.wait(30000)
end
end)
sys.run()