⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 holley.h

📁 是zmac的协议的全部完整的解析.代码例子很全
💻 H
📖 第 1 页 / 共 2 页
字号:
	/*		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

	/************************************************************************/
	/*	集中器抄表参数定义		OD 索引 HL_AMR_PARA_GATEWAY_INDEX = 1005	*/
	/************************************************************************/
	typedef struct
	{
		int16u			uiAD_Cycle;			//发送声明集中器命令(即广告命令)的时间周期,单位是秒
		int8u			ucRespond_Timeout;	//集中抄表的接收数据时间窗,单位是分钟
		int8u			ucRepeat_Time;		//重复点抄的次数
		HL_Mid_Time		sUp_Load_Time;		//集中器自动向上层数据管理软件上报冻结数据的时间
		int8u			ucCollect_Cycle;	//集中器自动抄收冻结数据的时间周期,单位是小时
		int8u			ucRequire_Resp;		//是否要求节点对广告帧进行应答
		int8u			ucResp_Contents;	//要求广告命令应答帧中返回的数据信息
		int8u			ucAD_Radius;		//广告命令的发送半径, 取值为 0 则说明半径为 EMBER_MAX_HOPS
		BOOL			bReturn_Flow_Ctrl;	//是否返回流控
		int8u			aucReserved[27];
	}	HL_AMR_Para_Gateway;




	/************************************************************************/
	/*	采集器常量定义														*/
	/*		HL_METER_APPLICATION		电表应用							*/
	/*		HL_TERMINAL_APPLICATION		终端应用							*/
	/*		HL_HANDSET_APPLICATION		手持应用							*/
	/*		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

	/****************************************************************************/
	/*	采集器的基本信息配置参数定义, OD 索引 HL_AMR_PARA_CONFIG_INDEX = 1006	*/
	/****************************************************************************/
	typedef struct
	{
		int8u			ucBaud_Rate;		//采集器与电表之间的通信速度, 见 serial.h
		int8u			ucReserved;
		int16u			uiRead_Cycle;		//采集器自动抄收电表数据的周期,单位是分钟
		HL_Mid_Time		sTime_Stamp;		//数据冻结开始时间
		int16u          uiUART_Frame_Gap;	//UART 帧与帧之间的时间间隔,单位是毫秒,用于在从电表接收数据时判断是否接收完毕一帧
		int16u          uiUART_Resp_Timeout;//UART 帧与帧之间的时间间隔,单位是毫秒,向电表发送 UART 命令后, 需要等待电表响应超时的时间
		int8u			ucApplication;		//用于指示当前的设备是与电表(0),终端(1),还是手持设备(2)连接
		int8u			ucConnection_To_Meter;	//用于指示与电表连接的方式, RS485(0), RF(1),即ZigBee表
		int8u			ucRandom_Delay_Scale;	//随机延时右移位数
		int8u			aucReserved[13];
	}	HL_AMR_Para_Config;

	/************************************************************************/
	/*	采集器需要冻结的数据标识, OD 索引 HL_AMR_DATA_IDS_INDEX = 1007		*/
	/************************************************************************/
	typedef struct
	{
		int8u			ucData_ID_Numb;		//需要冻结的数据标识个数
		int8u			aucReserved[3];
		int8u			aucData_IDs[24];	//需要冻结的数据标识,每个数据标识是2个字节
	}	HL_AMR_Data_IDs;

	/****************************************************************************/
	/*	采集器下辖电表地址的低6位, OD 索引 HL_AMR_METER_ADDR_LOW_INDEX = 1008	*/
	/****************************************************************************/
	typedef struct
	{
		int8u			ucMeter_Numb;				//采集器下辖的电表个数,最大为24
		BOOL			bDiscover_Meter;			//自动发现电表
		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;				//采集器下辖的电表个数
		int8u			aucReserved[3];
		int8u			aucMeter_Addr_High_A[48];	//采集器下辖的电表地址的高6位
		int8u			aucMeter_Addr_High_B[48];
	}	HL_AMR_Meter_Addr_High;

	/************************************************************************/
	/*	采集器下辖电表中,对抄表命令未响应的电表地址的低6位					*/
	/*						OD 索引 HL_AMR_UNRESPOND_METERS_INDEX = 1010	*/
	/************************************************************************/
	typedef struct
	{
		int8u			ucUnrespond_Numb;		//采集器下辖的电表中,没有响应的电表个数,最大为12。
		int8u			aucReserved[3];
		int8u			aucMeter_Addr_Low[36];	//采集器下辖的电表中,没有响应的电表地址的低6位
	}	HL_AMR_Unrespond_Meters;





	/************************************************************************/
	/*	对象字典相关定义													*/
	/*	HL_OD_ENTRY_NUMBER		: 目前 OD 入口数							*/
	/*	HL_OD_MAX_ELEMENT		: 每个结构参数中最多可包含的数据项数目		*/
	/*	HL_OD_MAX_DATA_LENGTH	: 每个结构参数的最大数据长度				*/
	/*	HL_STRUCT_OD			: 结构体 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


	/************************************************************************/
	/*	参数的 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 数据类型定义														*/
	/************************************************************************/
	#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 数据单位定义														*/
	/************************************************************************/
	#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

	/************************************************************************/
	/*	访问权限定义														*/
	/************************************************************************/
	#define	HL_RO_ACCESS					1
	#define	HL_RW_ACCESS					2
	#define	HL_WO_ACCESS					3
	#define	HL_NON_ACCESS					4

	/************************************************************************/
	/*	OD 入口结构定义														*/
	/************************************************************************/
	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;


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -