mirror of
https://github.com/espressif/openthread.git
synced 2026-07-06 04:10:22 +00:00
4c44ff1edb
This commit introduces dedicated type definitions `otRadioTime64` (`RadioTime64`) and `otRadioTime32` (`RadioTime32`) to represent radio hardware microsecond timestamps. Key benefits and changes: - Self-Documenting Clock Domain: Transceiver hardware clocks operate in a distinct clock domain (`otPlatRadioGetNow()`) from core system timers (`TimerMilli::GetNow()`, `TimerMicro::GetNow()`). Using dedicated types prevents developers from accidentally passing core system time into radio scheduling APIs. - Explicit Rollover Handling: Introduced `IsRadioTimeStrictlyBefore()` to compare 32-bit radio timestamps using modulo serial arithmetic, cleanly accounting for `uint32_t` microsecond counter wrap-around. - Core Module Adoption: Updated `otRadioFrame::mTxInfo` / `mRxInfo`, `otPlatRadioGetNow()`, `otPlatRadioReceiveAt()`, `SubMac`, and `CslTxScheduler` to adopt the new radio time types.
OpenThread Simulation on POSIX
This directory contains example platform drivers for simulation on POSIX.
Build Examples
$ cd <path-to-openthread>
$ mkdir build && cd build
$ cmake -GNinja -DOT_PLATFORM=simulation ..
$ ninja
After a successful build, the elf files are found in:
<path-to-openthread>/build/examples/apps/cli<path-to-openthread>/build/examples/apps/ncp
Interact
- Spawn the process:
$ cd <path-to-openthread>/build/simulation/examples/apps/cli
$ ./ot-cli-ftd 1
- Type
helpfor list of commands.
> help
help
channel
childtimeout
contextreusedelay
extaddr
extpanid
ipaddr
keysequence
leaderweight
mode
netdata register
networkidtimeout
networkkey
networkname
panid
ping
prefix
releaserouterid
rloc16
route
routerupgradethreshold
scan
start
state
stop