📄 ieee1588.h
字号:
//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 + -