| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #ifndef _XSPDATAOPT_H_
- #define _XSPDATAOPT_H_
- #include "../CMSIS/gd32f10x.h"
- #include "xspOptFlash.h"
- #include <string.h>
- #include "../Hardware/boardinit.h"
- extern uint8_t g_7egDa[29];
- typedef struct display_data_{
- uint32_t price; // 单价
- uint32_t amount; // 金额
- uint32_t oil; // 油量
- }__attribute__((packed)) dispData;
- typedef struct xspopt_data_{
- dispData lastDa; // 上次记录的数据,只有显示屏不变时或是显示屏清零时开始记录
- dispData curDa; // 当前数据
- dispData startDa;
- uint8_t lastDawrite; // 上次数据是否已经存储
- uint8_t gunStatus; // 枪的状态
- uint8_t newCode; // 新交易记录标识
- uint8_t bsame4; // 读取4次数据都是相同的
- uint64_t lastTamout;
- uint64_t lastToil;
- uint32_t changeCnt; // 变化的过程
- uint32_t lastCnt;
- uint8_t noChangeCnt; // 不变情况的统计
- uint8_t bCheckDa; // 当前为数据查询
- uint8_t bstartAdd; // 根据抬枪信号,判断开始加油
- }__attribute__((packed)) xspoptData;
- extern xspoptData g_xspoptDa; // 显示屏的过程数据
- typedef struct xsp_record_{
- uint32_t recordId; // 记录ID
- uint16_t bsend; // 0xff:没有发送 0x00:已经发送
- uint8_t recodeMode; // 记录产生方式 0:逻辑产生 1:抬枪信号产生,3:按键产生
- uint8_t priceUseCount; // 单价屏的索引
- uint32_t amount;
- uint32_t oil;
- uint32_t price;
- uint64_t tamount;
- uint64_t toil;
- uint32_t timer;// 记录时间
- }__attribute__((packed)) xspRecord;
- typedef union xsp_data_info_{
- uint8_t data[64];
- xspRecord reDa;
- }__attribute__((packed)) XspDataInfo;
- extern XspDataInfo g_xspReDa;
- typedef struct _up_7seg_src_data_{
- uint8_t bOpen; // 是否开启 1:开启
- uint8_t bAppointDev; // 是否指定的一个设备 0:否, 1:指令的设备为主 2:指定的设备为从
- uint8_t bofflineTest; // 离线调试,主动上报
- timeout_t upTime; // 上报的时长
- uint8_t devMsg[17]; // 读取指令的从设备的8段数据,用于主设备问询从设备
- }__attribute__((packed))Up7segData;
- extern Up7segData g_up7segData;
- typedef enum {
- LOW_LEVEL = 0x00,
- HIGHT_LEVEL = 0x01,
- LOW_HIGHT = 0x02, // 由低变高
- HIGHT_LOW = 0x03, // 由高变低
- }gunstatus;
- #define GUN_STATUS_TIMER 10000
- typedef struct gun_status_{
- gunstatus curst; // 当前的状态
- gunstatus lastst; // 上一次的状态
- uint32_t timer; // 时间
- uint8_t count; // 检测次数 低电平的个数
- uint8_t bsave; // 是否已经挂枪需要存储数据
- }__attribute__((packed))GunStatus;
- extern void save_display_data_to_flash(void);
- extern void init_gun_status(void);
- extern void deal_gun_status(uint32_t tick);
- extern void anay_7eg(void);
- extern void processing_display_data(dispData *da);
- #endif
|