1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openLuat-LuatOS

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
gpsMng.lua 2.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
mw Отправлено 2 лет назад 4dfa4ea
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
1
https://gitlife.ru/oschina-mirror/openLuat-LuatOS.git
git@gitlife.ru:oschina-mirror/openLuat-LuatOS.git
oschina-mirror
openLuat-LuatOS
openLuat-LuatOS
master