标签:文件 字节 nbsp 分析 配置文件 当前时间 读取配置 开关 状态
最近想用STM32读取SD卡中配置信息,和GPS时间做比较后实现定时开关机的功能。
要求如下:
1.设备读取SD卡内容后,和当前GPS时间进行比较:
2.GPS时间中年月日不会出现0x00的值,但是时分秒中会出现0x00.
3.时间比较函数:
读取配置文件中时间信息和当前GPS时间信息,逐字节进行比较,如果配置文件中时间大于当前GPS时间返回1,等于返回0,大于返回2.
配置文件中的时间进行限制:没有用到的时间记作0xFF,如定时在每天的6点开始,年月日时分秒记作0xFF 0xFF 0xFF 0x06 0x00 0x00.
这样在进行时间比较时如果配置文件中的时间信息某个字节为0xFF,则放弃该字节比较,进行下一位比较。
4.如果在某天的某个小开机到某个小时关机:
例如:0:00开机---3:00关机, 这种情况可以直接进行比较,GPS时间大于0:00小于3:00可以开机,大于3:00则关机。
如果需要在前一天的某个小时开机,到第二天的某个小时关机:
例如在每天的22:00开机到第二天的1:00关机。开机情况分析:如果GPS时间大于开机时间,为开机状态,如果GPS时间小于关机时间为开机状态,如果GPS时间大于关机时间且小于开机时间则为关机状态。
5.总结,:
如果当前时间小于开机时间且小于关机时间 --- 1.如果关机时间大于开机间---关机,如果关机时间小于开机时间---开机;
如果当前时间小于开机时间且大于关机时间 --- 关机
如果当前时间大于开机时间且小于关机时间 --- 开机
如果当前时间大于开机时间且大于关机时间 --- 1.如果关机时间大于开机时间--关机 ,2.如果关机时间小于开机时间--开机;
代码处理:如果((当前时间大于开机时间且小于关机时间) || (当前时间大于开机且大于关机&&关机时间小于开机时间)||(当前时间小于开机时间且小于关机时间&&关机时间小于开机时间))----开机
否则 关机处理。
6. 如果配置时间为7:00~9:00 如果GPS时间在6:00 ---关机,如果GPS时间为8:00---开机,GPS时间在10:00 ---关机 。
如果配置时间为9:00~7:00 如果GPS时间在6:00 -- 开机,如果GPS时间为8:00---关机,GPS时间在10:00 --- 开机。
如果配置时间为22:00~2:00 如果GPS时间在21:00--关机, 如果GPS时间为23:00---开机,GPS时间在1:00--开机。
标签:文件 字节 nbsp 分析 配置文件 当前时间 读取配置 开关 状态
原文地址:https://www.cnblogs.com/Better-Hai/p/10422888.html