C语言 - 程序交互,参照shell命令,命令交互

COMMAND_T cmd_led = {
	.command = "led",
	.function = func_led,
	.next = &cmd_beep
};

void func_led(void)
{
	char tab[12];
	unsigned char i = 0;
	char *p = buffer;
  
	while((*p != ' ')&&(*p != '\r'))p ++;
	if(*p == '\r')goto LOOP1;
	while(*(++p) == '-')i++;
	if( i != 2)goto LOOP1;
	i = 0;
	while(*p != '\r') 
	{
		if( i > 10)goto LOOP1;
		tab[i++] = *p++;
	}
	tab[i] = '\0';
	if(strcmp(tab,"on") == 0){
		led_flag = 3;
		goto LOOP;
	}
	if(strcmp(tab,"flash high") == 0){
		led_flag = 2;
		goto LOOP;
	}
	if(strcmp(tab,"flash low") == 0){
		led_flag = 1;
		goto LOOP;
	}
	if(strcmp(tab,"off") == 0){
		led_flag =0;
		goto LOOP;
	}
	goto LOOP1;
LOOP:	uart.printf("\r\n\033[1;35;40mLED is %s\r\n",tab);
		return;
LOOP1:	uart.printf("\r\n\033[1;31;40mBad command!\r\n");
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Steven&Aileen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值