// SPDX-License-Identifier: Apache-2.0 #pragma once #include #ifdef __cplusplus extern "C" { #endif /** * @brief Suspend or resume WifiService's periodic background auto-connect scan. * * Not a device operation - see tactility/drivers/wifi.h for the actual radio API. This exists * for narrow, short-lived windows where any WiFi/co-processor traffic would be unsafe (e.g. a * known co-processor reboot in progress during an OTA update) - callers must resume when done. * Independent of WifiService's own internal connect()/disconnect() pause bookkeeping: it is * never cleared implicitly by a connection succeeding/failing or the radio being enabled, only a * matching wifi_auto_scan_set_paused(false) clears it. * * The real implementation lives in the Tactility WiFi service * (Tactility/Source/service/wifi/Wifi.cpp), a layer above TactilityKernel - TactilityKernel * can't call up into it directly (and mustn't link against it: TactilityKernelTests links * TactilityKernel alone, without Tactility). Tactility registers its implementation at startup * via wifi_auto_scan_set_paused_function(); until then (or on a build that never links Tactility, e.g. a * bare-kernel target) this is a no-op, same as WifiApi::get_firmware_ops() returning * ERROR_NOT_SUPPORTED when nothing is registered. * * @param[in] paused when true, the auto-connect timer stops issuing scans until resumed */ void wifi_auto_scan_set_paused(bool paused); /** @brief Register the real implementation. Called once by the Tactility WiFi service. */ void wifi_auto_scan_set_paused_function(void (*set_paused)(bool paused)); #ifdef __cplusplus } #endif