From 881d6a82d4e10b570deb9250a17834a0349d476a Mon Sep 17 00:00:00 2001 From: wuyangyong Date: Wed, 10 Feb 2010 06:31:27 +0000 Subject: [PATCH] git-svn-id: https://rt-thread.googlecode.com/svn/trunk@399 bbd45198-f89e-11dd-88c7-29a3b14d5316 --- bsp/stm32_radio/remote.c | 148 +++++++++++++++++++++------------------ 1 file changed, 80 insertions(+), 68 deletions(-) diff --git a/bsp/stm32_radio/remote.c b/bsp/stm32_radio/remote.c index a08c007cd3..fae3062ab7 100644 --- a/bsp/stm32_radio/remote.c +++ b/bsp/stm32_radio/remote.c @@ -6,6 +6,7 @@ | Chang Logs: | Date Author Notes | 2010-01-02 aozima The bate version. +| 2010-02-10 aozima change printf string 中文 to english. +---------------------------------------------------- */ @@ -13,6 +14,8 @@ #include #include +/* 重定义printf */ +#define printf rt_kprintf /* 设置允许偏差,单位0.01ms */ #define remote_deviation 15 #define remote_code_len_max 100 @@ -138,82 +141,91 @@ void rem_start(void) TIM5_Configuration(); p_rem_code_src = rt_malloc( sizeof(struct rem_codes_typedef)*6 ); - rt_memset(p_rem_code_src,0, sizeof(struct rem_codes_typedef)*6 ); - - /* 解读红外信息 */ + if( p_rem_code_src != RT_NULL) { - int fd,size; - char buf[7];/* 文件读取临时缓存 #####\r\n */ - unsigned int i; - unsigned short tmp; - unsigned int read_index = 0; - unsigned int EOF_flag = 1; + rt_memset(p_rem_code_src,0, sizeof(struct rem_codes_typedef)*6 ); - rt_kprintf("\r\n解读红外信息"); - fd = open("/resource/remote.txt",O_RDONLY,0); - if( fd>0 ) + /* 解读红外信息 */ { - rt_kprintf("\r/resource/remote.txt打开成功"); - while( EOF_flag ) + int fd,size; + char buf[7];/* 文件读取临时缓存 #####\r\n */ + unsigned int i; + unsigned short tmp; + unsigned int read_index = 0; + unsigned int EOF_flag = 1; + + printf("\r\ndecode remote codes"); + fd = open("/resource/remote.txt",O_RDONLY,0); + if( fd>0 ) { - /* 读取长度 */ - size = read(fd,buf,7); - if( (size == 7) && (buf[5]=='\r') && buf[6]=='\n' ) + printf("\r/resource/remote.txt open succeed"); + while( EOF_flag ) { - /* 转换得到样本数据长度 */ - tmp = (buf[0]-'0')*10000 - + (buf[1]-'0')*1000 - + (buf[2]-'0')*100 - + (buf[3]-'0')*10 - + (buf[4]-'0'); - if( tmp<100 ) + /* 读取长度 */ + size = read(fd,buf,7); + if( (size == 7) && (buf[5]=='\r') && buf[6]=='\n' ) { - unsigned int code_len = tmp; - p_rem_code_src[read_index].len = code_len; - /* 如果样本长度符合 就开始从文件读取编码数据 */ - for(i=0; i 0 && p_rem_code_src[0].len < remote_code_len_max ) + { + /* 设置工作模式为正常识别模式 */ + rem_mode = 2; + printf("\r\ndecode succeed,The remote enable\r\n"); } else { - EOF_flag = 0; + /* 设置工作模式为正常识别模式 */ + rem_mode = 0; + printf("\r\nrem_codes decode fail,The remote disable\r\n"); } - }//while( EOF_flag ) - - /* 判断是否正确解读编码数据文件 */ - if ( p_rem_code_src[0].len > 0 && p_rem_code_src[0].len < remote_code_len_max ) - { - /* 设置工作模式为正常识别模式 */ - rem_mode = 2; - rt_kprintf("\r红外遥控编码文件解读完成,已打开红外遥控功能\r\n"); } else { - /* 设置工作模式为正常识别模式 */ - rem_mode = 0; - rt_kprintf("\r\n红外遥控编码文件解读失败,已关闭红外遥控功能\r\n"); + printf("\rrem_codes /resource/remote.txt open fail! fd:%d\r\nThe remote disbale.\r\nplease run rem_study()\r\n",fd); } - } - else - { - rt_kprintf("\r红外遥控编码文件 /resource/remote.txt 打开失败! fd:%d\r\n无法开启红外遥控功能.\r\n请执行rem_study()进行自动学习\r\n",fd); - } - close(fd); - }/* 解读红外信息 */ + close(fd); + }/* 解读红外信息 */ + + } + else + { + rem_mode = 0; + printf("\r\nmalloc rem_codes[] fail!!!\r\nThe remote disable!"); + } } #include @@ -238,7 +250,7 @@ void rem_encoder(struct rtgui_event_kbd * p) while( rem_cmp_n ) { unsigned int tmp2 = p_rem_code_src[ 6-rem_cmp_n ].len; - //rt_kprintf("\r\nrem_cmp_n:%d tmp2:%d",rem_cmp_n,tmp2); + //printf("\r\nrem_cmp_n:%d tmp2:%d",rem_cmp_n,tmp2); if( tmp2 ) { @@ -255,13 +267,13 @@ void rem_encoder(struct rtgui_event_kbd * p) else { err_flag = 1; - rt_kprintf("\r\n解码失败"); + printf("\r\nThe rem codes len is 0."); } if( err_flag==0 ) { /* 对比全部数据符合 */ - rt_kprintf("\r\n识别到遥控按键 %s",desc_key[6-rem_cmp_n]); + printf("\r\nmatch key: %s",desc_key[6-rem_cmp_n]); switch( rem_cmp_n ) { case 6: @@ -390,15 +402,15 @@ int rem_study(void) rem_mode = 1; rx_count = 0; - rt_kprintf("\r\n红外遥控自学习功能启动"); + printf("\r\nremote studing....."); fd = open("/resource/remote.txt",O_WRONLY | O_TRUNC,0); if( !(fd<0) ) { - rt_kprintf("\r\n红外遥控编码文件 /resource/remote.txt 创建成功"); + printf("\r\n/resource/remote.txt create succeed."); } else { - rt_kprintf("\r红外遥控编码文件 /resource/remote.txt 创建失败.\r\n学习程序中止."); + printf("\r/resource/remote.txt create fail.\r\nabort."); return -1; } @@ -406,7 +418,7 @@ int rem_study(void) for( i=0; i<6; i++) { unsigned int is_ok = 1; - rt_kprintf("\r\npress key %s",desc_key[i]); + printf("\r\npress key %s",desc_key[i]); while( is_ok==1 ) { if( (rem_mode==1) && (rt_tick_get()>first_tick+10) && (rx_count > 0) ) @@ -414,7 +426,7 @@ int rem_study(void) unsigned int a,b; unsigned char * p = tmp_buf; - rt_kprintf("\r\n%s",desc_key[i]); + printf("\r\n%s",desc_key[i]); b = rx_count; p_rem_code_src[i].len = rx_count; @@ -463,7 +475,7 @@ int rem_study(void) size = write(fd,(char*)tmp_buf,(b+1)*7 ); if( size==((b+1)*7) ) { - rt_kprintf("文件写入成功"); + printf(" file write succeed!"); is_ok++; rt_thread_delay( 2 ); @@ -478,7 +490,7 @@ int rem_study(void) } else { - rt_kprintf("文件写入失败\r\n红外学习程序退出"); + printf(" file write fail.\r\nabort."); return -1; } } @@ -486,7 +498,7 @@ int rem_study(void) }//while( is_ok==1 ) }//for( i=0; i<6; i++) close(fd); - rt_kprintf("\r\n学习完成,现在进入正常识别模式\r\n"); + printf("\r\nremote study complete.The remote enable.\r\n"); rem_mode = 2; return 0; }