flexPTP 1.0
An IEEE 1588 PTP implementation designed for microcontrollers
Loading...
Searching...
No Matches
settings_interface.c
Go to the documentation of this file.
2
3#include "flexptp/ptp_defs.h"
4#include "ptp_types.h"
5#include "ptp_core.h"
6#include <string.h>
7
9extern PtpCoreState gPtpCoreState;
10#define S (gPtpCoreState)
12
13void ptp_set_clock_offset(int32_t offset) {
14 nsToTsI(&S.hwoptions.offset, offset);
15}
16
18 return nsI(&S.hwoptions.offset);
19}
20
21void ptp_prefer_master_clock(uint64_t clockId) {
22 S.bmca.preventMasterSwitchOver = true;
23 S.bmca.masterProps.grandmasterClockIdentity = clockId;
24}
25
27 S.bmca.preventMasterSwitchOver = false;
28}
29
31 return S.bmca.masterProps.grandmasterClockIdentity;
32}
33
35 return S.hwoptions.clockIdentity;
36}
37
38void ptp_set_domain(uint8_t domain) {
39 S.profile.domainNumber = domain;
40}
41
42uint8_t ptp_get_domain() {
43 return S.profile.domainNumber;
44}
45
46void ptp_set_addend(uint32_t addend) {
47 S.hwclock.addend = addend;
48}
49
50uint32_t ptp_get_addend() {
51 return S.hwclock.addend;
52}
53
55 return S.profile.transportType;
56}
57
59 S.profile.transportType = tp;
60}
61
63 S.profile.delayMechanism = dm;
64 ptp_reset(); // this is mandatory
65}
66
68 return S.profile.delayMechanism;
69}
70
72 S.profile.transportSpecific = tspec;
73 ptp_reset(); // this is mandatory
74}
75
77 return S.profile.transportSpecific;
78}
79
80void ptp_set_profile_flags(uint8_t flags) {
81 S.profile.flags = flags;
82 ptp_reset();
83}
84
86 return S.profile.flags;
87}
88
89void ptp_set_tlv_chain_by_name(const char * tlvSet) {
90 strncpy(S.profile.tlvSet, tlvSet, PTP_MAX_TLV_PRESET_NAME_LENGTH);
91 ptp_reset();
92}
93
95 return S.profile.tlvSet;
96}
97
98
99void ptp_load_profile(const PtpProfile * pProfile) {
100 S.profile = *pProfile;
101 ptp_reset();
102}
104 return S.profile.logDelayReqPeriod;
105}
106
108 S.profile.logDelayReqPeriod = drlp;
109 ptp_reset();
110}
111
113 return S.profile.logSyncPeriod;
114}
115
116void ptp_set_sync_log_period(int8_t slp) {
117 S.profile.logSyncPeriod = slp;
118 ptp_reset();
119}
120
122 return S.profile.logAnnouncePeriod;
123}
124
126 S.profile.logAnnouncePeriod = alp;
127 ptp_reset();
128}
129
130void ptp_set_coarse_threshold(uint64_t ns) {
131 S.slave.coarseLimit = ns;
132}
133
135 return S.slave.coarseLimit;
136}
137
138void ptp_set_priority1(uint8_t p1) {
139 S.capabilities.priority1 = p1;
140 ptp_reset();
141}
142
144 return S.capabilities.priority1;
145}
146
147void ptp_set_priority2(uint8_t p2) {
148 S.capabilities.priority2 = p2;
149 ptp_reset();
150}
151
153 return S.capabilities.priority2;
154}
155
157 S.capabilities.grandmasterClockClass = cc;
158}
159
161 return S.capabilities.grandmasterClockClass;
162}
163
165 S.capabilities.grandmasterClockAccuracy = ca;
166}
167
169 return S.capabilities.grandmasterClockAccuracy;
170}
171
172void ptp_set_clock_variance(uint16_t var) {
173 S.capabilities.grandmasterClockVariance = var;
174}
175
177 return S.capabilities.grandmasterClockVariance;
178}
179
180void ptp_set_local_steps_removed(uint16_t lsr) {
181 S.capabilities.localStepsRemoved = lsr;
182}
183
185 return S.capabilities.localStepsRemoved;
186}
187
189 PTP_HW_GET_TIME(pT);
190}
191
#define PTP_HW_GET_TIME(pt)
void ptp_reset()
Definition: ptp_core.c:165
Core of the PTP implementation. Defines functions for message processing, clock tuning,...
In here reside a multitude of fundamental PTP-related constants and definitions.
#define PTP_MAX_TLV_PRESET_NAME_LENGTH
Maximum TLV preset name length.
Definition: ptp_defs.h:58
This module defines the fundamental PTP message and state machine type, flags, bitfields and the PTP ...
PtpTransportType
PTP transport type enumeration.
Definition: ptp_types.h:128
PtpClockClass
Standard PTP clock classes.
Definition: ptp_types.h:179
PtpClockAccuracy
Standard clock accuray definitions.
Definition: ptp_types.h:195
PtpDelayMechanism
PTP Delay mechanism enumeration.
Definition: ptp_types.h:136
PtpTransportSpecific
PTP transport specific enumeration.
Definition: ptp_types.h:144
void ptp_time(TimestampU *pT)
uint16_t ptp_get_local_steps_removed()
void ptp_set_delay_mechanism(PtpDelayMechanism dm)
uint64_t ptp_get_coarse_threshold()
void ptp_set_clock_variance(uint16_t var)
void ptp_set_announce_log_period(int8_t alp)
PtpDelayMechanism ptp_get_delay_mechanism()
void ptp_set_delay_req_log_period(int8_t drlp)
PtpClockClass ptp_get_clock_class()
int8_t ptp_get_announce_log_period()
void ptp_set_transport_type(PtpTransportType tp)
void ptp_set_clock_offset(int32_t offset)
PtpTransportType ptp_get_transport_type()
uint8_t ptp_get_priority2()
uint8_t ptp_get_profile_flags()
uint64_t ptp_get_current_master_clock_identity()
int8_t ptp_get_sync_log_period()
uint8_t ptp_get_priority1()
int8_t ptp_get_delay_req_log_period()
int32_t ptp_get_clock_offset()
uint8_t ptp_get_domain()
void ptp_set_domain(uint8_t domain)
void ptp_set_local_steps_removed(uint16_t lsr)
PtpClockAccuracy ptp_get_clock_accuracy()
void ptp_set_priority2(uint8_t p2)
void ptp_set_addend(uint32_t addend)
PtpTransportSpecific ptp_get_transport_specific()
void ptp_set_sync_log_period(int8_t slp)
void ptp_set_transport_specific(PtpTransportSpecific tspec)
void ptp_unprefer_master_clock()
void ptp_prefer_master_clock(uint64_t clockId)
uint64_t ptp_get_own_clock_identity()
void ptp_set_clock_accuracy(PtpClockAccuracy ca)
void ptp_set_tlv_chain_by_name(const char *tlvSet)
void ptp_set_clock_class(PtpClockClass cc)
void ptp_set_priority1(uint8_t p1)
uint16_t ptp_get_clock_variance()
void ptp_set_profile_flags(uint8_t flags)
const char * ptp_get_loaded_tlv_chain()
uint32_t ptp_get_addend()
void ptp_load_profile(const PtpProfile *pProfile)
void ptp_set_coarse_threshold(uint64_t ns)
This module features functions to tweak around the PTP engine's almost every property.
Giant PTP core state object.
Definition: ptp_types.h:457
PTP profile structure.
Definition: ptp_types.h:331
Timestamp (unsigned)
Definition: timeutils.h:20
TimestampI * nsToTsI(TimestampI *r, int64_t ns)
Definition: timeutils.c:61
int64_t nsI(const TimestampI *t)
Definition: timeutils.c:44