Слияние кода завершено, страница обновится автоматически
local gpsMng = {}
local gps_uart_id = 2
libgnss.clear() -- 清空数据,兼初始化
uart.setup(gps_uart_id, 115200)
function exec_agnss()
if http then
-- AGNSS 已调通
while 1 do
local code, headers, body = http.request("GET", "http://download.openluat.com/9501-xingli/HXXT_GPS_BDS_AGNSS_DATA.dat").wait()
-- local code, headers, body = http.request("GET", "http://nutzam.com/6228.bin").wait()
log.info("gnss", "AGNSS", code, body and #body or 0)
if code == 200 and body and #body > 1024 then
-- uart.write(gps_uart_id, "$reset,0,h01\r\n")
-- sys.wait(200)
-- uart.write(gps_uart_id, body)
for offset=1,#body,512 do
log.info("gnss", "AGNSS", "write >>>", #body:sub(offset, offset + 511))
uart.write(gps_uart_id, body:sub(offset, offset + 511))
sys.wait(100) -- 等100ms反而更成功
end
io.writeFile("/6228.bin", body)
break
end
sys.wait(60*1000)
end
end
sys.wait(20)
-- 读取之前的位置信息
local gnssloc = io.readFile("/gnssloc")
if gnssloc then
str = "$AIDPOS," .. gnssloc
log.info("POS", str)
uart.write(gps_uart_id, str .. "\r\n")
str = nil
gnssloc = nil
else
-- TODO 发起基站定位
uart.write(gps_uart_id, "$AIDPOS,3432.70,N,10885.25,E,1.0\r\n")
end
end
sys.taskInit(function()
-- Air780EG工程样品的GPS的默认波特率是9600, 量产版是115200,以下是临时代码
log.info("GPS", "start")
pm.power(pm.GPS, true)
-- 绑定uart,底层自动处理GNSS数据
-- 第二个参数是转发到虚拟UART, 方便上位机分析
libgnss.bind(gps_uart_id, uart.VUART_0)
-- libgnss.on("raw", function(data)
-- -- 默认不上报, 需要的话自行打开
-- data = data:split("\r\n")
-- if data == nil then
-- return
-- end
-- end)
sys.wait(200) -- GPNSS芯片启动需要时间
-- 调试日志,可选
-- libgnss.debug(true)
-- 显示串口配置
-- uart.write(gps_uart_id, "$CFGPRT,1\r\n")
-- sys.wait(20)
-- 增加显示的语句
-- uart.write(gps_uart_id, "$CFGMSG,0,1,1\r\n") -- GLL
-- sys.wait(20)
-- uart.write(gps_uart_id, "$CFGMSG,0,5,1\r\n") -- VTG
-- sys.wait(20)
-- uart.write(gps_uart_id, "$CFGMSG,0,6,1\r\n") -- ZDA
-- sys.wait(20)
exec_agnss()
end)
sys.taskInit(function ()
while true do
log.info("nmea", "isFix", libgnss.isFix())
sys.wait(10000)
end
end)
--获取时间
function gpsMng.getTime()
local tTime = libgnss.getZda()
return (string.format("%02d%02d%02d%02d%02d%02d",tTime.year-2000,tTime.month,tTime.day,tTime.hour+8,tTime.min,tTime.sec)):fromHex()
end
return gpsMng
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.