| #ifndef _SP_CONFIG_H |
| #define _SP_CONFIG_H |
| |
| #include "sp_version.h" |
| #include "../nec_hardware.h" |
| |
| #ifndef int8 |
| #define int8 signed char |
| #endif |
| |
| #ifndef uint8 |
| #define uint8 unsigned char |
| #endif |
| |
| #ifndef int16 |
| #define int16 signed short |
| #endif |
| |
| #ifndef uint16 |
| #define uint16 unsigned short |
| #endif |
| |
| #ifndef int32 |
| #define int32 signed int |
| #endif |
| |
| #ifndef uint32 |
| #define uint32 unsigned int |
| #endif |
| |
| #ifndef NULL |
| #define NULL ((void *)0) |
| #endif |
| |
| #define DEV_TYPE "G401302" |
| #define DEV_OFFLINE_DEFAULT_HOUR 168 |
| #define DEV_BLKBITMAP_DONE 1984 |
| #define DEV_MAX_DEVICENO 99 |
| |
| #define PRO_VERSION GIT_VERSION |
| #define BUILD_DATE __DATE__ // " " __TIME__ |
| #ifdef FLOWSENSOR |
| #define PURCHASE_FLOWSENSOR 1 |
| #else |
| #define PURCHASE_FLOWSENSOR 0 |
| #endif |
| |
| enum |
| { |
| SP_KEY_NONE = 0xFF, |
| SP_KEY_0 = 0, |
| SP_KEY_1 = 1, |
| SP_KEY_2 = 2, |
| SP_KEY_3 = 3, |
| SP_KEY_4 = 4, |
| SP_KEY_5 = 5, |
| SP_KEY_6 = 6, |
| SP_KEY_7 = 7, |
| SP_KEY_8 = 8, |
| SP_KEY_9 = 9, |
| SP_KEY_ENTER = 12, |
| SP_KEY_CLEAR = 11 |
| }; |
| |
| typedef enum |
| { |
| PAYMODE_INIT = 0, |
| PAYMODE_CARD = 1, |
| PAYMODE_QRCODE = 2, |
| } sp_paymode_e; |
| |
| #pragma pack(push) |
| #pragma pack(1) |
| |
| typedef struct |
| { |
| uint8 command; |
| uint32 sendtime; |
| } sp_comm_status_t; |
| |
| typedef struct |
| { |
| uint32 last_heartbeat_ticker; |
| uint8 hwVer[16]; //É豸°æ±¾ºÅ |
| uint8 offlineRecordCount; //δÉÏ´«Á÷Ë®ÊýÁ¿ |
| uint8 workMode; //µ±Ç°×´Ì¬£¬0-¿ÕÏУ¬1-ÕýÔÚʹÓã¬9-ÒÉËÆ¹ÊÕÏ |
| uint8 heart_status; //ÐÄÌø×´Ì¬£¬0-³õʼ»¯£¬1-·¢ËÍ£¬2-½ÓÊÕ |
| } sp_heartbeat_t; |
| |
| typedef struct |
| { |
| uint32 last_login_ticker; |
| uint8 login_flag; //0-δǩµ½£¬1-ÒÑÇ©µ½£¬2-×¢Ïú |
| uint8 hwVer[16]; //É豸°æ±¾ºÅ |
| uint8 deviceKey; //É豸¹¤×÷ÃÜÔ¿ |
| } sp_login_t; |
| |
| //Ïû·ÑÁ÷Ë®ÐÅÏ¢½á¹¹ |
| typedef struct |
| { |
| uint8 devphyid[4]; //É豸±àºÅ |
| uint8 transdate[3]; //YYDDMM¸ñʽÈÕÆÚ |
| uint8 transtime[3]; |
| uint32 cobillno; //½»Ò×¶©µ¥±àºÅ |
| uint8 cardphyid[4]; //¿¨ÎïÀíid |
| uint8 transway; //½»Ò×·½Ê½£¬0-³õʼ£¬1-Ë¢¿¨£¬2-ɨÂë |
| uint8 amount; //ʵ¼ÊÖ§¸¶½ð¶î |
| uint8 paidAmount; //ÒÑÖ§¸¶½ð¶î£¬µ±ÊÇÏȿ۷ÑģʽÏ£¬¼Ç¼ÒÑÖ§¸¶µÄ½ð¶î |
| uint8 flowsensors; //ʵ¼ÊʹÓüÆÁ¿£¨µ¥Î»£º°ÙºÁÉý£© |
| uint8 transtatus; //Á÷ˮ״̬£¬0-³õʼ£¬1-³É¹¦£¬2-ʧ°Ü |
| uint8 reverse[7]; //ռλ·û |
| uint8 crc[2]; //len=32 |
| } sp_transdtl_t; |
| |
| typedef struct |
| { |
| uint8 offline_work_hour; //ÔÊÐíÍÑ»ú¹¤×÷×î´óСʱ 0 ~ 168 Сʱ£¬0 ±íʾ²»ÏÞÖÆ |
| uint8 deviceno; //»úºÅ |
| uint8 devphyid[4]; //ÎïÀíID |
| uint8 flowsensor_unit; // 100ml¶ÔÓ¦Âö³åÊý |
| uint8 unused[54]; |
| uint8 login_flag; //0-δǩµ½£¬1-ÒÑÇ©µ½£¬2-ÒÑ×¢Ïú |
| uint8 crc[2]; |
| } sp_config_t; |
| |
| typedef struct |
| { |
| uint32 transaddr; //µØÖ· |
| uint16 this_offset; //Ò³Æ«ÒÆÎ» |
| uint8 crc[2]; //len=8 |
| } sp_last_transdtl_t; |
| |
| typedef struct |
| { |
| uint32 transaddr; //µØÖ· |
| uint16 this_offset; //Ò³Æ«ÒÆÎ» |
| uint8 crc[2]; //len=8 |
| } sp_unconfirm_transdtl_t; |
| |
| //Ïû·ÑÐÅÏ¢ |
| typedef struct |
| { |
| uint32 free_used_num; //ÒÑÃâ·ÑʹÓüÆÁ¿(µ¥Î»:100ml) |
| |
| uint8 starttime[6]; //Ë¢¿¨Ê±¼ä |
| /*Ïȿۿîºó³öË®*/ |
| uint16 prepaid_num; //µ¥´Î¿ÉÓüÆÁ¿(µ¥Î»:100ml) |
| uint16 prepaid_amt; //µ¥´ÎÔ¤¸¶½ðÇ® |
| |
| uint16 paid_num; //ÀۼƿÉÓüÆÁ¿(µ¥Î»:100ml) |
| uint16 paid_sum; //ÀÛ¼ÆÖ§¸¶½ð¶î |
| uint16 used_num; //ÒÑʹÓüÆÁ¿(µ¥Î»:100ml) |
| } sp_purchase_t; |
| |
| //¶þάÂëÐÅÏ¢ |
| typedef struct |
| { |
| char qrcode_url[32]; ///¶þάÂë¶ÌÂë |
| uint32 starttime; //¶þάÂ뿪ʼʱ¼ä |
| uint32 nowtime; //¶þάÂ뵱ǰʱ¼ä |
| uint32 validtime; //¶þάÂëÓÐЧʱ¼ä |
| uint8 authstatus; //Óû§È·ÈÏ״̬£¨0-δȷÈÏ£¬1-ÒÑÈ·ÈÏ£© |
| uint8 paystatus; //Ö§¸¶×´Ì¬£¨0-´ýÖ§¸¶£¬ 1-ÒÑÖ§¸¶£¬ 2-´ú¿Û£¬3 - ¹Ø±Õ£© |
| uint8 paidAmount; //µ±¶©µ¥ÊÇÒÑÖ§¸¶×´Ì¬£¬·µ»ØÖ§¸¶³É¹¦½ð¶î £¬ ·ñÔòÊÇ 0 |
| } sp_qrcode_t; |
| |
| //É豸²ÎÊý |
| typedef struct |
| { |
| uint8 dev_offline_maxhour; //É豸ÍÑ»ú×î´ó¹¤×÷ʱ¼ä(Сʱ),0-²»ÏÞÖÆ,168-ĬÈÏʱ¼ä |
| uint8 flowsensor_unit; //100ml¶ÔÓ¦Âö³åÊý |
| uint8 hwVer[16]; //É豸°æ±¾ºÅ |
| uint8 deviceKey[8]; //É豸¹¤×÷ÃØÔ¿ |
| uint8 work_mode; //É豸¹¤×÷״̬ |
| } sp_sysconf_t; |
| |
| |
| typedef struct |
| { |
| uint8 tag_type; |
| uint8 cur_state; |
| uint8 snr[8]; |
| uint32 firsttick; //Ê״ζÁ¿¨Ê±¼ä |
| uint32 lasttick; //×îºó¶Á¿¨Ê±¼ä |
| } sp_cardstate_t; |
| |
| typedef struct |
| { |
| uint8 current_state; //µ±Ç°¹¤×÷״̬ |
| uint16 errcode; |
| uint32 tick; |
| uint8 last_state; //ÉÏÒ»´Î״̬ |
| |
| uint8 pause_status; //Óû§Ê¹ÓÃ״̬£¬0--ʹÓÃÖУ¬!0--ÔÝÍ£ |
| uint32 pause_tick; //ÔÝͣʱµÄʱ¼ä |
| } sp_cardworkstate_t; |
| |
| //Ë®¿ØÆ÷É豸ÐÅÏ¢ |
| typedef struct |
| { |
| uint8 link_stat; //0--Á´Â·¹¤×÷ÖУ¬1---Á´Â·¿ÉÓà |
| uint8 load_para_status; //0--Õý³££¬!0--´íÎó |
| uint8 deviceno; |
| uint8 local_deviceno; |
| uint8 devphyid[4]; |
| |
| sp_cardstate_t cardState; |
| sp_sysconf_t sysconf; |
| sp_comm_status_t last_comm_status; |
| sp_heartbeat_t heartbeat; |
| sp_login_t devlogin; |
| sp_last_transdtl_t last_transdtl; |
| sp_unconfirm_transdtl_t unconfirm_transdtl; |
| |
| sp_paymode_e paymode; |
| sp_purchase_t purchase; |
| } sp_pos_t; |
| |
| //·ÑÂÊÐÅÏ¢ |
| typedef struct |
| { |
| uint8 fee_start; //T°ÙºÁÉý¿ªÊ¼; |
| uint8 fee_unit; //µ¥´Î¿Û·Ñ¿ÉÓÃÁ÷Á¿£¨µ¥Î»:100ml£© |
| uint8 fee_amt; //µ¥´Î¿Û·Ñ½ð¶î£¬ÒÔ·ÖΪµ¥Î» |
| } sp_feepara_t; |
| |
| //¿¨½á¹¹ÐÅÏ¢ |
| typedef struct |
| { |
| uint8 cardphyid[4]; |
| uint8 citizen_cardno[12]; //ÊÐÃñºÅ |
| uint8 cardtype; |
| uint8 expiredate[4]; |
| |
| uint8 waterlimit; //µ¥´Î³öË®ÉÏÏÞ£¨100ml£© |
| uint32 cobillno; //½»Ò×¶©µ¥±àºÅ,BCDÂë |
| sp_qrcode_t qrcode; //¶þάÂë |
| sp_feepara_t feepara; |
| } sp_card_t; |
| |
| #pragma pack(pop) |
| |
| typedef enum |
| { |
| HEART_INIT = 0, |
| HEART_SEND = 1, |
| HEART_RECV = 2 |
| } sp_heart_status_t; |
| |
| typedef enum |
| { |
| TAG_TYPE_UNKONWN = 0, //δ֪¿¨ÀàÐÍ |
| TAG_TYPE_M1, //M1¿¨ |
| TAG_TYPE_CPU //CPU¿¨ |
| } sp_cardTag_type; |
| |
| typedef enum |
| { |
| STATE_NONE = 0, |
| STATE_EXIST, |
| STATE_ERROR=0xFF |
| } sp_cardState_type; |
| |
| typedef enum |
| { |
| CARDWORKSTATUS_NONE = 0, |
| CARDWORKSTATUS_READY, |
| CARDWORKSTATUS_WORKING, |
| CARDWORKSTATUS_WORKING_WITHOUTCARD, |
| CARDWORKSTATUS_PAUSE, |
| CARDWORKSTATUS_STOPPING, |
| CARDWORKSTATUS_STOPPED, |
| CARDWORKSTATUS_TAKEOFF, |
| CARDWORKSTATUS_WORKERROR, |
| CARDWORKSTATUS_FEECARD_WORKING, |
| CARDWORKSTATUS_SET_DEV, |
| CARDWORKSTATUS_ERROR=0xff |
| } sp_cardWorkState_type; |
| |
| #endif |