#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
|