#ifndef _SIZHU_TELECOM_PROCESS_H #define _SIZHU_TELECOM_PROCESS_H #include "gprs.h" #include "sizhu_ctrl_word.h" /****************************˼ÖþЭÒéÏà¹Ø****************************/ #define SZV10X_VALVE_HAVE_BILLING_CENTER 0X42 #define SIZHU_PROTOCOL_VERSION 0x40 #define SIZHU_FRAME_HEAD 0x68 #define SIZHU_DATA_HEAD 0x55 /****************************˼ÖþЭÒé¿ØÖÆÂë****************************/ //ÒµÎñ #define SIZHU_CONTROL_CODE_DATAUP 0x0101 #define SIZHU_CONTROL_CODE_END 0x0102 #define SIZHU_CONTROL_CODE_MODIFY_KEY 0x0103 #define SIZHU_CONTROL_CODE_PUSH_TERMINAL_INFO 0x0104 //¹¦ÄÜ #define SIZHU_CONTROL_CODE_ACCOUNT_STATUS 0x0201 #define SIZHU_CONTROL_CODE_SET_PARA_DEV 0x0202 #define SIZHU_CONTROL_CODE_READ_PARA_DEV 0x0203 #define SIZHU_CONTROL_CODE_SET_ALARM_CTRL_WORD 0x0204 #define SIZHU_CONTROL_CODE_READ_ALARM_CTRL_WORD 0x0205 #define SIZHU_CONTROL_CODE_SET_REPORT_PERIOD 0x0206 #define SIZHU_CONTROL_CODE_READ_REPORT_PERIOD 0x0207 #define SIZHU_CONTROL_CODE_SET_485_PARA 0x0208 #define SIZHU_CONTROL_CODE_READ_485_PARA 0x0209 #define SIZHU_CONTROL_CODE_READ_EQUIPMENT_INFO 0x0220 #define SIZHU_CONTROL_CODE_SET_TIME 0x0221 #define SIZHU_CONTROL_CODE_SET_IP_PORT 0x0222 #define SIZHU_CONTROL_CODE_READ_IP_PORT 0x0223 #define SIZHU_CONTROL_CODE_CLEAR_ABNORMAL 0x0224 #define SIZHU_CONTROL_CODE_SET_CUMULANT_0 0x0225 #define SIZHU_CONTROL_CODE_SET_DAY_MONTH_RECORD_STORAGE_TIME 0x0230 #define SIZHU_CONTROL_CODE_READ_DAY_MONTH_RECORD_STORAGE_TIME 0x0231 #define SIZHU_CONTROL_CODE_READ_HISTORY_RECORD 0x0232 #define SIZHU_CONTROL_CODE_READ_VALVE_RECORD 0x0233 #define SIZHU_CONTROL_CODE_READ_CUMULANT_MODIFY_RECORD 0x0234 //·§¿Ø #define SIZHU_CONTROL_CODE_VALVE_CONTROL 0x0301 #define SIZHU_CONTROL_CODE_SET_BALANCE_INSUF_CLOSE_VALVE 0x0302 #define SIZHU_CONTROL_CODE_READ_BALANCE_INSUF_CLOSE_VALVE 0x0303 #define SIZHU_CONTROL_CODE_SET_VALVE_CLOSE_CTRL_WORD 0x0304 #define SIZHU_CONTROL_CODE_READ_VALVE_CLOSE_CTRL_WORD 0x0305 #define SIZHU_CONTROL_CODE_SET_NO_UP_CLOSE_DAY 0x0306 #define SIZHU_CONTROL_CODE_READ_NO_UP_CLOSE_DAY 0x0307 #define SIZHU_CONTROL_CODE_SET_NO_GAS_CLOSE_DAY 0x0308 #define SIZHU_CONTROL_CODE_READ_NO_GAS_CLOSE_DAY 0x0309 #define SIZHU_CONTROL_CODE_SET_CUMULANT_CLOSE 0x0310 #define SIZHU_CONTROL_CODE_READ_CUMULANT_CLOSE 0x0311 //±í¶Ë¼Æ·ÑÏà¹Ø²ÎÊý #define SIZHU_CONTROL_CODE_RECHARGE 0x0401 #define SIZHU_CONTROL_CODE_SET_PRICE 0x0402 #define SIZHU_CONTROL_CODE_READ_PRICE 0x0403 #define FRAME_DATA_MAX 3 //Ò»Ö¡Êý¾Ý×î¶à°üº¬µÄÊý¾ÝÌõÊý #define FIRST_DATA_SHIFT_SIZHU 26 #define DATA_PACKET_HEADEA_LENGTH_SIZHU 57 #define DATA_PACKET_DATA_LENGTH_SIZHU sizeof(GPRS_DATA_NEW_PACKAGE_620) //ÉÏ·¢ÀàÐÍ #define REPORTING_TYPE_TIMING 0x01 //¶¨Ê±Éϱ¨ #define REPORTING_TYPE_TRIGGER 0x02 //´¥·¢Éϱ¨£¬°´¼ü #define REPORTING_TYPE_ABNORMAL 0x03 //Òì³£Éϱ¨ #define REPORTING_TYPE_POWER_ON 0x04 //ÉϵçÉϱ¨ #define REPORTING_TYPE_INTERVAL 0x05 //¼ä¸ô #define REPORTING_TYPE_AGAIN 0x06 //ÖØ±¨ #pragma pack(1) typedef struct{ //Ö¡Í· char Framestart_symbol; uint8_t DeviceAddress[8]; char Datastart_symbol; uint8_t Systemclock_year; uint8_t Systemclock_month; uint8_t Systemclock_day; uint8_t Systemclock_hour; uint8_t Systemclock_min; uint8_t Systemclock_sec; uint8_t Protocol_version; uint16_t Control_code; uint16_t frameSeq; uint16_t totalTSeq; char KVer; uint16_t Data_length; //Êý¾Ý°üÍ· uint8_t Equipment_type; uint8_t Equipment_model; uint8_t Send_type; // 0x01:¶¨Ê±Éϸ棻0x02£º°´¼üÉϸ棻0x03£º¾¯±¨Éϸ棻 char moduleSeq[20]; //ICCID uint8_t Signal_intensity; uint8_t Signal_level; uint8_t Netinfo; uint8_t SoftVersion[4]; uint8_t Account_status; SYSTEM_ALARM_WORD_T alarm_word; uint16_t Valve_close_id; uint8_t reserved[8]; uint8_t DataPackageType;//0 0 1 1 2 2 uint8_t dataGroup_Num; char CS; char Frameend_symbol; }SIZHU_GPRS_PROTOCOL_HEADER; //°´ÕÕÐÂÆ½Ì¨Ð­ÒéÊý¾Ý°ü¸ñʽ0¶¨Òå typedef struct{ uint8_t Sample_year; uint8_t Sample_month; uint8_t Sample_day; uint8_t Sample_hour; uint8_t Sample_min; uint8_t Sample_sec; uint64_t fStandardGasUsageTotal;//·Å´ó10000±¶ uint64_t fWorkingGasUsageTotal;//·Å´ó10000±¶ int fStandardvec;//·Å´ó10000±¶ int fWorkingvec;//·Å´ó10000±¶ float Pressure; float Temperature; long long residualAmount;//·Å´ó1000±¶ uint32_t uintPrice;//·Å´ó10000±¶ uint8_t Lith_battery_V; //·Å´ó10±¶ uint8_t Lith_battery_V_Percent; //0-100 uint8_t Alka_battery_V; //·Å´ó10±¶ uint8_t Alka_battery_V_Percent; SYSTEM_STATUS_WORD_T status_word; // }GPRS_DATA_NEW_PACKAGE_VALVE; #pragma pack() extern uint8_t KVer_AES_128_SIZHU[16]; extern volatile GPRS_SEND_CTRL_T gprs_control_g_sizhu; extern SIZHU_GPRS_PROTOCOL_HEADER gprs_protocol_header_sizhu; void gprs_sizhu_handle(void); GPRS_WORK_STATUS_T gprs_power_on_fun_sizhu(); GPRS_WORK_STATUS_T gprs_connection_fun_sizhu(); GPRS_WORK_STATUS_T Gprs_Send_Pro_sizhu(); GPRS_WORK_STATUS_T wait_gprs_send_ok_fun_sizhu(); GPRS_WORK_STATUS_T gprs_time_out_fun_sizhu(); GPRS_WORK_STATUS_T gprs_power_off_fun_sizhu(void); void GPRS_Init(u8 gprs_open_flag); void gprs_protocol_header_2buff(uint8_t *header_in, uint8_t *buff, uint8_t len); void AES128_Decrypt_SIZHU(u8* dataIn,u8* key,u8* dataOut,uint16_t length); u8 IntervalReportingHandle(u16 IntervalReportingInterval,u16 IntervalReporting1Time); #endif