Add broker management and writer transfer UI

This commit is contained in:
2026-09-13 13:59:28 +02:00
parent 29a4953df0
commit fa12440606
26 changed files with 1037 additions and 48 deletions
+2
View File
@@ -31,6 +31,8 @@ typedef int *SemaphoreHandle_t;
#define pdMS_TO_TICKS(x) (x)
#define CONSOLE_COMPLETION_OUTPUT_CAPACITY 1024U
static unsigned lock_depth, ticks, runs, actions;
static uint32_t broker_settings_executed;
static void web_broker_settings_execute(uint32_t id) { assert(!lock_depth); broker_settings_executed = id; }
static uint32_t serial_settings_executed, account_settings_executed, network_settings_executed, display_settings_executed;
static void web_display_settings_execute(uint32_t id) { assert(!lock_depth); display_settings_executed = id; }
static void web_network_settings_execute(uint32_t id) { assert(!lock_depth); network_settings_executed = id; }
+15
View File
@@ -379,5 +379,20 @@ int main(void)
assert(serial_settings_executed == 41 && network_settings_executed == 42 && account_settings_executed == 43 && display_settings_executed == 44);
assert(runs == before_serial + 5 && s_request_queue->capacity == 4);
puts("PASS: typed Display IDs share all four unchanged queue slots; full/not-ready admission fails, routing never invokes command runner");
assert(admin_ssh_console_submit_broker_settings(0) == ESP_ERR_INVALID_STATE);
s_dispatch_ready = false;
assert(admin_ssh_console_submit_broker_settings(1) == ESP_ERR_INVALID_STATE);
s_dispatch_ready = true; queue_full = true;
assert(admin_ssh_console_submit_broker_settings(1) == ESP_ERR_TIMEOUT && queue_send_wait == 0);
queue_full = false;
assert(admin_ssh_console_submit_broker_settings(51) == ESP_OK);
assert(admin_ssh_console_submit_display_settings(52) == ESP_OK);
assert(admin_ssh_console_submit_network_settings(53) == ESP_OK);
assert(admin_ssh_console_submit_account_settings(54) == ESP_OK);
assert(admin_ssh_console_submit_broker_settings(55) == ESP_ERR_TIMEOUT);
pump(worker_task);
assert(broker_settings_executed == 51 && display_settings_executed == 52 && network_settings_executed == 53 && account_settings_executed == 54);
assert(runs == before_serial + 5 && s_request_queue->capacity == 4);
puts("PASS: Broker typed IDs, not-ready/full queue, routing and unchanged dispatcher capacity");
puts("PASS: admission/identity, two owners, completion contention/reopen, history, queued stale/revoked work, UART dispatch, hidden/disconnected prompts, exit-to-SELF_CLOSE, deferred rejection/drain/close, 5s output backpressure");
}