3 * @author Shinichiro Nakamura
4 * @brief bluetankコマンドの実装。
12 * @brief コマンドテーブル定義構造体。
24 * @brief コマンド第1引数が合致する場合に呼び出す関数。
26 void (*function)(cmd_env_t *env, int argc, char **argv);
29 static void cmd_audio(cmd_env_t *env, int argc, char **argv);
30 static void cmd_system(cmd_env_t *env, int argc, char **argv);
31 static void cmd_help(cmd_env_t *env, int argc, char **argv);
36 static const cmdtbl_t cmdtbl[] = {
37 { "audio", "Audio commands.", cmd_audio },
38 { "system", "System commands.", cmd_system },
39 { "help", "Help commands.", cmd_help },
46 * ntshell_taskを使用するBSPは、cmd_executeの実装を提供する。
47 * VT100のシーケンスコード解釈や環境設定は上位で行われている。
49 * @param env コマンド環境構造体。
53 void cmd_execute(cmd_env_t *env, int argc, char **argv)
55 cmdtbl_t *p = (cmdtbl_t *)&cmdtbl[0];
56 while (p->command != 0) {
57 if (ntlibc_strcmp((const char *)argv[0], p->command) == 0) {
58 p->function(env, argc, argv);
63 ntstdio_printf(CMD_NTSTDIO(env), "help: display help.\n");
69 * @param env コマンド環境構造体。
73 static void cmd_audio(cmd_env_t *env, int argc, char **argv)
76 * [0]:audio, [1]:volume
79 if (ntlibc_strcmp(argv[1], "volume") == 0) {
80 static int volume = 0; /**< @todo remove this variable. */
83 // @todo Get current volume from the system.
84 ntstdio_printf(CMD_NTSTDIO(env), "%d\n", volume);
87 // @todo Set the given volume to the system.
88 volume = ntlibc_atoi(argv[2]);
89 ntstdio_printf(CMD_NTSTDIO(env), "%d\n", volume);
96 ntstdio_printf(CMD_NTSTDIO(env), "audio volume [value]\n");
100 * @brief systemコマンド関数。
102 * @param env コマンド環境構造体。
103 * @param argc パラメータ数。
106 static void cmd_system(cmd_env_t *env, int argc, char **argv)
109 * [0]:system, [1]:board
112 if (ntlibc_strcmp(argv[1], "board") == 0) {
115 ntstdio_printf(CMD_NTSTDIO(env), "BlueTank\n");
122 * [0]:system, [1]:version
124 if (ntlibc_strcmp(argv[1], "version") == 0) {
127 ntstdio_printf(CMD_NTSTDIO(env), "0.0.1\n");
134 ntstdio_printf(CMD_NTSTDIO(env), "system board\n");
135 ntstdio_printf(CMD_NTSTDIO(env), "system version\n");
141 * @param env コマンド環境構造体。
142 * @param argc パラメータ数。
145 static void cmd_help(cmd_env_t *env, int argc, char **argv)
147 cmdtbl_t *p = (cmdtbl_t *)&cmdtbl[0];
148 while (p->command != 0) {
149 ntstdio_printf(CMD_NTSTDIO(env), "%s\t%s\n", p->command, p->description);