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

📄 datatypes.h

📁 IEEE 1588-2002编程源码
💻 H
字号:
/* datatypes.h */#ifndef DATATYPES_H#define DATATYPES_Htypedef struct {  UInteger32 seconds;  Integer32 nanoseconds;  } TimeRepresentation;typedef struct {  Integer16  interval;  Integer16  left;  Boolean expire;} IntervalTimer;/* Message header */typedef struct {  UInteger16  versionPTP;  UInteger16  versionNetwork;  Octet subdomain[PTP_SUBDOMAIN_NAME_LENGTH];  UInteger8  messageType;  UInteger8  sourceCommunicationTechnology;  Octet  sourceUuid[PTP_UUID_LENGTH];  UInteger16  sourcePortId;  UInteger16  sequenceId;  UInteger8  control;  Octet  flags[2];  } MsgHeader;/* Sync or Delay_Req message */typedef struct {  TimeRepresentation  originTimestamp;  UInteger16  epochNumber;  Integer16  currentUTCOffset;  UInteger8  grandmasterCommunicationTechnology;  Octet  grandmasterClockUuid[PTP_UUID_LENGTH];  UInteger16  grandmasterPortId;  UInteger16  grandmasterSequenceId;  UInteger8  grandmasterClockStratum;  Octet  grandmasterClockIdentifier[PTP_CODE_STRING_LENGTH];  Integer16  grandmasterClockVariance;  Boolean  grandmasterPreferred;  Boolean  grandmasterIsBoundaryClock;  Integer8  syncInterval;  Integer16  localClockVariance;  UInteger16  localStepsRemoved;  UInteger8  localClockStratum;  Octet  localClockIdentifer[PTP_CODE_STRING_LENGTH];  UInteger8  parentCommunicationTechnology;  Octet  parentUuid[PTP_UUID_LENGTH];  UInteger16  parentPortField;  Integer16  estimatedMasterVariance;  Integer32  estimatedMasterDrift;  Boolean  utcReasonable;  } MsgSync;typedef MsgSync MsgDelayReq;/* Follow_Up message */typedef struct {  UInteger16  associatedSequenceId;  TimeRepresentation  preciseOriginTimestamp;  } MsgFollowUp;/* Delay_Resp message */typedef struct {  TimeRepresentation  delayReceiptTimestamp;  UInteger8  requestingSourceCommunicationTechnology;  Octet  requestingSourceUuid[PTP_UUID_LENGTH];  UInteger16  requestingSourcePortId;  UInteger16  requestingSourceSequenceId;  } MsgDelayResp;/* Management message */typedef struct {  UInteger8  targetCommunicationTechnology;  Octet  targetUuid[PTP_UUID_LENGTH];  UInteger16  targetPortId;  Integer16  startingBoundaryHops;  Integer16  boundaryHops;  UInteger8  managementMessageKey;  UInteger16  parameterLength;  UInteger16  recordKey;  } MsgManagement;typedef struct{  UInteger8  foreign_master_communication_technology;  Octet  foreign_master_uuid[PTP_UUID_LENGTH];  UInteger16  foreign_master_port_id;  UInteger16  foreign_master_syncs;    MsgHeader  header;  MsgSync  sync;} ForeignMasterRecord;/* main program data structure */typedef struct {  /* Default data set */  UInteger8  clock_communication_technology;  Octet  clock_uuid_field[PTP_UUID_LENGTH];  UInteger16  clock_port_id_field;  UInteger8  clock_stratum;  Octet  clock_identifier[PTP_CODE_STRING_LENGTH];  Integer16  clock_variance;  Boolean  clock_followup_capable;  Boolean  preferred;  Boolean  initializable;  Boolean  external_timing;  Boolean  is_boundary_clock;  Integer8  sync_interval;  Octet  subdomain_name[PTP_SUBDOMAIN_NAME_LENGTH];  UInteger16  number_ports;  UInteger16  number_foreign_records;    /* Current data set */  UInteger16  steps_removed;  TimeRepresentation  offset_from_master;  TimeRepresentation  one_way_delay;    /* Parent data set */  UInteger8  parent_communication_technology;  Octet  parent_uuid[PTP_UUID_LENGTH];  UInteger16  parent_port_id;  UInteger16  parent_last_sync_sequence_number;  Boolean  parent_followup_capable;  Boolean  parent_external_timing;  Integer16  parent_variance;  Boolean  parent_stats;  Integer16  observed_variance;  Integer32  observed_drift;  Boolean  utc_reasonable;  UInteger8  grandmaster_communication_technology;  Octet  grandmaster_uuid_field[PTP_UUID_LENGTH];  UInteger16  grandmaster_port_id_field;  UInteger8  grandmaster_stratum;  Octet  grandmaster_identifier[PTP_CODE_STRING_LENGTH];  Integer16  grandmaster_variance;  Boolean  grandmaster_preferred;  Boolean  grandmaster_is_boundary_clock;  UInteger16  grandmaster_sequence_number;    /* Global time properties data set */  Integer16  current_utc_offset;  Boolean  leap_59;  Boolean  leap_61;  UInteger16  epoch_number;    /* Port configuration data set */  UInteger8  port_state;  UInteger16  last_sync_event_sequence_number;  UInteger16  last_general_event_sequence_number;  Octet  subdomain_address[SUBDOMAIN_ADDRESS_LENGTH];  Octet  event_port_address[PORT_ADDRESS_LENGTH];  Octet  general_port_address[PORT_ADDRESS_LENGTH];  UInteger8  port_communication_technology;  Octet  port_uuid_field[PTP_UUID_LENGTH];  UInteger16  port_id_field;  Boolean  burst_enabled;    /* Foreign master data set */  ForeignMasterRecord *foreign;    /* Other things we need for the protocol */  Integer16  max_foreign_records;  Integer16  foreign_record_i;  Integer16  foreign_record_best;  Boolean  record_update;  UInteger32 random_seed;  Boolean  need_reset;    MsgHeader msgTmpHeader;    union {    MsgSync  sync;    MsgFollowUp  follow;    MsgDelayReq  req;    MsgDelayResp  resp;    MsgManagement  manage;  } msgTmp;    Octet msgObuf[PACKET_SIZE];  Octet msgIbuf[PACKET_SIZE];    TimeRepresentation  master_to_slave_delay;  TimeRepresentation  slave_to_master_delay;    TimeRepresentation  delay_req_sending_time;  TimeRepresentation  sync_receipt_time;    TimeRepresentation  timeTmp;    UInteger16  Q;  UInteger16  R;    Boolean  sentDelayReq;  UInteger16  sentDelayReqSequenceId;  Boolean  waitingForFollow;    offset_from_master_filter  ofm_filt;  one_way_delay_filter  owd_filt;    Boolean message_activity;    IntervalTimer  itimer[TIMER_ARRAY_SIZE];    NetPath netPath;  } PtpClock;/* program options set at run-time */typedef struct {  Integer8  syncInterval;  Octet  subdomainName[PTP_SUBDOMAIN_NAME_LENGTH];  Octet  clockIdentifier[PTP_CODE_STRING_LENGTH];  UInteger32  clockVariance;  UInteger8  clockStratum;  Boolean  clockPreferred;  Integer16  currentUtcOffset;  UInteger16  epochNumber;  Octet  ifaceName[IFACE_NAME_LENGTH];  Boolean  resetClock;  Boolean  noAdjust;  Boolean  displayStats;  Octet  directAddress[NET_ADDRESS_LENGTH];  Integer16  ap, ai;  Integer16  s;  TimeRepresentation  inboundLatency, outboundLatency;  Integer16  max_foreign_records;  Boolean  slaveOnly;  } RunTimeOpts;#endif

⌨️ 快捷键说明

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