pswarfound 发表于 2012-11-27 10:44:42

dsp/bios下telnet服务的命令行交互如何设计

请教各位,在嵌入式设备没有操作系统的情况下,是如何实现命令行交互的

我现在在dm648上移植了fatfs文件系统,并建立了telnet服务,
可以再windows的cmd命令提示符下进行一些交互操作,比如格式化sd卡,创建文件系统,创建文件夹等等
在cmd窗口每按一个键都将通过网络发送至前端设备,

我在telnet的服务中实现了简单的上下左右、退格等字符控制,收到0xd即回车后,对指令缓冲区中的指令解析
方法是以空格为间隔分割参数,然后对每个参数用strcmp比较判断要实现什么功能

例如删除sd卡的操作:
#sd erase all
或者#sd erase 0 1
指令解析的方式是:
if (!strcmp(param, "sd")) {
   if (!strcmp(param, "erase")) {
         if (!strcmp(param, "all")) {
            sd_erase_block(0, TOTAL_BLOCK_NUM);
         }else {
            sd_erase_block(atoi(param), atoi(param));
         }
   }
}

主要说明一下解析的流程,请忽略上面一些代码风格和参数检查的问题

我的问题是,感觉这种逐个比较的方式不是很好,参数一多会显得程序冗长
求教各位是如何实现类似的命令行交互的
如果我有没说清楚的地方,请指出
页: [1]
查看完整版本: dsp/bios下telnet服务的命令行交互如何设计