1.一种基于互联网的网络电源远程管理系统,包括系统初始化模块(1)、软件初始化模块(2)、网络客户端初始化模块(3)、网络参数匹配模块(4)以及主程序循环模块(5),其特征在于:上述模块组成的该系统中设置有接收消息回调函数,接收消息回调函数主要用于接收服务器下发的数据和命令,获取到服务器的数据和命令后,控制软件根据实际的命令和数据内容执行相应的动作;
所述接收消息回调函数通过在所述主程序循环模块或主函数中注册后,然后直接于该系统内部调用;
所述系统初始化模块用于引入各个核心库文件、声明系统所需变量、声明WIFI事件,以及注册网络客户端对象,其中,声明的系统所需变量具体为:WIFI名称、WIFI密码、服务器地址、服务器端口、登陆服务器账号和密码、NTP服务器地址、设备权限名称、设备控制密码、设备ID、设备唯一名称、设备数据上报地址、设备命令接收地址、设备状态、系统时间、时区、定时任务结构体;
所述软件初始化模块用于初始化通信串口、读取本地配置数据并校验,且根据校验结果执行对应命令、通过串口输出当前时区、初始化GPIO、初始化设备数据,以及通过串口输出设备唯一名称;
所述网络客户端初始化模块用于配置SSL客户端的根证书、声明客户端使用的根证书路径、配置客户端将要登陆的服务器地址和服务器端口,以及注册客户端接收消息回调函数所述网络参数匹配模块用于检查SET按键状态、执行SET按键按下状态的命令、执行SET按键松开状态的命令、配置WIFI芯片工作在AP模式、通过串口输出当前AP模式的IP,以及创建websocket服务器并监听,监听逻辑具体为:没有监听到连接,不做任何操作;而监听到连接,则获取数据,GPIO2输出脉冲,驱动外部LED闪烁,然后,保存数据。
2.根据权利要求1所述的一种基于互联网的网络电源远程管理系统,其特征在于,所述接收消息回调函数通过在所述主程序循环模块(5)或主函数中注册后,然后直接于该系统内部调用。
3.根据权利要求1所述的一种基于互联网的网络电源远程管理系统,其特征在于,所述系统初始化模块(1)用于引入各个核心库文件、声明系统所需变量、声明WIFI事件,以及注册网络客户端对象。
4.根据权利要求1所述的一种基于互联网的网络电源远程管理系统,其特征在于,所述软件初始化模块(2)用于初始化通信串口、读取本地配置数据并校验,且根据校验结果执行对应命令、通过串口输出当前时区、初始化GPIO、初始化设备数据,以及通过串口输出设备唯一名称。
5.根据权利要求1所述的一种基于互联网的网络电源远程管理系统,其特征在于,所述网络客户端初始化模块(3)用于配置SSL客户端的根证书、声明客户端使用的根证书路径、配置客户端将要登陆的服务器地址和服务器端口,以及注册客户端接收消息回调函数。
6.根据权利要求1所述的一种基于互联网的网络电源远程管理系统,其特征在于,所述网络参数匹配模块(4)用于检查SET按键状态、执行SET按键按下状态的命令、执行SET按键松开状态的命令、配置WIFI芯片工作在AP模式、通过串口输出当前AP模式的IP,以及创建websocket服务器并监听。
7.根据权利要求1所述的一种基于互联网的网络电源远程管理系统,其特征在于,所述主程序循环模块(5)的循环步骤主要包括:S501、延时;
S502、判断是否需要请求设备状态数据,并执行对应命令;
S503、判断WIFI连接状态,并执行对应命令;
S504、判断是否有定时任务,并执行对应命令。
8.根据权利要求7所述的一种基于互联网的网络电源远程管理系统,其特征在于,所述主程序循环模块为本系统中的程序循环体部分,会对以下部分进行循环执行:S500、延时10毫秒;
S501、判断是否需要请求设备状态数据,
如果是,则根据当前状态,执行以下4种命令,具体包括:(1)没有登陆WIFI,则串口输出aREQ‑1‑00‑00;(2)已经登陆WIFI,但是没有同步到网络时间,则串口输出aREQ‑2‑00‑00;
(3)登陆WIFI,并且成功同步网络时间,但是没有登陆服务器,则串口输出aREQ‑2‑16‑08,而具体实施时,后面的16‑08是经过时区转化的当地时间,格式是24小时制,其中第一组是小时,第二组是分钟,具体为,16‑08表示16时08分;(4)已经登陆WIFI,成功同步网络时间且已登陆服务器,则串口输出aREQ‑3‑16‑13;
如果否,则判断当前系统时钟是否溢出,如果溢出则复位所有变量;
S502、判断WIFI连接状态,执行逻辑如下:
WIFI连接成功:
1:停止WIFI重连机制;
2:判断当前是否已经同步网络时间,执行逻辑如下:
已经同步网络时间,则判断上一次同步是否是1分钟以前,如果是,则重新同步,并且串口输出Syncing...,如果上次同步未到1分钟,不做任何操作;
未同步网络时间则串口输出Syncing...即刻连接NTP服务器同步网络时间;
3:判断当前是否已经登陆服务器,执行逻辑如下:
3.1:未登陆服务器,串口输出Connecting...,使用服务器账号和密码登陆服务器
3.2:已经登陆服务器,监听设备命令接收地址,随时接收数据,监听设备上传数据中断标志,实时获取设备状态数据,如果设备上传数据中断标志触发,获取设备状态数据,并把该数据上传到服务器,如果设备命令接收监听事件触发,调用接收消息回调函数;
WIFI连接失败,则启动WIFI重连机制,根据WIFI重连机制状态驱动GPIO4输出脉冲指示当前重连状态;
S503、判断是否有定时任务,如果是,则根据系统时间和当前同步的网络时间,且判断当前任务是否应该执行,如果达成执行条件,则执行任务,否则不做任何操作。