Contiki 3.0: 自定义添加Shell指令
来源:互联网 发布:内网端口映射软件 编辑:程序博客网 时间:2024/05/17 00:11
Shell是contiki系统所提供的一个十分方便的指令处理系统,通过shell可以做到各方面的操作控制与信息汲取,并且contiki支持自定义添加shell指令。
这里以添加一个login指令来演示如何添加一条自定义指令,先从最简单的传单个参数开始,指令设计暂定为
login :输入密码,如果匹配则完成登录否则提示失败。
0.建立两个文件分别为login-ban.h和login-ban.c
1.头文件
先写login-ban.c,这里主要包含有contiki系统定义头文件,我们自己创建的头文件,c语言标准库头文件和字符串处理头文件,shell指令库头文件
#include "contiki.h"
#include "login-ban.h"
#include
#include
#include "shell.h"
2.进程和指令的声明
PROCESS(shell_login_process, "loginprocess");
这一条函数注册我们执行指令的线程,当执行shell指令时候会启动
SHELL_COMMAND(login_command,
"login",
"login :login current system",
&shell_login_process);
SHELL_COMMAND是我们所设计指令的结构,参数分别为shell指令的存储名称,shell指令的呼叫名称,shell指令的解释,shell指令执行进程(起始地址)。shell指令解释会在helplist中打印出来。
3.指令的注册
void shell_login_init(void)
{
shell_register_command(&login_command);
}
这一个函数会注册刚才设置的指令到contiki系统中,使其能在命令提示下被呼叫
4.login线程
PROCESS_THREAD(shell_login_process, ev, data)
{
char *name;
intfd;
char*default_password="user";
PROCESS_BEGIN();
name =data;
if(name==NULL)//判断传入的数据是否为空,如果是就显示指令的说明
{
shell_output_str(&login_command,
"login :login current system","");
PROCESS_EXIT();
}
if(strcmp(name,default_password)==0)//利用strcmp函数来比较自定义密码和传入的密码是否一致
{
shell_output_str(&login_command,
"Loginsucceed", "");
}
else
{
shell_output_str(&login_command,
"ERROR:Loginfailed", "");
}
PROCESS_END();
}
这里有一个函数shell_output_str主要是调用shell指令进程进行输出,本身shell指令是一个进程,如果用printf则仅仅是串口输出,在远端登录shell时候是无法看到的。
5.头文件与调用
login-pan.h头文件中只有一个函数的声明
void shell_login_init(void);
完成这些后,在我们的主函数中执行shell_login_init就可以了。
编译要记得Makefile文件中加上
PROJECT_SOURCEFILES+=login-pan.c
这里以添加一个login指令来演示如何添加一条自定义指令,先从最简单的传单个参数开始,指令设计暂定为
login :输入密码,如果匹配则完成登录否则提示失败。
0.建立两个文件分别为login-ban.h和login-ban.c
1.头文件
先写login-ban.c,这里主要包含有contiki系统定义头文件,我们自己创建的头文件,c语言标准库头文件和字符串处理头文件,shell指令库头文件
#include "contiki.h"
#include "login-ban.h"
#include
#include
#include "shell.h"
2.进程和指令的声明
PROCESS(shell_login_process, "loginprocess");
这一条函数注册我们执行指令的线程,当执行shell指令时候会启动
SHELL_COMMAND(login_command,
SHELL_COMMAND是我们所设计指令的结构,参数分别为shell指令的存储名称,shell指令的呼叫名称,shell指令的解释,shell指令执行进程(起始地址)。shell指令解释会在helplist中打印出来。
3.指令的注册
void shell_login_init(void)
{
}
这一个函数会注册刚才设置的指令到contiki系统中,使其能在命令提示下被呼叫
4.login线程
PROCESS_THREAD(shell_login_process, ev, data)
{
char *name;
}
这里有一个函数shell_output_str主要是调用shell指令进程进行输出,本身shell指令是一个进程,如果用printf则仅仅是串口输出,在远端登录shell时候是无法看到的。
5.头文件与调用
login-pan.h头文件中只有一个函数的声明
void shell_login_init(void);
完成这些后,在我们的主函数中执行shell_login_init就可以了。
编译要记得Makefile文件中加上
PROJECT_SOURCEFILES+=login-pan.c
0 0
- Contiki 3.0: 自定义添加Shell指令
- Contiki 3.0:Shell指令表
- Linux Shell自定义快捷指令
- Contiki 3.0: GPIO操作
- Contiki 3.0:ETimer与多线程
- shell - if []
- Contiki 3.0:开发环境下编辑器与串…
- Contiki 3.0:板载按钮与传感事件
- iOS 添加自定义字体方法详解
- adb shell input 命令
- shell command language
- seq shell 用法
- Linux Shell 简介
- Linux指令: which locate find df
- rails 自定义 Action
- jsp指令 详解
- adb shell 命令详解 ZZ
- SCP 指令 远程复制
- unity3d 5.3.3快速配置安卓环境
- cc2538在contiki系统的串口数据输…
- Java基础知识-IO流3
- Solidworks2016 SP4 下载
- js中的面向对象入门
- Contiki 3.0: 自定义添加Shell指令
- mysql存储引擎innodb和myisam选择
- net访问共享文件
- Contiki 3.0:Shell指令表
- 关于集群与分布式及正向代理与反向代理的初步总结
- 解决TI cc2538串口无法烧写,bootloader出错
- 资源隔离-cgroup
- Picoc在Ubuntu下的编译与运行测试
- VS2015中一元负运算符应用于无符号…