Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
mbed-os/features/lorawan/system/LoRaWANTimer.h@0:8fdf9a60065b, 2018-10-10 (annotated)
- Committer:
- kadonotakashi
- Date:
- Wed Oct 10 00:33:53 2018 +0000
- Revision:
- 0:8fdf9a60065b
how to make mbed librry
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| kadonotakashi | 0:8fdf9a60065b | 1 | /** |
| kadonotakashi | 0:8fdf9a60065b | 2 | / _____) _ | | |
| kadonotakashi | 0:8fdf9a60065b | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ |
| kadonotakashi | 0:8fdf9a60065b | 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ |
| kadonotakashi | 0:8fdf9a60065b | 5 | _____) ) ____| | | || |_| ____( (___| | | | |
| kadonotakashi | 0:8fdf9a60065b | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| |
| kadonotakashi | 0:8fdf9a60065b | 7 | (C)2013 Semtech |
| kadonotakashi | 0:8fdf9a60065b | 8 | |
| kadonotakashi | 0:8fdf9a60065b | 9 | Description: Timer objects and scheduling management |
| kadonotakashi | 0:8fdf9a60065b | 10 | |
| kadonotakashi | 0:8fdf9a60065b | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project |
| kadonotakashi | 0:8fdf9a60065b | 12 | |
| kadonotakashi | 0:8fdf9a60065b | 13 | Maintainer: Miguel Luis and Gregory Cristian |
| kadonotakashi | 0:8fdf9a60065b | 14 | |
| kadonotakashi | 0:8fdf9a60065b | 15 | |
| kadonotakashi | 0:8fdf9a60065b | 16 | Copyright (c) 2017, Arm Limited and affiliates. |
| kadonotakashi | 0:8fdf9a60065b | 17 | |
| kadonotakashi | 0:8fdf9a60065b | 18 | SPDX-License-Identifier: BSD-3-Clause |
| kadonotakashi | 0:8fdf9a60065b | 19 | */ |
| kadonotakashi | 0:8fdf9a60065b | 20 | |
| kadonotakashi | 0:8fdf9a60065b | 21 | #ifndef MBED_LORAWAN_SYS_TIMER_H__ |
| kadonotakashi | 0:8fdf9a60065b | 22 | #define MBED_LORAWAN_SYS_TIMER_H__ |
| kadonotakashi | 0:8fdf9a60065b | 23 | |
| kadonotakashi | 0:8fdf9a60065b | 24 | #include <stdint.h> |
| kadonotakashi | 0:8fdf9a60065b | 25 | #include "events/EventQueue.h" |
| kadonotakashi | 0:8fdf9a60065b | 26 | |
| kadonotakashi | 0:8fdf9a60065b | 27 | #include "lorawan_data_structures.h" |
| kadonotakashi | 0:8fdf9a60065b | 28 | |
| kadonotakashi | 0:8fdf9a60065b | 29 | class LoRaWANTimeHandler |
| kadonotakashi | 0:8fdf9a60065b | 30 | { |
| kadonotakashi | 0:8fdf9a60065b | 31 | public: |
| kadonotakashi | 0:8fdf9a60065b | 32 | LoRaWANTimeHandler(); |
| kadonotakashi | 0:8fdf9a60065b | 33 | ~LoRaWANTimeHandler(); |
| kadonotakashi | 0:8fdf9a60065b | 34 | |
| kadonotakashi | 0:8fdf9a60065b | 35 | /** Activates the timer subsystem. |
| kadonotakashi | 0:8fdf9a60065b | 36 | * |
| kadonotakashi | 0:8fdf9a60065b | 37 | * Embeds EventQueue object to timer subsystem which is subsequently |
| kadonotakashi | 0:8fdf9a60065b | 38 | * used to extract timer information. |
| kadonotakashi | 0:8fdf9a60065b | 39 | * |
| kadonotakashi | 0:8fdf9a60065b | 40 | * @param [in] queue Handle to EventQueue object |
| kadonotakashi | 0:8fdf9a60065b | 41 | */ |
| kadonotakashi | 0:8fdf9a60065b | 42 | void activate_timer_subsystem(events::EventQueue *queue); |
| kadonotakashi | 0:8fdf9a60065b | 43 | |
| kadonotakashi | 0:8fdf9a60065b | 44 | /** Read the current time. |
| kadonotakashi | 0:8fdf9a60065b | 45 | * |
| kadonotakashi | 0:8fdf9a60065b | 46 | * @return time The current time. |
| kadonotakashi | 0:8fdf9a60065b | 47 | */ |
| kadonotakashi | 0:8fdf9a60065b | 48 | lorawan_time_t get_current_time(void); |
| kadonotakashi | 0:8fdf9a60065b | 49 | |
| kadonotakashi | 0:8fdf9a60065b | 50 | /** Return the time elapsed since a fixed moment in time. |
| kadonotakashi | 0:8fdf9a60065b | 51 | * |
| kadonotakashi | 0:8fdf9a60065b | 52 | * @param [in] saved_time The fixed moment in time. |
| kadonotakashi | 0:8fdf9a60065b | 53 | * @return time The elapsed time. |
| kadonotakashi | 0:8fdf9a60065b | 54 | */ |
| kadonotakashi | 0:8fdf9a60065b | 55 | lorawan_time_t get_elapsed_time(lorawan_time_t saved_time); |
| kadonotakashi | 0:8fdf9a60065b | 56 | |
| kadonotakashi | 0:8fdf9a60065b | 57 | /** Initializes the timer object. |
| kadonotakashi | 0:8fdf9a60065b | 58 | * |
| kadonotakashi | 0:8fdf9a60065b | 59 | * @remark The TimerSetValue function must be called before starting the timer. |
| kadonotakashi | 0:8fdf9a60065b | 60 | * This function initializes the time-stamp and reloads the value at 0. |
| kadonotakashi | 0:8fdf9a60065b | 61 | * |
| kadonotakashi | 0:8fdf9a60065b | 62 | * @param [in] obj The structure containing the timer object parameters. |
| kadonotakashi | 0:8fdf9a60065b | 63 | * @param [in] callback The function callback called at the end of the timeout. |
| kadonotakashi | 0:8fdf9a60065b | 64 | */ |
| kadonotakashi | 0:8fdf9a60065b | 65 | void init(timer_event_t &obj, mbed::Callback<void()> callback); |
| kadonotakashi | 0:8fdf9a60065b | 66 | |
| kadonotakashi | 0:8fdf9a60065b | 67 | /** Starts and adds the timer object to the list of timer events. |
| kadonotakashi | 0:8fdf9a60065b | 68 | * |
| kadonotakashi | 0:8fdf9a60065b | 69 | * @param [in] obj The structure containing the timer object parameters. |
| kadonotakashi | 0:8fdf9a60065b | 70 | * @param [in] timeout The new timeout value. |
| kadonotakashi | 0:8fdf9a60065b | 71 | */ |
| kadonotakashi | 0:8fdf9a60065b | 72 | void start(timer_event_t &obj, const uint32_t timeout); |
| kadonotakashi | 0:8fdf9a60065b | 73 | |
| kadonotakashi | 0:8fdf9a60065b | 74 | /** Stops and removes the timer object from the list of timer events. |
| kadonotakashi | 0:8fdf9a60065b | 75 | * |
| kadonotakashi | 0:8fdf9a60065b | 76 | * @param [in] obj The structure containing the timer object parameters. |
| kadonotakashi | 0:8fdf9a60065b | 77 | */ |
| kadonotakashi | 0:8fdf9a60065b | 78 | void stop(timer_event_t &obj); |
| kadonotakashi | 0:8fdf9a60065b | 79 | |
| kadonotakashi | 0:8fdf9a60065b | 80 | private: |
| kadonotakashi | 0:8fdf9a60065b | 81 | events::EventQueue *_queue; |
| kadonotakashi | 0:8fdf9a60065b | 82 | }; |
| kadonotakashi | 0:8fdf9a60065b | 83 | |
| kadonotakashi | 0:8fdf9a60065b | 84 | #endif // MBED_LORAWAN_SYS_TIMER_H__ |