forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-05-13 29651cb059e56969ed845b045ab46505c89dc0c5
Soft/system_general_para.h
@@ -1,6 +1,7 @@
#ifndef _SYSTEM_GENERAL_PARA_H
#define _SYSTEM_GENERAL_PARA_H
#include "define_all.h"
#include "extern_rtc.h"
/**************************************************
*Ö÷Òª¶¨ÒåһЩͨÓõĺ¯Êý¡¢±äÁ¿
@@ -23,7 +24,7 @@
   DM_HCM_UFG220 = 0x10U,   //È¼Æø±í
   DM_HCM_UFG620,
   DM_HCM_UFG630,
} DEVICE_MODEL; // É豸ÐͺÅ
} DEVICE_TYPE; // É豸ÐͺÅ
typedef enum
{
@@ -36,15 +37,7 @@
   DN25_TYPE,
   DN32_TYPE,
   DN40_TYPE,
} CALIBER_MODEL; // ¿Ú¾¶
typedef enum
{
   VM_NONE   = 0U,
   VM_PENGSHENG,  //ÅôÊ¢·§Ìå
   VM_HADE,          //¹þµÂ·§Ìå
} VALVE_MODEL; // ·§ÃÅÐͺÅ
} CALIBER_TYPE; // ¿Ú¾¶
typedef enum
{
@@ -53,46 +46,130 @@
   EM_IFRCT,   //Ò»ÌåÁ÷Á¿Ô¶´«¿ØÖÆÖÕ¶Ë
   EM_SIFRTT,  //·ÖÌåʽÁ÷Á¿Ô¶´«ÖÕ¶Ë
   EM_SIFRCT,   //·ÖÌåÁ÷Á¿Ô¶´«¿ØÖÆÖÕ¶Ë
} EQUIPMENT_MODEL; // ·§ÃÅÐͺÅ
} EQUIPMENT_TYPE; // ·§ÃÅÐͺÅ
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; // ·§ÃÅ״̬ÀàÐÍ
} 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 enum
{
   RS485_START_REASON_NONE = 0U,  //ÎÞ´¥·¢£¬²»ÐèÒªÖ´ÐÐ
  RS485_START_REASON_KEY ,  //°´¼ü
   RS485_START_REASON_TIMING,    //¶¨Ê±
   RS485_START_REASON_REPORT,    //ʵʱÉϱ¨ÐèÒª
   RS485_START_REASON_RECORD,    //±£´æ¼Ç¼ÐèÒª£¬¿ÉÓÃÓÚÉϱ¨¶³½áµÈÇé¿ö
} RS485_START_REASON; //485Æô¶¯Ô­Òò
/*****************ͨÓýṹÌå²ÎÊý******************************/
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;
typedef struct
{
  __IO FlagStatus start_flag;  // ¹¦ÄÜÆô¶¯±êÖ¾
  __IO FlagStatus running_flag; // ¹¦ÄÜÔËÐÐÖбêÖ¾
} FUN_START_CTRL_T;         // ÑÓʱʱ¼äÀàÐͽṹÌå
typedef struct
{
  FUN_START_CTRL_T rs485_ctrl_flag;
  FUN_START_CTRL_T wrc_ctrl_flag;
   FUN_START_CTRL_T valve_ctrl_flag;
} FUN_START_CTRL_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)
@@ -134,8 +211,8 @@
//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;  //ϵͳÑÓʱ¿ØÖÆ
extern FUN_START_CTRL_PARA_T sys_fun_run_ctrl_g;  //ϵͳ¹¦ÄÜÔËÐпØÖÆ
@@ -153,5 +230,7 @@
//unsigned char HEX2BCD(unsigned char hex_data)  ; //HEX??BCD???     
void   dou26Byte( double data, unsigned char *array );
FlagStatus IntervalTriggerHandle(sClockBCD sys_clockBCD_in,uint16_t IntervalTime,uint8_t IntervalFirstTimeBCD[2]);
#endif