mirror of
https://github.com/liquidraver/ZephCore.git
synced 2026-09-13 17:55:38 +00:00
fixed apc text on screen
This commit is contained in:
@@ -141,6 +141,7 @@ K_TIMER_DEFINE(housekeeping_timer, housekeeping_timer_fn, NULL);
|
||||
/* Forward declarations */
|
||||
#ifdef ZEPHCORE_LORA
|
||||
static RepeaterMesh *repeater_mesh_ptr;
|
||||
static void refresh_repeater_ui_radio_state(bool redraw);
|
||||
#endif
|
||||
|
||||
/* Print string to USB serial */
|
||||
@@ -233,6 +234,7 @@ static void process_cli_commands(void)
|
||||
while (repeater_mesh_ptr && k_msgq_get(&cli_cmd_queue, &c, K_NO_WAIT) == 0) {
|
||||
cli_reply_buf[0] = '\0';
|
||||
repeater_mesh_ptr->handleCommand(0, c.buf, cli_reply_buf);
|
||||
refresh_repeater_ui_radio_state(true);
|
||||
if (cli_reply_buf[0] != '\0') {
|
||||
cli_print("\r\n -> ");
|
||||
cli_print(cli_reply_buf);
|
||||
@@ -358,6 +360,55 @@ static mesh::SimpleMeshTables mesh_tables;
|
||||
|
||||
/* RepeaterMesh requires: board, radio, ms_clock, rng, rtc, tables */
|
||||
static RepeaterMesh repeater_mesh(zephyr_board, lora_radio, ms_clock, zephyr_rng, rtc_clock, mesh_tables);
|
||||
|
||||
static void refresh_repeater_ui_radio_state(bool redraw)
|
||||
{
|
||||
if (!repeater_mesh_ptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
ui_set_radio_params(
|
||||
lora_radio.getActiveFrequencyHz(),
|
||||
lora_radio.getActiveSpreadingFactor(),
|
||||
lora_radio.getActiveBandwidthKHzX10(),
|
||||
lora_radio.getActiveCodingRate(),
|
||||
lora_radio.getConfiguredTxPower(),
|
||||
lora_radio.getNoiseFloor());
|
||||
|
||||
bool apc_enabled = false;
|
||||
int8_t apc_reduction = 0;
|
||||
int16_t apc_margin_x10 = 0;
|
||||
uint8_t apc_target = repeater_mesh_ptr->getNodePrefs()->apc_margin;
|
||||
|
||||
#ifdef CONFIG_ZEPHCORE_APC
|
||||
apc_enabled = repeater_mesh_ptr->isAPCEnabled();
|
||||
apc_reduction = repeater_mesh_ptr->getAPCReduction();
|
||||
apc_margin_x10 = (int16_t)(repeater_mesh_ptr->getAPCMargin() * 10.0f);
|
||||
apc_target = repeater_mesh_ptr->getAPCTargetMargin();
|
||||
#endif
|
||||
|
||||
ui_set_radio_runtime(
|
||||
lora_radio.getEffectiveTxPower(),
|
||||
apc_enabled,
|
||||
apc_reduction,
|
||||
apc_margin_x10,
|
||||
apc_target,
|
||||
lora_radio.getActiveSyncWord(),
|
||||
lora_radio.getActivePreambleLength(),
|
||||
lora_radio.isRxDutyCycleEnabled(),
|
||||
lora_radio.isRadioReady(),
|
||||
lora_radio.isInRecvMode(),
|
||||
lora_radio.isTxActive());
|
||||
|
||||
ui_set_radio_stats(
|
||||
lora_radio.getPacketsRecv(),
|
||||
lora_radio.getPacketsSent(),
|
||||
lora_radio.getPacketsRecvErrors());
|
||||
|
||||
if (redraw) {
|
||||
ui_refresh_display();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Repeater event loop */
|
||||
@@ -425,17 +476,9 @@ static void repeater_event_loop(void)
|
||||
ui_set_clock(rtc_clock.getCurrentTime());
|
||||
|
||||
#ifdef ZEPHCORE_LORA
|
||||
/* Refresh radio params (noise floor changes from calibration) */
|
||||
if (repeater_mesh_ptr) {
|
||||
NodePrefs *p = repeater_mesh_ptr->getNodePrefs();
|
||||
ui_set_radio_params(
|
||||
(uint32_t)(p->freq * 1000000.0f + 0.5f),
|
||||
p->sf,
|
||||
(uint16_t)(p->bw * 10.0f + 0.5f),
|
||||
p->cr,
|
||||
p->tx_power_dbm,
|
||||
lora_radio.getNoiseFloor());
|
||||
}
|
||||
/* Refresh live radio/APC state (noise floor, TX power
|
||||
* reduction, RX/TX mode, packet counters). */
|
||||
refresh_repeater_ui_radio_state(true);
|
||||
|
||||
/* Battery is now refreshed lazily from ui_pages_render() with
|
||||
* a 30 s freshness guard — no periodic ADC fire here. */
|
||||
@@ -588,13 +631,7 @@ int main(void)
|
||||
|
||||
/* Feed initial UI state from loaded prefs */
|
||||
ui_set_node_name(prefs->node_name);
|
||||
ui_set_radio_params(
|
||||
(uint32_t)(prefs->freq * 1000000.0f + 0.5f), /* MHz → Hz */
|
||||
prefs->sf,
|
||||
(uint16_t)(prefs->bw * 10.0f + 0.5f), /* kHz → 0.1 kHz */
|
||||
prefs->cr,
|
||||
prefs->tx_power_dbm,
|
||||
lora_radio.getNoiseFloor());
|
||||
refresh_repeater_ui_radio_state(false);
|
||||
ui_set_battery_provider(get_battery_mv);
|
||||
ui_set_battery(zephyr_board.getBattMilliVolts(), 0);
|
||||
ui_set_gps_available(gps_is_available());
|
||||
|
||||
Reference in New Issue
Block a user