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

📄 ieee1588.h

📁 包括EPA协议栈
💻 H
📖 第 1 页 / 共 2 页
字号:
//PTP Management message Header
typedef struct PTP_MANAGEMENT_HEADER{
Octet                    reserved1; 
uint8                targetCommunicationTechnology;
Octet                    targetUuid[6];
uint16               targetPortId;
int16                startingBoundaryHops;
int16                boundaryHops;
Octet                    reserved2; 
uint8                managementMessageKey;
Octet                    reserved3[2];
uint16               parameterLength;
}PTP_Management_Header,*PPTP_Management_Header;

typedef struct PTP_MANAGEMENT_MM_NULL{
PTP_Header Ptp_Header;
PTP_Management_Header Mgt_Header;
//The value of the parameterLength field shall be 0.
}PTP_Mm_Null,*PPTP_Mm_Null;

typedef struct PTP_MANAGEMENT_MM_OBTAIN_IDENTITY{
PTP_Header Ptp_Header;
PTP_Management_Header Mgt_Header;
//The value of the parameterLength field shall be 0.	
}PTP_Mm_Obtain_Identity,*PPTP_Mm_Obtain_Identity;

typedef struct PTP_MANAGEMENT_MM_CLOCK_IDENTITY{
PTP_Header Ptp_Header;
PTP_Management_Header Mgt_Header;
//The value of the parameterLength field is 64.	
Octet                    reserved1[3];
uint8                clockCommunicationTechnology;
Octet                    clockUuidField[6];
Octet                    reserved2[4];
uint16               clockPortField;
Octet                    manufacturerIdentity[48];
}PTP_Mm_Clock_Identity,*PPTP_Mm_Clock_Identity;

typedef struct PTP_MANAGEMENT_MM_INITIALIZE_CLOCK{
PTP_Header Ptp_Header;
PTP_Management_Header Mgt_Header;
//The value of the parameterLength field is 4.	
Octet                    reserved1[2];
uint16               initializationKey;
}PTP_Mm_Initialize_Clock,*PPTP_Mm_Initialize_Clock;

typedef struct PTP_MANAGEMENT_MM_SET_SUBDOMAIN{
PTP_Header Ptp_Header;
PTP_Management_Header Mgt_Header;
//The value of the parameterLength field shall be 16.	
Octet                    subdomainName[16];
}PTP_Mm_Set_Subdomain,*PPTP_Mm_Set_Subdomain;

typedef struct PTP_MANAGEMENT_MM_DEFAULT_DATA_SET{
PTP_Header Ptp_Header;
PTP_Management_Header Mgt_Header;
//The value of the parameterLength field shall be 76.
Octet                    reserved1[3];
uint8                clockCommunicationTechnology;
Octet                    clockUuidField[6];
Octet                    reserved2[4];
uint16               clockPortField;
Octet                    reserved3[3];
uint8                clockStratum;
Octet                    clockIdentifier[4];
Octet                    reserved4[2];
int16                clockVariance;
Octet                    reserved5[3];
boolean                  clockFollowupCapable;
Octet                    reserved6[3];
boolean                  preferred;
Octet                    reserved7[3];
boolean                  initializable;
Octet                    reserved8[3];
boolean                  externalTiming;
Octet                    reserved9[3];
boolean                  isBoundaryClock;
Octet                    reserved10[3];
int8                 syncInterval;
Octet                    subdomainName[16];
Octet                    reserved11[2];
uint16               numberPorts;
Octet                    reserved12[2];
uint16               numberForeignRecords;
}PTP_Mm_Default_Data_Set,*PPTP_Mm_Default_Data_Set;

typedef struct PTP_MANAGEMENT_MM_UPDATE_DEFAULT_DATA_SET{
PTP_Header Ptp_Header;
PTP_Management_Header Mgt_Header;
//The value of the parameterLength field shall be 36.
Octet                    reserved1[3];
uint8                clockStratum;

Octet                    clockIdentifier[4];

Octet                    reserved2[2];
uint16               clockVariance;

Octet                    reserved3[3];
boolean                  preferred;

Octet                    reserved4[3];
int8                 syncInterval;

Octet                    subdomainName[16];
}PTP_Mm_Update_Default_Data_Set,*PPTP_Mm_Update_Default_Data_Set;

typedef struct PTP_MANAGEMENT_MM_CURRENT_DATA_SET{
PTP_Header Ptp_Header;
PTP_Management_Header Mgt_Header;
//The value of the parameterLength field shall be 20.
Octet                    reserved1[2];
uint16               stepsRemoved;

TimeRepresentation       offsetFromMasterSeconds;
TimeRepresentation       oneWayDelay;
}PTP_Mm_Current_Data_Set,*PPTP_Mm_Current_Data_Set;


typedef struct PTP_MANAGEMENT_MM_PARENT_DATA_SET{
PTP_Header Ptp_Header;
PTP_Management_Header Mgt_Header;
//The value of the parameterLength field shall be 90.
Octet                    reserved1[3];
uint8                parentCommunicationTechnology;
Octet                    parentUuid[6];
Octet                    reserved2[4];
uint16               parentPortId;
Octet                    reserved3[2];
uint16               parentLastSyncSequenceNumber;
Octet                    reserved4[3];
boolean                  parentFollowupCapable;
Octet                    reserved5[3];
boolean                  parentExternalTiming;
Octet                    reserved6[2];
int16                parentVariance;
Octet                    reserved7[3];
boolean                  parentStats;
Octet                    reserved8[2];
int16                observedVariance;
int32                observedDrift;
Octet                    reserved9[3];
boolean                  utcReasonable;
Octet                    reserved10[3];
uint8                grandmasterCommunicationTechnology;
Octet                    grandmasterUuidField[6];
Octet                    reserved11[4];
uint16               grandmasterPortIdField;
Octet                    reserved12[3];
uint8                grandmasterStratum;
Octet                    grandmasterIdentifier[4];
Octet                    reserved13[2];
int16                grandmasterVariance;
Octet                    reserved14[3];
boolean                  grandmasterPreferred;
Octet                    reserved15[3];
boolean                  grandmasterIsBoundaryClock;
Octet                    reserved16[2];
uint16               grandmasterSequenceNumber;
}PTP_Mm_Parent_Data_Set,*PPTP_Mm_Parent_Data_Set;

typedef struct PTP_MANAGEMENT_MM_PORT_DATA_SET{
PTP_Header Ptp_Header;
PTP_Management_Header Mgt_Header;
//The value of the parameterLength field shall be 52.
Octet                    reserved1[2];
uint16               returnedPortNumber;
Octet                    reserved2[3];
uint8                portState;
Octet                    reserved3[2];
uint16               lastSyncEventSequenceNumber;
Octet                    reserved4[2];
uint16               lastGeneralEventSequenceNumber;
Octet                    reserved5[3];
uint8                portCommunicationTechnology;
Octet                    portUuidField[6];
Octet                    reserved6[4];
uint16               portIdField;
Octet                    reserved7[3];
boolean                  burstEnabled;
Octet                    reserved8[1];
uint8                subdomainAddressOctets;//subdomainAddressOctets = 4
uint8                eventPortAddressOctet;//eventPortAddressOctet = 2;
uint8                generalPortAddressOctets;//generalPortAddressOctets =2;
Octet                    subdomainAddress[4];
Octet                    reserved9[2];
Octet                    eventPortAddress[2];
Octet                    reserved10[2];
Octet                    generalPortAddress[2];
}PTP_Mm_Port_Data_Set,*PPTP_Mm_Port_Data_Set;

typedef struct PTP_MANAGEMENT_MM_GLOBAL_TIME_DATA_SET{
PTP_Header Ptp_Header;
PTP_Management_Header Mgt_Header;
//The value of the parameterLength field shall be 24.
TimeRepresentation       localTime;
Octet                    reserved1[2];
int16                currentUtcOffset;
Octet                    reserved2[3];
boolean                  leap59;
Octet                    reserved3[3];
boolean                  leap61;
Octet                    reserved4[2];
uint16               epochNumber;
}PTP_Mm_Global_Time_Data_Set,*PPTP_Mm_Global_Time_Data_Set;

typedef struct PTP_MANAGEMENT_MM_UPDATE_GLOBAL_TIME_PROPERTIES{
PTP_Header Ptp_Header;
PTP_Management_Header Mgt_Header;
//The value of the parameterLength field shall be 16.
Octet                    reserved1[2];
int16                currentUtcOffset;
Octet                    reserved2[3];
boolean                  leap59;
Octet                    reserved3[3];
boolean                  leap61;
Octet                    reserved4[2];
uint16               epochNumber;
}PTP_Mm_Update_Global_Time_Properties,*PPTP_Mm_Update_Global_Time_Properties;

typedef struct PTP_MANAGEMENT_MM_GET_FOREIGN_DATA_SET{
PTP_Header Ptp_Header;
PTP_Management_Header Mgt_Header;
//The value of the parameterLength field shall be 4.
Octet                    reserved1[2];
uint16               recordKey;
}PTP_Mm_Get_Foreign_Data_Set,*PPTP_Mm_Get_Foreign_Data_Set;

typedef struct PTP_MANAGEMENT_MM_FOREIGN_DATA_SET{
PTP_Header Ptp_Header;
PTP_Management_Header Mgt_Header;
//The value of the parameterLength field shall be 28.
Octet                    reserved1[2];
uint16               returnedPortNumber;
Octet                    reserved2[2];
uint16               returnedRecordNumber;
Octet                    reserved3[3];
uint8                foreignMasterCommunicationTechnology;
Octet                    foreignMasterUuidField[6];
Octet                    reserved4[4];
uint16               foreignMasterPortIdField;
Octet                    reserved5[2];
uint16               foreignMasterSyncs;
}PTP_Mm_Foreign_Data_Set,*PPTP_Mm_Foreign_Data_Set;

typedef struct PTP_MANAGEMENT_MM_SET_SYNC_INTERVAL{
PTP_Header Ptp_Header;
PTP_Management_Header Mgt_Header;
//The value of the parameterLength field shall be 4.
Octet                    reserved1[2];
uint16               syncInterval;
}PTP_Mm_Set_Sync_Interval,*PPTP_Mm_Set_Sync_Interval;

typedef struct PTP_MANAGEMENT_MM_SET_TIME{
PTP_Header Ptp_Header;
PTP_Management_Header Mgt_Header;
//The value of the parameterLength field shall be 8.
TimeRepresentation		localTime;
}PTP_Mm_Set_Time,*PPTP_Mm_Set_Time;


extern void PTP_init(void);
//extern void RECV_FRMAETIME(uint8* Msg);
extern void SEND_FRMAETIME(uint8* Msg );


extern void	PTP_Header_Construct(PTP_Header* pHeader,uint8  MessageType,uint16  SourcePortId,uint8 ControlNumber,unsigned char* subdomain);
extern void	PTP_RECV_PROCESS(uint8* inbuf);
extern void	PTP_RECV_SYNC(uint8* pPTPData);
extern void	UpdateParentSet(PTP_Sync_Or_Delay_Req* pMessage);
extern void	CreateParentSet(PTP_Sync_Or_Delay_Req* pMessage);
extern void	PtpTestInput(PSock psock, TimeRepresentation* Tcurrent);
extern void	PTP_RECV_FOLLOWUP(uint8* pPTPData);
extern void	PTP_Send_PTP_SYNC_MESSAGE(void);
extern void	PTP_RECV_MANAGEMENT(uint8* pPTPData);
extern void	PTP_RECV_DELAY_REQ(uint8* pPTPData);
extern void	PTP_Send_PTP_FOLLOW_MESSAGE(void);
extern void	PTP_Send_PTP_REQ_RESP(Octet*  requestingSourceUuid,uint16 requestingSourceSequenceId);
extern void	PTP_RECV_DELAY_RESP(uint8* pPTPData);	
extern void	PTP_Send_Delay_Req(void);
extern void PTP_MASTER_SEND_MSG(void);

//新增加的同步算法步骤。
extern void	TimeRepresentationSub(TimeRepresentation * T1, TimeRepresentation * T2, TimeDiff * Result);
extern void	TimeRepresentationAdd(TimeRepresentation * T1, TimeRepresentation * T2, TimeDiff * Result);
extern void	TimeDiffSub(TimeDiff * T1, TimeDiff * T2, TimeDiff * Result);
extern void	TimeDiffAdd(TimeDiff * T1, TimeDiff * T2, TimeDiff * Result);
extern void	TimeDiffSignedJustify(TimeDiff * pTvalue);
extern void TimeDiffDiveTwo(TimeDiff * pTvalue);
extern void	PTP_Sync_Local_By_TOffset(TimeDiff * pToffset);
extern void	PTP_Sync_algorithm(TimeRepresentation * pTrecv, TimeRepresentation * pTorig, TimeRepresentation * pTresp, TimeRepresentation * pTreq);
extern void INT32UCOPY(uint32 * pVaule,uint32 *pResult);
extern void INT32SCOPY(int32 * pVaule,int32 *pResult);
unsigned short int EXCHANGE(unsigned short int tempt);

extern void PTP_HEADER_VERSER_ORDER(PPTP_Header pPTP_header);
extern void SYNC__OR_DELAY_REQ_MSG_VERSER_ORDER(PPTP_Sync_Or_Delay_Req p_sync_or_delay_req);
extern void FOLLOWUP_MSG_VERSER_ORDER(PPTP_Follow_Up p_follow_up);
extern void DELAY_RESP_VERSER_ORDER(PPTP_Delay_Resp p_delay_resp);

 
IEEE1588_EXT TimeRepresentation* G_Tcurrent;
IEEE1588_EXT Globle_Time_Parameter  gTime_Para;
//IEEE1588_EXT unsigned char code gSUBDOMAIN[];
IEEE1588_EXT unsigned char	gLOCALUUID[];
IEEE1588_EXT uint16         MasterInveral;
IEEE1588_EXT uint8          PTPMACADDR[6];
extern       uint32         gPresionToffset;
#ifdef IEEE1588_CLOCK_MASTER
	extern unsigned long int MasterInterval;	
#endif//end #ifdef IEEE1588_CLOCK_MASTER

#endif	// _IEEE1588_H

⌨️ 快捷键说明

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