Contiki-NG
Toggle main menu visibility
Loading...
Searching...
No Matches
tsch-adaptive-timesync.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2015, SICS Swedish ICT.
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* 3. Neither the name of the Institute nor the names of its contributors
14
* may be used to endorse or promote products derived from this software
15
* without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
18
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
21
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
* SUCH DAMAGE.
28
*
29
* This file is part of the Contiki operating system.
30
*
31
*/
32
33
/**
34
* \addtogroup tsch
35
* @{
36
* \file
37
* TSCH adaptive time synchronization
38
*/
39
40
#ifndef TSCH_ADAPTIVE_TIMESYNC_H_
41
#define TSCH_ADAPTIVE_TIMESYNC_H_
42
43
/********** Includes **********/
44
45
#include "contiki.h"
46
47
/********** Functions *********/
48
49
/**
50
* \brief Updates timesync information for a given neighbor
51
* \param n The neighbor
52
* \param time_delta_asn ASN time delta since last synchronization, i.e. number of slots elapsed
53
* \param drift_correction The measured drift in ticks since last synchronization
54
*/
55
void
tsch_timesync_update
(
struct
tsch_neighbor
*n, uint16_t time_delta_asn, int32_t drift_correction);
56
57
/**
58
* \brief Computes time compensation for a given point in the future
59
* \param delta_ticks The number of ticks in the future we want to calculate compensation for
60
* \return The time compensation
61
*/
62
int32_t
tsch_timesync_adaptive_compensate
(rtimer_clock_t delta_ticks);
63
64
/**
65
* \brief Gives the estimated clock drift w.r.t. the time source in PPM (parts per million)
66
* \return The time drift in PPM
67
*/
68
long
int
tsch_adaptive_timesync_get_drift_ppm
(
void
);
69
70
/**
71
* \brief Reset the status of the module
72
*/
73
void
tsch_adaptive_timesync_reset
(
void
);
74
75
76
#endif
/* TSCH_ADAPTIVE_TIMESYNC_H_ */
77
/** @} */
tsch_adaptive_timesync_reset
void tsch_adaptive_timesync_reset(void)
Reset the status of the module.
Definition
tsch-adaptive-timesync.c:218
tsch_timesync_adaptive_compensate
int32_t tsch_timesync_adaptive_compensate(rtimer_clock_t delta_ticks)
Computes time compensation for a given point in the future.
Definition
tsch-adaptive-timesync.c:213
tsch_adaptive_timesync_get_drift_ppm
long int tsch_adaptive_timesync_get_drift_ppm(void)
Gives the estimated clock drift w.r.t.
Definition
tsch-adaptive-timesync.c:223
tsch_timesync_update
void tsch_timesync_update(struct tsch_neighbor *n, uint16_t time_delta_asn, int32_t drift_correction)
Updates timesync information for a given neighbor.
Definition
tsch-adaptive-timesync.c:208
tsch_neighbor
TSCH neighbor information.
Definition
tsch-types.h:109
os
net
mac
tsch
tsch-adaptive-timesync.h
Generated on
for Contiki-NG by
1.17.0