| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- #ifndef _TAX_CTRL_H_
- #define _TAX_CTRL_H_
- #include "stm32f10x.h"
- #include "includes.h"
- #define UART_RS485 UART3_ID
- extern int rs485_send_flag;
- typedef int (*rx_data_proc) (void *puser, uint8_t *data, uint8_t data_len);
- typedef struct _tYTSFCommFrame
- {
- uint8_t fhead; //帧头(1Byte)
- uint8_t flen; //帧长度(1Byte)
- uint8_t findex; //帧序号(1Byte)
- uint8_t fport; //税控口编号(1Byte),0税控口1,1税控口2
- uint8_t fcmd; //命令码(1Byte)
- // uint16_t fcrc; //CRC校验(2Byte)
- }tYTSFCommFrame_t;
- typedef struct _tTaxCommFrame
- {
- //前导码+长度码 千帧号+命令码 +参数 +校验码
- uint8_t fhead; //帧头(1Byte)
- uint8_t flen; //帧长度(1Byte)
- uint8_t findex; //帧序号(1Byte)
- uint8_t fcmd; //命令码(1Byte)
- // uint16_t fcrc; //CRC校验(2Byte)
- }tTaxCommFrame_t;
- typedef struct _gun_info {
- uint8_t fail_count;
- uint8_t quality; //油品
- uint8_t id; //编号
- uint8_t status; //工作状态
- uint64_t total_price; //总累计金额
- uint64_t total_oil_volume; //总体积
- uint32_t last_unit_price; //最后一次加油的单价
- uint32_t last_oil_volume; //最后一次加油的油量
- uint32_t last_price; //最后一次加油的油价
- uint8_t gun_type; //加油枪的数据类型:0当次数据;1 累计数据
- uint32_t gun_msgid; //加油枪序列号
- uint8_t time_day;
- uint8_t time_hour;
- uint8_t time_minute;
- // uint8_t monitor_serino[16];
- // uint8_t gun_num;
- // uint8_t factory; /* 1: 英泰赛福 2: 拓盛 */
- // uint8_t taxpayer_reg_no[20];
- } gun_info_t;
- typedef struct _tax_info {
- uint8_t monitor_serino[16];
- uint8_t coder_serino[20];
- uint8_t dispaly_serino[16];
- uint8_t gun_num;
- uint8_t factory; /* 1: 英泰赛福 2: 拓盛 */
- uint8_t fail_count;
- uint8_t status;
- uint8_t gun_valid;
- uint8_t taxpayer_reg_no[20];
- gun_info_t gun[8];
- //for debug
- uint32_t tx_pkts;
- uint32_t rx_pkts;
- uint32_t rx_errs;
- } tax_info_t ;
- /**********************显示屏参数*********************/
- #define Write_LockScreen 0x81 //写锁屏
- #define Read_LockScreen 0x01 //读锁屏
- #define Write_LockAddress 0x82 //写地址锁定
- #define Read_LockAddress 0x02 //读地址锁定
- #define Write_Timesync 0x83 //写时间同步
- typedef struct _txspCommFrame
- {
- //帧头+长度码+帧号+地址码+指令码 +参数 +校验码
- uint8_t fhead; //帧头(1Byte)
- uint8_t flen; //帧长度(1Byte)
- uint8_t findex; //帧序号(1Byte)
- uint8_t faddress; //地址码(1Byte)
- uint8_t fcmd; //指令码(1Byte)
- }txspCommFrame_t;
- /*******************************************/
- typedef struct _rcv_data_0x8C_{
- uint8_t monitor_serino[10];
- uint8_t data14[64];
- uint8_t data14len;
- uint8_t data11[64];
- uint8_t data11len;
- uint16_t timer86;
- uint8_t crc86;
- uint8_t crc89;
- }__attribute__((packed)) rcv_data_0x8C_t;
- extern rcv_data_0x8C_t g_tax8Cda;
- #define GB_TAX_HEADER_LEN 10
- #define GB_TAX_INFO_LEN 53
- #define GB_GUN_INFO_LEN 22
- #define YTSF_GPIO_RS485_RESET() {GPIO_ResetBits(GPIOD, GPIO_Pin_3);}
- #define YTSF_GPIO_RS485_SET() {GPIO_SetBits(GPIOD, GPIO_Pin_3);}
- #define YTSF_GPIO_AB_RESET() {GPIO_ResetBits(GPIOD, GPIO_Pin_4);}
- #define YTSF_GPIO_AB_SET() {GPIO_SetBits(GPIOD, GPIO_Pin_4);}
- #define YTSF_GPIO_CD_RESET() {GPIO_ResetBits(GPIOD, GPIO_Pin_5);}
- #define YTSF_GPIO_CD_SET() {GPIO_SetBits(GPIOD, GPIO_Pin_5);}
- #define YTSF_GPIO_YTSF_RESET() {GPIO_ResetBits(GPIOD, GPIO_Pin_6);}
- #define YTSF_GPIO_YTSF_SET() {GPIO_SetBits(GPIOD, GPIO_Pin_6);}
- //#define YTSF_GPIO_REV2_RESET() {GPIO_ResetBits(GPIOD, GPIO_Pin_7);}
- //#define YTSF_GPIO_REV2_SET() {GPIO_SetBits(GPIOD, GPIO_Pin_7);}
- //#define YTSF_GPIO_SET() {GPIO_SetBits(GPIOB, GPIO_Pin_5);}
- //#define YTSF_GPIO_RST() {GPIO_ResetBits(GPIOB, GPIO_Pin_5);}
- //#define YTSF_GPIO_DETECT GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_6)
- //#define YTSF_GPIO_EN() {GPIO_ResetBits(GPIOB, GPIO_Pin_7);}
- //#define YTSF_GPIO_DN() {GPIO_SetBits(GPIOB, GPIO_Pin_7);}
- /************************************************************/
- #define YTSF_GPIO_REV2_RESET() {GPIO_ResetBits(GPIOC, GPIO_Pin_0);}
- #define YTSF_GPIO_REV2_SET() {GPIO_SetBits(GPIOC, GPIO_Pin_0);}
- #define YTSF_GPIO_SET() {GPIO_SetBits(GPIOC, GPIO_Pin_1);}
- #define YTSF_GPIO_RST() {GPIO_ResetBits(GPIOC, GPIO_Pin_1);}
- #define YTSF_GPIO_DETECT GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_2)
- #define YTSF_GPIO_EN() {GPIO_ResetBits(GPIOC, GPIO_Pin_3);}
- #define YTSF_GPIO_DN() {GPIO_SetBits(GPIOC, GPIO_Pin_3);}
- /************************************************************/
- #define BIT_SET(p, bit) ((p) |= (1<<(bit)))
- #define BIT_CLC(p, bit) ((p) &= ~(1<<(bit)))
- #define TAX_UART UART1_ID
- #define FAIL_THRESHOLD 3
- #define TAX_MSG_PERIOD 10
- extern uint16_t _crc16_get(uint8_t *_buff,uint32_t _len);
- extern uint8_t tax_rcv_analyze_0x8C(uint8_t *data,void *puser,uint8_t *len);
- extern int tax_0x70_anaylse(void *puser, uint8_t *data, uint8_t data_len);
- #endif
|