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

📄 holley_ext.h

📁 是zmac的协议的全部完整的解析.代码例子很全
💻 H
字号:
#ifndef		HOLLEY_EXT_H
#define		HOLLEY_EXT_H

	#include	"app/sensor/common.h"
	#include	"Holley.h"


	#ifdef	SINK_APP
		extern	HL_Buffered_Data		sUart_Buffer;
		extern	int16u					ticksSinceLastHeard[EMBER_BINDING_TABLE_SIZE-1];
		extern	int16u					timeBeforeSinkAdvertise;
	#endif

	#ifdef	SENSOR_APP
		extern	int8u					aucUart_Buffer[HL_UART_BUFFER_SIZE];
		extern	int8u					uiUart_Point;
		extern	BOOL					bUART_Frame_To_Process;
		extern	int8u					ucProcessed_Package;

		extern	int16u					uiUART_Last_Output_Time;
		extern	BOOL					bWaiting_UART_Respond;
		extern	int16u					uiUart_Resp_Time_Out;

		extern	int8u					ucSensor_Back_Off_State;
		extern	int16u					uiBack_Off_Start_Time;
		extern	int16u					uiBack_Off_Time;

		extern	int16u					uiMeter_Disc_Sequence;

		extern	int8u					ucFreeze_Meter_Sequence;
		extern	int8u					ucFreeze_ID_Sequence;
		extern	int8u					aucFrozen_Data[HL_MAX_FROZEN_DATA_LENGTH];

		extern	int8u					ucSensor_State;

	#endif

	extern	int8u					ucReset_Token;

	extern	int8u					ucCurrent_MSG;
	extern	int8u					aucRF_MSG_Index[HL_MAX_PACKAGE_NUMBER];

	extern	int8u					aucSwam[HL_SWAM_SIZE];

	extern	int16u					uiUART_Last_Receive_Time;

	extern	HL_Full_Time			sCurrent_Time;

	extern	HL_Device_Info		PGM		sHL_Device_Info;
	extern	HL_Network_Para		PGM		sHL_Network_Para;


	#ifdef	SINK_APP
		extern	HL_AMR_Para_Gateway		PGM		sHL_AMR_Para_Gateway;
	#endif

	#ifdef	SENSOR_APP
		extern	HL_AMR_Para_Config		PGM		sHL_AMR_Para_Config;
		extern	HL_AMR_Data_IDs			PGM		sHL_AMR_Data_IDs;
		extern	HL_AMR_Meter_Addr_Low	PGM		sHL_AMR_Meter_Addr_Low;
		extern	HL_AMR_Meter_Addr_High	PGM		sHL_AMR_Meter_Addr_High;
		extern	HL_AMR_Unrespond_Meters	PGM		sHL_AMR_Unrespond_Meters;
	#endif

	extern	Struct_OD	PGM			sHL_Device_Info_OD;
	extern	Struct_OD	PGM			sHL_Network_Para_OD;
	extern	Struct_OD	PGM			sCurrent_Time_OD;
	extern	Struct_OD	PGM			sHL_Neighbor_Table_OD;

	#ifdef	SINK_APP
		extern	Struct_OD	PGM			sHL_AMR_Para_Gateway_OD;
	#endif

	#ifdef	SENSOR_APP
		extern	Struct_OD	PGM			sHL_AMR_Para_Config_OD;
		extern	Struct_OD	PGM			sHL_AMR_Data_IDs_OD;
		extern	Struct_OD	PGM			sHL_AMR_Meter_Addr_Low_OD;
		extern	Struct_OD	PGM			sHL_AMR_Meter_Addr_High_OD;
		extern	Struct_OD	PGM			sHL_AMR_Unrespond_Meters_OD;
	#endif

	extern	OD_Entry	PGM			sOD_Entry[HL_OD_ENTRY_NUMBER];

	#ifdef	SINK_APP
		extern	void	Send_Advertise( int8u ucRadius, int8u ucRespond, int8u ucContents );
		extern	void	Sink_Para_Init ( void );
		extern	BOOL	Sink_Send_Rf_BroadCast( int8u *pData, int8u ucC_ID, int8u ucLength );
		extern	void	Sink_Store_UART_Data ( void );
		extern	void	Sink_Reply_Buffer_Status( HL_Buffered_Data * pBuf, int8u ucError );
		extern	void	Sink_Process_Buffered_UART_Data ( void );
		extern	void	Sink_Process_Buffered_RF_Data ( void );
	#endif

	#ifdef	SENSOR_APP
		extern	void	Sensor_Para_Init(void);
		extern	void	Sensor_Store_UART_Data ( void );
		extern	void	Sensor_Reply_Buffer_Status( int8u ucError );
		extern	void	Sensor_Process_Buffered_UART_Data ( void );
		extern	void	Sensor_Process_Buffered_RF_Data ( void );
		extern	int8u	Sensor_Pre_Process_RF_Data( int8u * pData );
		extern	int8u	Sensor_Build_ACK_For_Statement( int8u ucContent, int8u * pucResult );
		extern	int8u	Sensor_Build_ERR_Resp( int8u ucCMD, int8u * pucResult );
		extern	void	Sensor_Discover_Meter( void );
		extern	void	Sensor_Save_Meter_Addr( int8u *pData );
		extern	void	Sensor_Freeze_Data( void );
		extern	void	Sensor_Save_Freeze_Data( int8u *pData );
		extern	void	Sensor_Change_Next_Freeze_Time( int16u uiGap );
	#endif

	extern	int8u	Get_First_Valid_Frame( HL_Buffered_Data * pBuf, int8u * pucData );
	extern	BOOL	Check_Buffered_Frame( HL_Buffered_Data * pBuf );
	extern	void	Delete_Buffered_Frame( HL_Buffered_Data * pBuf );
	extern	int8u	Check_UART_Frame( int8u *pData, int16u uiPoint );
	extern	int8u	Get_Neighbor_Table( int8u * pucResult );
	extern	int8u	Read_OD_Shell( int16u uiIndex, int8u ucSub, int8u * pucResult );
	extern	int8u	Read_OD( int16u uiIndex, int8u ucSub, int8u * pucResult );
	extern	int8u	Write_OD_Shell( int16u uiIndex, int8u ucSub, int8u * pucData, int8u ucLength, int8u * pucResult );
	extern	int8u	Write_OD( int16u uiIndex, int8u ucSub, int8u * pucData, int8u ucLength, BOOL bCMD );
	extern	void	HL_Get_Token_Value( int16u uiIndex, int8u *pucData );
	extern	void	HL_Set_Token_Value( int16u uiIndex, int8u *pucData );
	extern	void	Send_UART_Data_With_Frame( int8u *pData, int8u ucLength );
	extern	BOOL	Store_RF_Data( EmberMessageBuffer message );
	extern	void	Delete_RF_Data( void );
	extern	int8u	Set_Unicast_Binding( int8u * eui, int8u ucIndex );
	extern	void	Set_Multicast_Binding(void); 
	extern	BOOL	Send_Rf_Unicast( int8u *pData, int8u ucC_ID, int8u ucLength, int8u ucBind_Index ); 
	extern	void	Adjust_ucCurrent_Time( HL_Full_Time *pTime );
	extern	int8u	Build_DLT645_Read_Command( int8u *aucAddr, int16u uiData_ID, int8u *pResult );
	extern	BOOL	Check_DLT645_Frame( int8u *pData, int8u uiPoint );
	extern	int16u	Get_BIT16_Value( int8u *pData );
	extern	void	Store_BIT16_Value( int8u *pData, int16u uiValue );

	#ifdef	EXCHANGE_INT
		extern	void	Swamp_Int_Data ( int8u * pucData, int8u ucData_Length );
	#endif

#endif

⌨️ 快捷键说明

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