#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_TYPE; // É豸ÐͺÅ
|
|
typedef enum
|
{
|
DN50_TYPE = 1U,
|
DN80_TYPE,
|
DN100_TYPE,
|
DN150_TYPE,
|
DN200_TYPE,
|
|
DN25_TYPE,
|
DN32_TYPE,
|
DN40_TYPE,
|
} CALIBER_TYPE; // ¿Ú¾¶
|
|
typedef enum
|
{
|
EM_NONE = 0U,
|
EM_IFRTT, //Ò»ÌåʽÁ÷Á¿Ô¶´«ÖÕ¶Ë
|
EM_IFRCT, //Ò»ÌåÁ÷Á¿Ô¶´«¿ØÖÆÖÕ¶Ë
|
EM_SIFRTT, //·ÖÌåʽÁ÷Á¿Ô¶´«ÖÕ¶Ë
|
EM_SIFRCT, //·ÖÌåÁ÷Á¿Ô¶´«¿ØÖÆÖÕ¶Ë
|
} EQUIPMENT_TYPE; // ·§ÃÅÐͺÅ
|
|
typedef enum
|
{
|
LITTLE_ENDIAN = 0U,
|
BIG_ENDIAN
|
} BIG_OR_LITTLE_ENDIAN; //Êý¾ÝÀàÐÍ´óС¶Ë
|
|
typedef enum
|
{
|
FLOW_METER_CONN_NONE = 0U,
|
FLOW_METER_CONN_PULSE,
|
FLOW_METER_CONN_RS485,
|
FLOW_METER_CONN_RS485_AND_PULSE
|
} FLOW_METER_CONN_TYPE; //Á÷Á¿¼ÆÁ¬½Ó·½Ê½
|
|
typedef enum
|
{
|
BAUDRATE_1200 = 0U,
|
BAUDRATE_2400 ,
|
BAUDRATE_4800 ,
|
BAUDRATE_9600 ,
|
BAUDRATE_19200 ,
|
BAUDRATE_38400 ,
|
BAUDRATE_56000 ,
|
BAUDRATE_57600 ,
|
BAUDRATE_115200
|
} BAUDRATE_CODE; //²¨ÌØÂÊ
|
|
typedef enum
|
{
|
PARITY_NONE = 0U,
|
PARITY_ODD ,
|
PARITY_EVEN ,
|
|
} PARITY_BIT; //²¨ÌØÂÊ
|
|
/*****************ͨÓýṹÌå²ÎÊý******************************/
|
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 OFFSET_OF(type, member) ((size_t) & (((type *)0))->member)
|
#define SIZEOF_OF(type, member) (sizeof(((type *)0))->member)
|
|
|
// ϵͳͨÓÃÑÓ³Ùʱ¼äÉèÖÃ
|
#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
|