固件 0.1.14~0.1.16-c5:Hub 按需启停(hubctl)、开机长按统一 5 s
Co-Authored-By: Claude Opus 5.5 <[email protected]>
这个提交包含在:
@@ -5,6 +5,8 @@
|
||||
|
||||
#include "cmd_priv.h"
|
||||
#include "evlog.h"
|
||||
#include "hal_time.h"
|
||||
#include "hubctl.h"
|
||||
|
||||
/* ---- 名字表(线上用的,全 ASCII) ---------------------------------------- */
|
||||
|
||||
@@ -14,6 +16,7 @@ static const char *const k_names[CMD_COUNT] = {
|
||||
[CMD_VBUS] = "vbus", [CMD_FAN] = "fan", [CMD_EVENTS] = "events",
|
||||
[CMD_POWER] = "power", [CMD_WIFI] = "wifi", [CMD_MQTT] = "mqtt",
|
||||
[CMD_NET] = "net", [CMD_OTA] = "ota", [CMD_FLASH_MODE] = "flash_mode",
|
||||
[CMD_HUB] = "hub",
|
||||
};
|
||||
|
||||
static const char *const k_errs[CMD_ERR_COUNT] = {
|
||||
@@ -106,6 +109,7 @@ static const handler_t k_handlers[CMD_COUNT] = {
|
||||
[CMD_VBUS] = do_vbus, [CMD_FAN] = do_fan, [CMD_EVENTS] = do_events,
|
||||
[CMD_POWER] = do_power, [CMD_WIFI] = do_wifi, [CMD_MQTT] = do_mqtt,
|
||||
[CMD_NET] = do_net, [CMD_OTA] = do_ota, [CMD_FLASH_MODE] = do_flash_mode,
|
||||
[CMD_HUB] = do_hub,
|
||||
};
|
||||
|
||||
static cmd_id_t lookup(const char *name)
|
||||
@@ -154,6 +158,9 @@ static size_t reply(char *out, size_t len, bool has_seq, uint32_t seq, cmd_err_t
|
||||
size_t cmd_handle_line(cmd_link_t link, const char *line, char *out, size_t out_len)
|
||||
{
|
||||
s_stats.lines++;
|
||||
if (link == CMD_LINK_USB) {
|
||||
hubctl_touch(hal_time_now_ms()); /* 解析得过得不过都算:有人正对着 USB 敲 */
|
||||
}
|
||||
|
||||
/* 两块大缓冲放静态区:处理器只在执行器任务里跑(cmd.h),不可重入,
|
||||
而 1.5 KB 放在那个任务的栈上就是把栈顶到头。 */
|
||||
|
||||
在新工单中引用
屏蔽一个用户