zongqiang.zhang | 0c6a088 | 2019-08-07 14:48:21 +0800 | [diff] [blame] | 1 | #ifndef _SP_CONFIG_H |
| 2 | #define _SP_CONFIG_H |
| 3 | |
| 4 | #include "sp_version.h" |
| 5 | #include "../nec_hardware.h" |
| 6 | |
| 7 | #ifndef int8 |
| 8 | #define int8 signed char |
| 9 | #endif |
| 10 | |
| 11 | #ifndef uint8 |
| 12 | #define uint8 unsigned char |
| 13 | #endif |
| 14 | |
| 15 | #ifndef int16 |
| 16 | #define int16 signed short |
| 17 | #endif |
| 18 | |
| 19 | #ifndef uint16 |
| 20 | #define uint16 unsigned short |
| 21 | #endif |
| 22 | |
| 23 | #ifndef int32 |
| 24 | #define int32 signed int |
| 25 | #endif |
| 26 | |
| 27 | #ifndef uint32 |
| 28 | #define uint32 unsigned int |
| 29 | #endif |
| 30 | |
| 31 | #ifndef NULL |
| 32 | #define NULL ((void *)0) |
| 33 | #endif |
| 34 | |
zongqiang.zhang | 5868d4d | 2019-11-22 17:28:13 +0800 | [diff] [blame] | 35 | #define DEV_TYPE "G401201" |
zongqiang.zhang | 0c6a088 | 2019-08-07 14:48:21 +0800 | [diff] [blame] | 36 | #define DEV_OFFLINE_DEFAULT_HOUR 168 |
| 37 | #define DEV_BLKBITMAP_DONE 1984 |
zongqiang.zhang | 039d01e | 2019-12-03 17:27:54 +0800 | [diff] [blame] | 38 | #define DEV_MAX_DEVICENO 64 |
zongqiang.zhang | 0c6a088 | 2019-08-07 14:48:21 +0800 | [diff] [blame] | 39 | |
| 40 | #define PRO_VERSION GIT_VERSION |
| 41 | #define BUILD_DATE __DATE__ // " " __TIME__ |
| 42 | #ifdef FLOWSENSOR |
| 43 | #define PURCHASE_FLOWSENSOR 1 |
| 44 | #else |
| 45 | #define PURCHASE_FLOWSENSOR 0 |
| 46 | #endif |
| 47 | |
| 48 | enum |
| 49 | { |
| 50 | SP_KEY_NONE = 0xFF, |
| 51 | SP_KEY_0 = 0, |
| 52 | SP_KEY_1 = 1, |
| 53 | SP_KEY_2 = 2, |
| 54 | SP_KEY_3 = 3, |
| 55 | SP_KEY_4 = 4, |
| 56 | SP_KEY_5 = 5, |
| 57 | SP_KEY_6 = 6, |
| 58 | SP_KEY_7 = 7, |
| 59 | SP_KEY_8 = 8, |
| 60 | SP_KEY_9 = 9, |
| 61 | SP_KEY_ENTER = 12, |
| 62 | SP_KEY_CLEAR = 11 |
| 63 | }; |
| 64 | |
| 65 | typedef enum |
| 66 | { |
| 67 | PAYMODE_INIT = 0, |
| 68 | PAYMODE_CARD = 1, |
| 69 | PAYMODE_QRCODE = 2, |
| 70 | } sp_paymode_e; |
| 71 | |
| 72 | #pragma pack(push) |
| 73 | #pragma pack(1) |
| 74 | |
| 75 | typedef struct |
| 76 | { |
| 77 | uint8 command; |
| 78 | uint32 sendtime; |
| 79 | } sp_comm_status_t; |
| 80 | |
| 81 | typedef struct |
| 82 | { |
| 83 | uint32 last_heartbeat_ticker; |
| 84 | uint8 hwVer[16]; //É豸°æ±¾ºÅ |
| 85 | uint8 offlineRecordCount; //δÉÏ´«Á÷Ë®ÊýÁ¿ |
| 86 | uint8 workMode; //µ±Ç°×´Ì¬£¬0-¿ÕÏУ¬1-ÕýÔÚʹÓã¬9-ÒÉËÆ¹ÊÕÏ |
| 87 | uint8 heart_status; //ÐÄÌø×´Ì¬£¬0-³õʼ»¯£¬1-·¢ËÍ£¬2-½ÓÊÕ |
| 88 | } sp_heartbeat_t; |
| 89 | |
| 90 | typedef struct |
| 91 | { |
| 92 | uint32 last_login_ticker; |
| 93 | uint8 login_flag; //0-δǩµ½£¬1-ÒÑÇ©µ½£¬2-×¢Ïú |
| 94 | uint8 hwVer[16]; //É豸°æ±¾ºÅ |
| 95 | uint8 deviceKey; //É豸¹¤×÷ÃÜÔ¿ |
| 96 | } sp_login_t; |
| 97 | |
| 98 | //Ïû·ÑÁ÷Ë®ÐÅÏ¢½á¹¹ |
| 99 | typedef struct |
| 100 | { |
| 101 | uint8 devphyid[4]; //É豸±àºÅ |
| 102 | uint8 transdate[3]; //YYDDMM¸ñʽÈÕÆÚ |
| 103 | uint8 transtime[3]; |
guangcheng.qin | 0066884 | 2019-08-19 09:45:25 +0800 | [diff] [blame] | 104 | uint32 cobillno; //½»Ò×¶©µ¥±àºÅ |
zongqiang.zhang | 0c6a088 | 2019-08-07 14:48:21 +0800 | [diff] [blame] | 105 | uint8 cardphyid[4]; //¿¨ÎïÀíid |
| 106 | uint8 transway; //½»Ò×·½Ê½£¬0-³õʼ£¬1-Ë¢¿¨£¬2-ɨÂë |
| 107 | uint8 amount; //ʵ¼ÊÖ§¸¶½ð¶î |
| 108 | uint8 paidAmount; //ÒÑÖ§¸¶½ð¶î£¬µ±ÊÇÏȿ۷ÑģʽÏ£¬¼Ç¼ÒÑÖ§¸¶µÄ½ð¶î |
| 109 | uint8 flowsensors; //ʵ¼ÊʹÓüÆÁ¿£¨µ¥Î»£º°ÙºÁÉý£© |
| 110 | uint8 transtatus; //Á÷ˮ״̬£¬0-³õʼ£¬1-³É¹¦£¬2-ʧ°Ü |
guangcheng.qin | 0066884 | 2019-08-19 09:45:25 +0800 | [diff] [blame] | 111 | uint8 reverse[7]; //ռλ·û |
zongqiang.zhang | 0c6a088 | 2019-08-07 14:48:21 +0800 | [diff] [blame] | 112 | uint8 crc[2]; //len=32 |
| 113 | } sp_transdtl_t; |
| 114 | |
| 115 | typedef struct |
| 116 | { |
| 117 | uint8 offline_work_hour; //ÔÊÐíÍÑ»ú¹¤×÷×î´óСʱ 0 ~ 168 Сʱ£¬0 ±íʾ²»ÏÞÖÆ |
| 118 | uint8 deviceno; //»úºÅ |
| 119 | uint8 devphyid[4]; //ÎïÀíID |
| 120 | uint8 flowsensor_unit; // 100ml¶ÔÓ¦Âö³åÊý |
| 121 | uint8 unused[54]; |
| 122 | uint8 login_flag; //0-δǩµ½£¬1-ÒÑÇ©µ½£¬2-ÒÑ×¢Ïú |
| 123 | uint8 crc[2]; |
| 124 | } sp_config_t; |
| 125 | |
| 126 | typedef struct |
| 127 | { |
| 128 | uint32 transaddr; //µØÖ· |
| 129 | uint16 this_offset; //Ò³Æ«ÒÆÎ» |
| 130 | uint8 crc[2]; //len=8 |
| 131 | } sp_last_transdtl_t; |
| 132 | |
| 133 | typedef struct |
| 134 | { |
| 135 | uint32 transaddr; //µØÖ· |
| 136 | uint16 this_offset; //Ò³Æ«ÒÆÎ» |
| 137 | uint8 crc[2]; //len=8 |
| 138 | } sp_unconfirm_transdtl_t; |
| 139 | |
| 140 | //Ïû·ÑÐÅÏ¢ |
| 141 | typedef struct |
| 142 | { |
| 143 | uint32 free_used_num; //ÒÑÃâ·ÑʹÓüÆÁ¿(µ¥Î»:100ml) |
| 144 | |
| 145 | uint8 starttime[6]; //Ë¢¿¨Ê±¼ä |
| 146 | /*Ïȿۿîºó³öË®*/ |
| 147 | uint16 prepaid_num; //µ¥´Î¿ÉÓüÆÁ¿(µ¥Î»:100ml) |
| 148 | uint16 prepaid_amt; //µ¥´ÎÔ¤¸¶½ðÇ® |
| 149 | |
| 150 | uint16 paid_num; //ÀۼƿÉÓüÆÁ¿(µ¥Î»:100ml) |
| 151 | uint16 paid_sum; //ÀÛ¼ÆÖ§¸¶½ð¶î |
| 152 | uint16 used_num; //ÒÑʹÓüÆÁ¿(µ¥Î»:100ml) |
| 153 | } sp_purchase_t; |
| 154 | |
| 155 | //¶þάÂëÐÅÏ¢ |
| 156 | typedef struct |
| 157 | { |
| 158 | char qrcode_url[32]; ///¶þάÂë¶ÌÂë |
| 159 | uint32 starttime; //¶þάÂ뿪ʼʱ¼ä |
| 160 | uint32 nowtime; //¶þάÂ뵱ǰʱ¼ä |
| 161 | uint32 validtime; //¶þάÂëÓÐЧʱ¼ä |
zongqiang.zhang | b65f124 | 2019-12-10 16:08:16 +0800 | [diff] [blame] | 162 | uint32 waittime; //³öË®µÈ´ýʱ¼ä |
zongqiang.zhang | 0c6a088 | 2019-08-07 14:48:21 +0800 | [diff] [blame] | 163 | uint8 authstatus; //Óû§È·ÈÏ״̬£¨0-δȷÈÏ£¬1-ÒÑÈ·ÈÏ£© |
| 164 | uint8 paystatus; //Ö§¸¶×´Ì¬£¨0-´ýÖ§¸¶£¬ 1-ÒÑÖ§¸¶£¬ 2-´ú¿Û£¬3 - ¹Ø±Õ£© |
| 165 | uint8 paidAmount; //µ±¶©µ¥ÊÇÒÑÖ§¸¶×´Ì¬£¬·µ»ØÖ§¸¶³É¹¦½ð¶î £¬ ·ñÔòÊÇ 0 |
| 166 | } sp_qrcode_t; |
| 167 | |
| 168 | //É豸²ÎÊý |
| 169 | typedef struct |
| 170 | { |
| 171 | uint8 dev_offline_maxhour; //É豸ÍÑ»ú×î´ó¹¤×÷ʱ¼ä(Сʱ),0-²»ÏÞÖÆ,168-ĬÈÏʱ¼ä |
| 172 | uint8 flowsensor_unit; //100ml¶ÔÓ¦Âö³åÊý |
| 173 | uint8 hwVer[16]; //É豸°æ±¾ºÅ |
| 174 | uint8 deviceKey[8]; //É豸¹¤×÷ÃØÔ¿ |
| 175 | uint8 work_mode; //É豸¹¤×÷״̬ |
| 176 | } sp_sysconf_t; |
| 177 | |
| 178 | |
| 179 | typedef struct |
| 180 | { |
| 181 | uint8 tag_type; |
| 182 | uint8 cur_state; |
| 183 | uint8 snr[8]; |
| 184 | uint32 firsttick; //Ê״ζÁ¿¨Ê±¼ä |
| 185 | uint32 lasttick; //×îºó¶Á¿¨Ê±¼ä |
| 186 | } sp_cardstate_t; |
| 187 | |
| 188 | typedef struct |
| 189 | { |
| 190 | uint8 current_state; //µ±Ç°¹¤×÷״̬ |
| 191 | uint16 errcode; |
| 192 | uint32 tick; |
| 193 | uint8 last_state; //ÉÏÒ»´Î״̬ |
| 194 | |
| 195 | uint8 pause_status; //Óû§Ê¹ÓÃ״̬£¬0--ʹÓÃÖУ¬!0--ÔÝÍ£ |
| 196 | uint32 pause_tick; //ÔÝͣʱµÄʱ¼ä |
| 197 | } sp_cardworkstate_t; |
| 198 | |
| 199 | //Ë®¿ØÆ÷É豸ÐÅÏ¢ |
| 200 | typedef struct |
| 201 | { |
| 202 | uint8 link_stat; //0--Á´Â·¹¤×÷ÖУ¬1---Á´Â·¿ÉÓà |
| 203 | uint8 load_para_status; //0--Õý³££¬!0--´íÎó |
| 204 | uint8 deviceno; |
guangcheng.qin | 0066884 | 2019-08-19 09:45:25 +0800 | [diff] [blame] | 205 | uint8 local_deviceno; |
zongqiang.zhang | 0c6a088 | 2019-08-07 14:48:21 +0800 | [diff] [blame] | 206 | uint8 devphyid[4]; |
| 207 | |
| 208 | sp_cardstate_t cardState; |
| 209 | sp_sysconf_t sysconf; |
| 210 | sp_comm_status_t last_comm_status; |
| 211 | sp_heartbeat_t heartbeat; |
| 212 | sp_login_t devlogin; |
| 213 | sp_last_transdtl_t last_transdtl; |
| 214 | sp_unconfirm_transdtl_t unconfirm_transdtl; |
| 215 | |
| 216 | sp_paymode_e paymode; |
| 217 | sp_purchase_t purchase; |
| 218 | } sp_pos_t; |
| 219 | |
| 220 | //·ÑÂÊÐÅÏ¢ |
| 221 | typedef struct |
| 222 | { |
| 223 | uint8 fee_start; //T°ÙºÁÉý¿ªÊ¼; |
| 224 | uint8 fee_unit; //µ¥´Î¿Û·Ñ¿ÉÓÃÁ÷Á¿£¨µ¥Î»:100ml£© |
| 225 | uint8 fee_amt; //µ¥´Î¿Û·Ñ½ð¶î£¬ÒÔ·ÖΪµ¥Î» |
| 226 | } sp_feepara_t; |
| 227 | |
| 228 | //¿¨½á¹¹ÐÅÏ¢ |
| 229 | typedef struct |
| 230 | { |
| 231 | uint8 cardphyid[4]; |
| 232 | uint8 citizen_cardno[12]; //ÊÐÃñºÅ |
| 233 | uint8 cardtype; |
| 234 | uint8 expiredate[4]; |
| 235 | |
zongqiang.zhang | db84c85 | 2019-12-09 10:18:01 +0800 | [diff] [blame] | 236 | uint16 waterlimit; //µ¥´Î³öË®Á÷Á¿ÉÏÏÞ£¨100ml£© |
| 237 | uint16 amountlimit; //µ¥´Î³öË®½ð¶îÉÏÏÞ (·Ö) |
| 238 | uint32 cobillno; //½»Ò×¶©µ¥±àºÅ |
guangcheng.qin | 2d6738c | 2019-09-25 17:38:15 +0800 | [diff] [blame] | 239 | uint8 permit; //ÊÇ·ñÔÊÐíÏû·Ñ£¬0-ÔÊÐí£¬1-²»ÔÊÐí |
zongqiang.zhang | 7b2b7b2 | 2019-12-06 10:52:18 +0800 | [diff] [blame] | 240 | char limitmsg[45]; //ÏÞÖÆÏû·ÑÐÅÏ¢ |
zongqiang.zhang | 0c6a088 | 2019-08-07 14:48:21 +0800 | [diff] [blame] | 241 | sp_qrcode_t qrcode; //¶þάÂë |
| 242 | sp_feepara_t feepara; |
| 243 | } sp_card_t; |
| 244 | |
| 245 | #pragma pack(pop) |
| 246 | |
| 247 | typedef enum |
| 248 | { |
| 249 | HEART_INIT = 0, |
| 250 | HEART_SEND = 1, |
| 251 | HEART_RECV = 2 |
| 252 | } sp_heart_status_t; |
| 253 | |
| 254 | typedef enum |
| 255 | { |
| 256 | TAG_TYPE_UNKONWN = 0, //δ֪¿¨ÀàÐÍ |
| 257 | TAG_TYPE_M1, //M1¿¨ |
| 258 | TAG_TYPE_CPU //CPU¿¨ |
| 259 | } sp_cardTag_type; |
| 260 | |
| 261 | typedef enum |
| 262 | { |
| 263 | STATE_NONE = 0, |
| 264 | STATE_EXIST, |
| 265 | STATE_ERROR=0xFF |
| 266 | } sp_cardState_type; |
| 267 | |
| 268 | typedef enum |
| 269 | { |
| 270 | CARDWORKSTATUS_NONE = 0, |
| 271 | CARDWORKSTATUS_READY, |
| 272 | CARDWORKSTATUS_WORKING, |
| 273 | CARDWORKSTATUS_WORKING_WITHOUTCARD, |
| 274 | CARDWORKSTATUS_PAUSE, |
| 275 | CARDWORKSTATUS_STOPPING, |
| 276 | CARDWORKSTATUS_STOPPED, |
| 277 | CARDWORKSTATUS_TAKEOFF, |
| 278 | CARDWORKSTATUS_WORKERROR, |
| 279 | CARDWORKSTATUS_FEECARD_WORKING, |
| 280 | CARDWORKSTATUS_SET_DEV, |
| 281 | CARDWORKSTATUS_ERROR=0xff |
| 282 | } sp_cardWorkState_type; |
| 283 | |
| 284 | #endif |