Open Blueknife-w opened 1 year ago
因为参数自动解析是根据输入进行猜测的,所以会出现这个问题
第一个情况,参数输入如果是数字,会按照数字去解析,如果要作为字符串处理,需要加双引号 set_machine_sn "12345678" 13
第二个情况,可以声明一个参数数量,这样子如果输入的参数不够,会以 0 值补充参数
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(1), scan_wifi, scan_wifi, scan wifi);
另外,shell3.1 分支刚刚增加了函数签名的新功能,可以完美解决这两种情况,但是这个功能刚刚加入,还没有合入 master, 如果感兴趣,可以使用这个分支使用新功能解决这两个问题
在使用letter shell的函数导出功能过程中,在以下两个情景遇到缺陷:
int set_machine_sn(char *sn_str, char check) { int len = 0;
} SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC), set_machine_sn, set_machine_sn, Set machine sn vale);
int scan_wifi(char *ssid) { int ret = 0;
} SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC), scan_wifi, scan_wifi, scan wifi);