小蛮定位器lua脚本分析

分三部分详细介绍下小蛮定位器:设计思路、需求部分、脚本代码解析

第一部分:设计思路

1,小蛮gps定位器是基于RDA8851平台的小型GPS定位器,单片机看门狗,APP对接时间线APP

2,小蛮gps定位器产品定义的核心是:简单,易用,稳定,应用场景是家长买给孩子用,当孩子不在自己身边上,只要孩子带着小蛮gps定位器,就可以随时随地了解ta的情况;

3,基于应用场景的需要,以APP功能为出发点来看,小蛮gps定位器需要完成几大功能:监听(有语音和数据两种方式供用户选择)、定位(实时定位命令)、事记(或者叫做时间轴,运动状态下固定以30分钟为间隔上报的轨迹点、实时定位点的记录、监听录音的记录、打电话的时间及相应时长、心跳,以及相应每次上报服务器时对应的电池电压);

4,终端本身的交互接口有:按键、三色灯、SIM卡插槽、充电接口、挂绳;其中,按键的作用有三个:长按开机+按键时LED按定义亮起以对应相应状态+实时上报当前位置(按多少次上报多少次);

注意:按键只能开机,不能关机;小蛮gps定位器不支持主动关机,除非电池用尽;

第二部分:需求介绍

一,名词定义

1,静止状态:运动状态下,连续5个60秒内均无振动产生,进入静止状态;

2,运动状态:静止状态下,连续3个10秒内均有振动产生,进入运动状态;

3,振动状态:连续2个10秒内均有振动产生,即为1个有效的振动状态;

4,低电压状态:无论何种状态下,电池电压电压低于3.5V时;

5,充电状态:充电器插入,电池电压未充满时;

6,充电完成状态:充电器插入,电池电压充满时;

7,充电器插入状态:无论电池电压是否充满,充电器插入时;

8,GPS实时定位:使用GPS进行定实时位的动作(包含时间、电池电压等当前实时信息);

9,GPS历史定位:设备尝试GPS实时定位1分钟后如仍不能定位成功,该设备则使用最近一次GPS定位成功的位置信息作为该次上报的位置信息(时间、电池电压仍使用当前的实时信息),这个过程称之为GPS历史定位;

二,智能定位模式

1,运动状态下位置信息默认上报间隔30分钟,不可由App更改上报时间间隔;

2,运动状态下优先GPS实时定位,1分钟内GPS定位不成功则改为GPS历史定位;

3,静止状态下心跳间隔默认30分钟,不可由App更改上报时间间隔;

4,充电器插入状态下不影响运动状态和静止状态的判断,以及相应状态下的参数设置;

5,任何状态下,开机默认GPS实时定位,GPS定位成功后蓝灯长亮5秒,设备异常重启GPS定位成功后蓝灯不亮;

三,低电压关机

1,任意模式下,当电池电压低于3.5V时,设备自动关机,关机时红灯快闪,关机后所有灯熄灭。关机前将关机信息上报服务器。

2,充电器插入后即刻退出关机模式,根据实际情况进入静止状态或者运动状态;

3,关机动作执行时三颗LED要依次亮起,关机动作执行完毕时自然熄灭;

四,报警内容

1,低电报警,设备上报信息给后台,App和后台推送信息给用户,一直开通,APP无对应开通和关闭的选项;

五,异常处理

1,报文上报不成功 任意定位模式下,报文发送不成功时,设备自动延长1分钟报文发送时间; 若终端12小时内报文发送均不成功,则终端自动重新启动;

2,设备重启开机后不执行正常开机时的LED亮灭(电池电压、充电、SIM卡工作、后台连接、GPS定位等状态显示)操作提示,三颗灯全部关闭;

六,通用定义

1,指示灯定义

慢闪定义:亮一秒钟,灭一秒钟;

快闪定义:亮100毫秒,灭200毫秒;

插入充电器充电中:红灯常亮;

插入充电器充满:绿灯长亮;

充电器不在位:红灯(或者绿灯)灭。

低电压提示方法: 如果充电器不在位,并且电压低于3.6V,红灯慢闪;

开机后设备与后台没有建立连接:绿灯慢闪,如果60秒没有变化,就自动灭掉;

开机后设备与后台连接成功:绿灯长亮,如果连续60秒没有变化,就自动灭掉,如果常亮60秒期间有按键操作,则关闭LED;

开机后GPS没有定位成功:蓝灯慢闪,当打开GPS时间超过120秒钟后仍没有定位成功,就自动灭掉;

GPS定位成功:蓝灯长亮,如果120秒钟没有变化,就自动灭掉;

2,开机键:

关机状态下:长按开机键3秒开机;

开机状态下:

短按开机键:

绿灯快闪2秒然后常亮,表示GSM连接正常,再按灯灭(不管短按长按),不按键则30秒后自动熄灭。

绿灯一直快闪,表示GSM未正常连接,再按灯灭(不管短按长按),不按键则30秒后自动熄灭。

长按开机键:

蓝灯先快闪然后常亮,表示GPS定位正常,再按灯灭(不管短按长按),不按键则30秒后自动熄灭。

说明:

蓝灯快闪时间不超过30秒;

假设在10秒内定位成功,则蓝灯一直常亮20秒后自动关闭,除非在这20秒内有按键使其关闭;

如果终端定位时剩余时间少于3秒,则常亮3秒,比如是在29秒定位成功的,也常亮3秒

蓝灯一直快闪,表示GPS未正常定位,再按灯灭(不管短按长按),不按键则30秒后自动熄灭。

无论长按还是短按开机键,都不可以关机,设备仅可通过App指令实现远程重启;

无论长按还是短按,每次按键都主动上报一次定位位置,60秒内只上报1次;

七,事记显示

1.终端的每一个操作(开机、关机、充电、按键等)都要在App“事记”里显示,App相当于终端的屏幕,是终端各种状态按照时间轴进行的记录;

2.短信上报

终端SIM卡收到短信后,软件需要将对应的短信(含发送号码、接收时间等信息)上传给服务器,服务器再推给App,App在时间轴内显示全部内容;

3.电话上报

终端SIM卡收到未接电话或者正常通话后,软件需要将对应的电话(含拨打号码、拨打时间时长等信息)上传给服务器,服务器再推给App,App在时间轴内显示全部内容;

第三部分:脚本介绍,已对每个脚本做了详细注解。

1.先对所有脚本做一个简要介绍

ccair.lua:电话应用模块

chg.lua:电源管理模块

config.lua:参数配置模块

factory.lua:工程测试模式

gpsapp.lua:gps应用模块

gpsmng.lua:gps应用管理模块

keypad.lua:按键模块

light.lua:设备上的三色灯的管理模块

linkair.lua:连接空中接口模块

linkapp.lua:连接层应用接口管理模块

logger.lua:暂未用

main.lua:主程序

manage.lua:杂项管理模块

mqtt.lua:MQTT协议模块

mqttdup.lua:MQTT dup模块

nvm.lua:参数存取管理模块

pins.lua:引脚配置模块

protoair.lua:协议接口

rcd.lua:拾音接口

shk.lua:震动模块

shkmng.lua:震动管理模块

sleep.lua:gps休眠管理模块

smsapp.lua:短信模块

test.lua:暂未用

wdt.lua:看门狗模块

2.脚本的运行基于一种消息模式,对不同的消息ID注册相应的处理函数,如下:

小蛮定位器lua脚本分析_第1张图片
小蛮定位器lua脚本分析_第2张图片
小蛮定位器lua脚本分析_第3张图片
小蛮定位器lua脚本分析_第4张图片

3.部分脚本添加的注解截图

QQ截图20170217171524.png(67.22 KB, 下载次数: 0)

QQ截图20170217171636.png(32.3 KB, 下载次数: 0)

小蛮定位器lua脚本分析_第5张图片

QQ截图20170217171729.png(70.82 KB, 下载次数: 0)

小蛮定位器lua脚本分析_第6张图片

QQ截图20170217171825.png(65.1 KB, 下载次数: 0)

小蛮定位器lua脚本分析_第7张图片

QQ截图20170217172716.png(52.82 KB, 下载次数: 0)

小蛮定位器lua脚本分析_第8张图片

QQ截图20170217172737.png(49.09 KB, 下载次数: 0)

小蛮定位器lua脚本分析_第9张图片

QQ截图20170217172751.png(44.79 KB, 下载次数: 0)

小蛮定位器lua脚本分析_第10张图片

QQ截图20170217172807.png(77.51 KB, 下载次数: 0)

小蛮定位器lua脚本分析_第11张图片

小蛮定位器lua脚本分析_第12张图片

你可能感兴趣的:(小蛮定位器lua脚本分析)