#ifndef _SYSTEM_GENERAL_PARA_H #define _SYSTEM_GENERAL_PARA_H #include "define_all.h" /************************************************** *Ö÷Òª¶¨ÒåһЩͨÓõĺ¯Êý¡¢±äÁ¿ * ***************************************************/ /*****************ͨÓÃö¾Ù******************************/ typedef enum { DM_NONE = 0U, DM_HM_UFG610, // HM = HOLISTIC_METER DM_HM_UFG620, DM_HCM_UFG210, DM_SCM_SZV101, DM_SM_DTU100, DM_SCM_SZV102, DM_SCM_SZV103, DM_HM_UFG630, DM_HM_UFG220, //Á÷Á¿¼Æ DM_HCM_UFG220 = 0x10U, //È¼Æø±í DM_HCM_UFG620, DM_HCM_UFG630, } DEVICE_MODEL; // É豸ÐͺŠtypedef enum { DN50_TYPE = 1U, DN80_TYPE, DN100_TYPE, DN150_TYPE, DN200_TYPE, DN25_TYPE, DN32_TYPE, DN40_TYPE, } CALIBER_MODEL; // ¿Ú¾¶ typedef enum { VM_NONE = 0U, VM_PENGSHENG, //ÅôÊ¢·§Ìå VM_HADE, //¹þµÂ·§Ìå } VALVE_MODEL; // ·§ÃÅÐͺŠtypedef enum { EM_NONE = 0U, EM_IFRTT, //Ò»ÌåʽÁ÷Á¿Ô¶´«ÖÕ¶Ë EM_IFRCT, //Ò»ÌåÁ÷Á¿Ô¶´«¿ØÖÆÖÕ¶Ë EM_SIFRTT, //·ÖÌåʽÁ÷Á¿Ô¶´«ÖÕ¶Ë EM_SIFRCT, //·ÖÌåÁ÷Á¿Ô¶´«¿ØÖÆÖÕ¶Ë } EQUIPMENT_MODEL; // ·§ÃÅÐͺŠtypedef enum { VALVE_NONE = 0U, VALVE_OP, VALVE_CL, VALVE_OPENING, VALVE_CLOSING, VALVE_ERROR, VALVE_MISSING = 99U } VALVE_STATE_T; // ·§ÃÅ״̬ÀàÐÍ typedef enum { VL_UNLOCK = 0U, VL_LOCK } VALVE_LOCK_STATE_T; // ·§ÃÅ״̬ÀàÐÍ //Êý¾ÝÀàÐÍ´óС¶Ë typedef enum { LITTLE_ENDIAN = 0U, BIG_ENDIAN } BIG_OR_LITTLE_ENDIAN; // ·§ÃÅ״̬ÀàÐÍ /*****************ͨÓýṹÌå²ÎÊý******************************/ typedef struct { __IO FlagStatus delay_flag; // ÑÓʱʱ¼äµ½±ê־λ __IO uint16_t delay_time; // ÑÓʱ¾ßÌåʱ¼ä } DELAY_SEC_TYPE_T; // ÑÓʱʱ¼äÀàÐͽṹÌå typedef struct { DELAY_SEC_TYPE_T gprs_timeout_para; // GPRS³¬Ê±Ê±¼ä DELAY_SEC_TYPE_T sys_active_time; // ϵͳ¼¤»îʱ¼ä DELAY_SEC_TYPE_T sys_restart_delay_time;// ÏµÍ³ÖØÆôµÄÑÓ³Ùʱ¼ä DELAY_SEC_TYPE_T UC_active_time; // ÉÏλ»ú¼¤»îʱ¼ä } SYS_DELAY_SEC_PARA_T; /*****************ͨÓúê******************************/ #define BCD_2_DECIMAL(__BCD__) ((__BCD__ / 16) * 10 + __BCD__ % 16) #define DECIMAL_2_BCD(__DECIMAL__) ((__DECIMAL__ / 16) * 10 + __DECIMAL__ % 16) // ´óС¶Ëת»» #define BSWAP_16(x) ((x & 0x00ff) << 8) | \ ((x & 0xff00) >> 8) #define BSWAP_32(x) ((x & 0xff000000) >> 24) | \ ((x & 0x00ff0000) >> 8) | \ ((x & 0x0000ff00) << 8) | \ ((x & 0x000000ff) << 24) #define BSWAP_64(x) ((x & 0xff00000000000000) >> 56) | \ ((x & 0x00ff000000000000) >> 40) | \ ((x & 0x0000ff0000000000) >> 24) | \ ((x & 0x000000ff00000000) >> 8) | \ ((x & 0x00000000ff000000) << 8) | \ ((x & 0x0000000000ff0000) << 24) | \ ((x & 0x000000000000ff00) << 40) | \ ((x & 0x00000000000000ff) << 56) // ϵͳͨÓÃÑÓ³Ùʱ¼äÉèÖà #define __SYS_DELAY_SEC_TIME_SET_(__HANDLE__, __NUMBER__) ((&sys_delay_sec_para_g)->__HANDLE__.delay_time = __NUMBER__) // ϵͳͨÓÃÑÓ³Ùʱ¼ä»ñÈ¡ #define __SYS_DELAY_SEC_TIME_GET_(__HANDLE__) ((&sys_delay_sec_para_g)->__HANDLE__.delay_time) // ϵͳͨÓÃÑÓ³Ù±ê־λget #define __SYS_DELAY_SEC_FLAG_GET(__HANDLE__) ((&sys_delay_sec_para_g)->__HANDLE__.delay_flag) // ϵͳͨÓÃÑÓ³Ù±ê־λÉèÖà #define __SYS_DELAY_SEC_FLAG_SET_(__HANDLE__) ((&sys_delay_sec_para_g)->__HANDLE__.delay_flag = SET) // ϵͳͨÓÃÑÓ³Ù±ê־λÇå³ý #define __SYS_DELAY_SEC_FLAG_CLEAR_(__HANDLE__) ((&sys_delay_sec_para_g)->__HANDLE__.delay_flag = RESET) //ÈÕÖ¾ÔËÐвÎÊý typedef struct log_sizhu_run_t { uint16_t log_count; uint32_t log_addr_save; uint32_t log_addr_begin; }LOG_SIZHU_RUN_T; //extern uint8_t read_data_buf_A_l[200]; //extern uint8_t read_data_buf_B_l[200]; //extern uint8_t read_data_buf_C_l[200]; extern __IO FlagStatus sys_run_period; // ϵͳ¼¤»îÖÜÆÚ extern SYS_DELAY_SEC_PARA_T sys_delay_sec_para_g; ErrorStatus ucharcmp(uint8_t *dataA,uint8_t *dataB,u16 data_length); void arrayA_2_arrayB(uint8_t * aA , uint8_t * aB, u16 len, BIG_OR_LITTLE_ENDIAN mode) ; int mem_cmp_aray( const void * cs, const void * ct, u32 count ); uint8_t TwoTimeCompara(uint8_t* TimeBCD1, uint8_t* TimeBCD2);//6×Ö½ÚBCDʱ¼äÓ뵱ǰʱ¼ä±È½Ï£¬µ±Ç°Ê±¼ä´ó·µ»Ø0£¬ÏàµÈ·µ»Ø1£¬µ±Ç°Ê±¼äС·µ»Ø2¡£ ´ËÍ⣬ËÑË÷µÄʱ¼ä¸ñʽÎÞЧҲ·µ»Ø0£¬¼ÌÐøËÑË÷¡£ //unsigned char BCD2HEX(unsigned char bcd_data) ; //BCD??HEX??? //unsigned char HEX2BCD(unsigned char hex_data) ; //HEX??BCD??? void dou26Byte( double data, unsigned char *array ); #endif