?? holley.h
字號:
/* HL_RESP_HW_VERSION 要求返回硬件版本號 */
/************************************************************************/
#define HL_RESP_TEMPERATURE 0x01
#define HL_RESP_NEIGHBOR_TABLE 0x02
#define HL_RESP_OD_VERSION 0x04
#define HL_RESP_SW_VERSION 0x08
#define HL_RESP_HW_VERSION 0x10
/************************************************************************/
/* 集中器抄表參數(shù)定義 OD 索引 HL_AMR_PARA_GATEWAY_INDEX = 1005 */
/************************************************************************/
typedef struct
{
int16u uiAD_Cycle; //發(fā)送聲明集中器命令(即廣告命令)的時間周期,單位是秒
int8u ucRespond_Timeout; //集中抄表的接收數(shù)據(jù)時間窗,單位是分鐘
int8u ucRepeat_Time; //重復(fù)點抄的次數(shù)
HL_Mid_Time sUp_Load_Time; //集中器自動向上層數(shù)據(jù)管理軟件上報凍結(jié)數(shù)據(jù)的時間
int8u ucCollect_Cycle; //集中器自動抄收凍結(jié)數(shù)據(jù)的時間周期,單位是小時
int8u ucRequire_Resp; //是否要求節(jié)點對廣告幀進行應(yīng)答
int8u ucResp_Contents; //要求廣告命令應(yīng)答幀中返回的數(shù)據(jù)信息
int8u ucAD_Radius; //廣告命令的發(fā)送半徑, 取值為 0 則說明半徑為 EMBER_MAX_HOPS
BOOL bReturn_Flow_Ctrl; //是否返回流控
int8u aucReserved[27];
} HL_AMR_Para_Gateway;
/************************************************************************/
/* 采集器常量定義 */
/* HL_METER_APPLICATION 電表應(yīng)用 */
/* HL_TERMINAL_APPLICATION 終端應(yīng)用 */
/* HL_HANDSET_APPLICATION 手持應(yīng)用 */
/* HL_CONN_TO_METER_RS485 與電表通過 RS485 連接 */
/* HL_CONN_TO_METER_RF 與電表通過 RF 連接 */
/************************************************************************/
#define HL_METER_APPLICATION 0x00
#define HL_TERMINAL_APPLICATION 0x01
#define HL_CONN_TO_METER_RS485 0x00
#define HL_CONN_TO_METER_RF 0x01
#define HL_SENSOR_STATE_NOMAL 0x00
#define HL_SENSOR_STATE_BACKOFF_FINISH 0x01
#define HL_SENSOR_STATE_BACKOFF_START 0x02
#define HL_SENSOR_STATE_MTR_DISCOVER 0x10
#define HL_SENSOR_STATE_DATA_FREEZE 0x11
#define HL_SENSOR_STATE_RESET 0xFF
#define DLT645_READ_METER_ID_CMD 0x32C0
#define HL_MAX_FROZEN_DATA_LENGTH 384
/****************************************************************************/
/* 采集器的基本信息配置參數(shù)定義, OD 索引 HL_AMR_PARA_CONFIG_INDEX = 1006 */
/****************************************************************************/
typedef struct
{
int8u ucBaud_Rate; //采集器與電表之間的通信速度, 見 serial.h
int8u ucReserved;
int16u uiRead_Cycle; //采集器自動抄收電表數(shù)據(jù)的周期,單位是分鐘
HL_Mid_Time sTime_Stamp; //數(shù)據(jù)凍結(jié)開始時間
int16u uiUART_Frame_Gap; //UART 幀與幀之間的時間間隔,單位是毫秒,用于在從電表接收數(shù)據(jù)時判斷是否接收完畢一幀
int16u uiUART_Resp_Timeout;//UART 幀與幀之間的時間間隔,單位是毫秒,向電表發(fā)送 UART 命令后, 需要等待電表響應(yīng)超時的時間
int8u ucApplication; //用于指示當前的設(shè)備是與電表(0),終端(1),還是手持設(shè)備(2)連接
int8u ucConnection_To_Meter; //用于指示與電表連接的方式, RS485(0), RF(1),即ZigBee表
int8u ucRandom_Delay_Scale; //隨機延時右移位數(shù)
int8u aucReserved[13];
} HL_AMR_Para_Config;
/************************************************************************/
/* 采集器需要凍結(jié)的數(shù)據(jù)標識, OD 索引 HL_AMR_DATA_IDS_INDEX = 1007 */
/************************************************************************/
typedef struct
{
int8u ucData_ID_Numb; //需要凍結(jié)的數(shù)據(jù)標識個數(shù)
int8u aucReserved[3];
int8u aucData_IDs[24]; //需要凍結(jié)的數(shù)據(jù)標識,每個數(shù)據(jù)標識是2個字節(jié)
} HL_AMR_Data_IDs;
/****************************************************************************/
/* 采集器下轄電表地址的低6位, OD 索引 HL_AMR_METER_ADDR_LOW_INDEX = 1008 */
/****************************************************************************/
typedef struct
{
int8u ucMeter_Numb; //采集器下轄的電表個數(shù),最大為24
BOOL bDiscover_Meter; //自動發(fā)現(xiàn)電表
int8u aucReserved[2];
int8u aucMeter_Addr_Low_A[48]; //采集器下轄的電表地址的低6位
int8u aucMeter_Addr_Low_B[48];
} HL_AMR_Meter_Addr_Low;
/****************************************************************************/
/* 采集器下轄電表地址的高6位, OD 索引 HL_AMR_METER_ADDR_HIGH_INDEX = 1009 */
/****************************************************************************/
typedef struct
{
int8u ucMeter_Numb; //采集器下轄的電表個數(shù)
int8u aucReserved[3];
int8u aucMeter_Addr_High_A[48]; //采集器下轄的電表地址的高6位
int8u aucMeter_Addr_High_B[48];
} HL_AMR_Meter_Addr_High;
/************************************************************************/
/* 采集器下轄電表中,對抄表命令未響應(yīng)的電表地址的低6位 */
/* OD 索引 HL_AMR_UNRESPOND_METERS_INDEX = 1010 */
/************************************************************************/
typedef struct
{
int8u ucUnrespond_Numb; //采集器下轄的電表中,沒有響應(yīng)的電表個數(shù),最大為12。
int8u aucReserved[3];
int8u aucMeter_Addr_Low[36]; //采集器下轄的電表中,沒有響應(yīng)的電表地址的低6位
} HL_AMR_Unrespond_Meters;
/************************************************************************/
/* 對象字典相關(guān)定義 */
/* HL_OD_ENTRY_NUMBER : 目前 OD 入口數(shù) */
/* HL_OD_MAX_ELEMENT : 每個結(jié)構(gòu)參數(shù)中最多可包含的數(shù)據(jù)項數(shù)目 */
/* HL_OD_MAX_DATA_LENGTH : 每個結(jié)構(gòu)參數(shù)的最大數(shù)據(jù)長度 */
/* HL_STRUCT_OD : 結(jié)構(gòu)體 OD 類型 */
/************************************************************************/
#ifdef SINK_APP
#define HL_OD_ENTRY_NUMBER 5
#endif
#ifdef SENSOR_APP
#define HL_OD_ENTRY_NUMBER 9
#endif
#define HL_OD_MAX_ELEMENT 10
#define HL_OD_MAX_DATA_LENGTH 100
#define HL_STRUCT_OD 6
/************************************************************************/
/* 參數(shù)的 OD 索引定義 */
/************************************************************************/
#define HL_DEVICE_INFO_INDEX 0
#define HL_NETWORK_PARAMETER_INDEX 1001
#define HL_CURRENT_TIME_INDEX 1002
#define HL_NEIGHBOR_TABLE_INDEX 1003
#define HL_AMR_PARA_GATEWAY_INDEX 1005
#define HL_AMR_PARA_CONFIG_INDEX 1006
#define HL_AMR_DATA_IDS_INDEX 1007
#define HL_AMR_METER_ADDR_LOW_INDEX 1008
#define HL_AMR_METER_ADDR_HIGH_INDEX 1009
#define HL_AMR_UNRESPOND_METERS_INDEX 1010
/************************************************************************/
/* OD 操作錯誤碼定義 */
/************************************************************************/
#define HL_OD_ERR_WRONG_INDEX 0x01
#define HL_OD_ERR_WRONG_SUB_INDEX 0x02
#define HL_OD_ERR_WRONG_ACCESS 0x03
#define HL_OD_ERR_WRONG_LENGTH 0x04
#define HL_OD_ERR_NOT_SUPPORT 0x05
/************************************************************************/
/* OD 數(shù)據(jù)類型定義 */
/************************************************************************/
#define HL_DT_BOOL 1
#define HL_DT_BCD 2
#define HL_DT_INTEGER_8 3
#define HL_DT_INTEGER_16 4
#define HL_DT_BIT_STRING 16
#define HL_DT_VIS_STRING 17
#define HL_DT_SHORT_TIME 25
#define HL_DT_MID_TIME 26
#define HL_DT_FULL_TIME 27
/************************************************************************/
/* OD 數(shù)據(jù)單位定義 */
/************************************************************************/
#define HL_UT_VOLTAGE 32
#define HL_UT_KILOVOLT 33
#define HL_UT_AMPERE 34
#define HL_UT_KILOWATT 35
#define HL_UT_KW_HOUR 36
#define HL_UT_KILOVAR 37
#define HL_UT_KVAR_HOUR 38
#define HL_UT_P_KWH 39
#define HL_UT_P_KVARH 40
#define HL_UT_YEAR 41
#define HL_UT_MONTH 42
#define HL_UT_DAY 43
#define HL_UT_WEEK 44
#define HL_UT_HOUR 45
#define HL_UT_MINUTE 46
#define HL_UT_SECOND 47
#define HL_UT_MILLI_SCND 48
/************************************************************************/
/* 訪問權(quán)限定義 */
/************************************************************************/
#define HL_RO_ACCESS 1
#define HL_RW_ACCESS 2
#define HL_WO_ACCESS 3
#define HL_NON_ACCESS 4
/************************************************************************/
/* OD 入口結(jié)構(gòu)定義 */
/************************************************************************/
typedef struct
{
int8u ucElement_Type;
int8u ucElement_Unit;
int8u ucElement_Length;
int8u ucDecimal_Point;
int8u ucAccess;
} Element_OD;
typedef struct
{
int16u uiIndex;
void * pvLocal_Address;
int8u ucElement_Number;
Element_OD sElement_Desc[HL_OD_MAX_ELEMENT];
} Struct_OD;
typedef struct
{
int8u ucOD_Type;
int16u uiOD_Index;
void * pvOD_Address;
} OD_Entry;
#endif // #ifndef HOLLEY_H
// typedef int8u EmberMessageBuffer; // in ember-type.h
// typedef struct {...} EmberApsFrame;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -