blob: 7f253fec15772cd99790ec4abbdd1e7eaccc8ad7 [file] [log] [blame]
/*
* Copyright (c) 2015 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr.h>
#include <misc/printk.h>
#include <shell/shell.h>
#include <shell/shell_uart.h>
#include <version.h>
#include <logging/log.h>
#include <stdlib.h>
LOG_MODULE_REGISTER(app);
extern void foo(void);
void timer_expired_handler(struct k_timer *timer)
{
LOG_INF("Timer expired.");
/* Call another module to present logging from multiple sources. */
foo();
}
K_TIMER_DEFINE(log_timer, timer_expired_handler, NULL);
static int cmd_log_test_start(const struct shell *shell, size_t argc,
char **argv, u32_t period)
{
ARG_UNUSED(argv);
k_timer_start(&log_timer, period, period);
shell_print(shell, "Log test started\n");
return 0;
}
static int cmd_log_test_start_demo(const struct shell *shell, size_t argc,
char **argv)
{
return cmd_log_test_start(shell, argc, argv, 200);
}
static int cmd_log_test_start_flood(const struct shell *shell, size_t argc,
char **argv)
{
return cmd_log_test_start(shell, argc, argv, 10);
}
static int cmd_log_test_stop(const struct shell *shell, size_t argc,
char **argv)
{
ARG_UNUSED(argc);
ARG_UNUSED(argv);
k_timer_stop(&log_timer);
shell_print(shell, "Log test stopped");
return 0;
}
SHELL_STATIC_SUBCMD_SET_CREATE(sub_log_test_start,
SHELL_CMD_ARG(demo, NULL,
"Start log timer which generates log message every 200ms.",
cmd_log_test_start_demo, 1, 0),
SHELL_CMD_ARG(flood, NULL,
"Start log timer which generates log message every 10ms.",
cmd_log_test_start_flood, 1, 0),
SHELL_SUBCMD_SET_END /* Array terminated. */
);
SHELL_STATIC_SUBCMD_SET_CREATE(sub_log_test,
SHELL_CMD_ARG(start, &sub_log_test_start, "Start log test", NULL, 2, 0),
SHELL_CMD_ARG(stop, NULL, "Stop log test.", cmd_log_test_stop, 1, 0),
SHELL_SUBCMD_SET_END /* Array terminated. */
);
SHELL_CMD_REGISTER(log_test, &sub_log_test, "Log test", NULL);
static int cmd_demo_ping(const struct shell *shell, size_t argc, char **argv)
{
ARG_UNUSED(argc);
ARG_UNUSED(argv);
shell_print(shell, "pong");
return 0;
}
static int cmd_demo_params(const struct shell *shell, size_t argc, char **argv)
{
shell_print(shell, "argc = %d", argc);
for (size_t cnt = 0; cnt < argc; cnt++) {
shell_print(shell, " argv[%d] = %s", cnt, argv[cnt]);
}
return 0;
}
static int cmd_version(const struct shell *shell, size_t argc, char **argv)
{
ARG_UNUSED(argc);
ARG_UNUSED(argv);
shell_print(shell, "Zephyr version %s", KERNEL_VERSION_STRING);
return 0;
}
SHELL_STATIC_SUBCMD_SET_CREATE(sub_demo,
SHELL_CMD(params, NULL, "Print params command.", cmd_demo_params),
SHELL_CMD(ping, NULL, "Ping command.", cmd_demo_ping),
SHELL_SUBCMD_SET_END /* Array terminated. */
);
SHELL_CMD_REGISTER(demo, &sub_demo, "Demo commands", NULL);
SHELL_CMD_ARG_REGISTER(version, NULL, "Show kernel version", cmd_version, 1, 0);
void main(void)
{
}