您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么為AliOS Things應(yīng)用增加自定義cli命令”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么為AliOS Things應(yīng)用增加自定義cli命令”吧!
參數(shù)名稱
參數(shù)描述 | |
char *pwbuf | 當函數(shù)執(zhí)行完成返回時,通過控制臺打印出來的字符串指針??梢圆粋魅?。 |
int blen | 上述字符串長度 |
int argc | 命令調(diào)用時傳入的參數(shù)長度,沒有參數(shù)傳入時為1 |
char **argv | 傳入?yún)?shù)緩存,字符串。第一個有效參數(shù)的角標從1開始。 |
接下來填寫注冊用結(jié)構(gòu)體,以便將命令信息傳遞給cli服務(wù)。按照前所講的設(shè)計,注冊結(jié)構(gòu)體信息如下,將結(jié)構(gòu)體拷貝到blink.c文件中。
struct cli_command led_switch_command[] = { { .name = "led_switch", // 命令名稱 .help = "[on] turn on led2;[off] trun off led2",// 幫助文本 .function = led_switch // 命令具體執(zhí)行的函數(shù)指針 }};
將cli命令注冊到系統(tǒng)中。cli命令注冊只需要一個函數(shù)如下:
aos_cli_register_commands(&led_switch_command[0],1);
函數(shù)需要傳入兩個參數(shù),參數(shù)1為剛剛創(chuàng)建的命令信息體的結(jié)構(gòu)體指針;參數(shù)2,為本次需要注冊的命令數(shù),也就是說可以一次性注冊多個命令,只需要在命令信息結(jié)構(gòu)體中,用數(shù)組的方式同時填入幾個命令的信息即可。
將上述函數(shù)調(diào)用加入到blink.c文件application_start函數(shù)的如下位置:
aos_cli_register_commands(&led_switch_command[0],1); // 注冊cli命令函數(shù) aos_loop_run();
至此,一個cli命令的實現(xiàn)和注冊的代碼編寫部分就完成了。編譯并下載至開發(fā)板中運行。在cli控制臺輸入help,看到led_switch命令已注冊成功。
# help====Build-in Commands========Support 4 cmds once, seperate by ; ====help : print this p : print memorym : modify memoryecho : echo for commandexit : close CLI devname : print device name sysver : system versionreboot : reboot systemtime : system timeota : system ota====User Commands====loglevel : set log level tasklist : list all thread info dumpsys : dump system info udp : [ip] [port] [string data] send udp data wifi_debug: wifi debug mode mac : get/set mac kv : kv [set key value | get key | del key | list]version : show version led_switch: [on] turn on led2;[off] trun off led2
測試命令是否執(zhí)行,在命令提示符下輸入如下命令,并回車:
#led_switch on
led2點亮
測試參數(shù)有效性判斷,輸入如下指令,不帶參數(shù)。命令按設(shè)計返回錯誤報警。
## led_switch[1291080]<V> 參數(shù)錯誤
感謝各位的閱讀,以上就是“怎么為AliOS Things應(yīng)用增加自定義cli命令”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對怎么為AliOS Things應(yīng)用增加自定義cli命令這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。