/** * @file fhss.h * @brief FHSS channel sequencer based on AES-128-ECB. * * Both link endpoints derive the same hopping sequence independently from a * shared 128-bit key and a monotonically increasing slot counter. No * synchronisation traffic is required as long as both sides start from the * same slot. */ #pragma once #include /** @brief Reset the slot counter to zero. */ void fhss_init(void); /** * @brief Return the next channel in the hopping sequence. * * Encrypts the current slot counter big-endian with AES-128-ECB, returns * @c block[0] % 40, and advances the slot counter. * * @return Channel index in [0, 39]. */ uint8_t fhss_next_channel(void); /** @brief Advance the slot counter without transmitting (receiver side). */ void fhss_sync_tick(void);