42 Zeilen
1.4 KiB
C++
42 Zeilen
1.4 KiB
C++
/**
|
|
* @file cli.hpp
|
|
* @brief Interactive asynchronous Command Line Interface for FoxMesh
|
|
* @author OM Tom (OE3TKT)
|
|
*
|
|
* @license SPDX-License-Identifier: MIT
|
|
* @copyright Copyright (c) 2026 OM Tom (OE3TKT)
|
|
* For the full license terms, see the LICENSE file in the project root.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "i2c.hpp"
|
|
#include "led.hpp"
|
|
#include "display.hpp"
|
|
#include "lora.hpp"
|
|
|
|
/**
|
|
* @brief Store peripheral, display, and hardware tracking references for CLI access.
|
|
* @param bus_pointer Pointer to the active tracking system I2C master instance.
|
|
* @param led_pointer Pointer to the active tracking system status LED instance.
|
|
* @param display_pointer Pointer to the active tracking system OLED instance.
|
|
*/
|
|
void cli_init(i2c* bus_pointer, LedController* led_pointer, DisplayController* display_pointer);
|
|
|
|
/**
|
|
* @brief Connects the asynchronous LoRa subsystem reference context back onto the interface layer.
|
|
* @param lora_pointer Active LoRa transceiver module controller layer instance.
|
|
*/
|
|
void cli_init_lora(LoraController* lora_pointer);
|
|
|
|
/**
|
|
* @brief Registers the background tasks and setup routines for core runtime execution.
|
|
*/
|
|
void start_cli_task(void);
|
|
|
|
/**
|
|
* @brief Tokenizes and evaluates incoming control frames from the hardware terminal.
|
|
* @param cmd Null-terminated character string containing the raw user command execution layer.
|
|
*/
|
|
void process_command(const char* cmd);
|