d0f5a1879f8c001d1e48ebb9b9e41815

来自「在开发FPGA上比较有用」· 代码 · 共 248 行

TXT
248
字号
#include <stdio.h>
#include <string.h>
#include <alt_types.h>
#include <io.h>
#include <system.h>

int jieshou()
{
    char msg,prompt = '0',str[50]="\0";
    FILE *fp_scdt;
    char ls[3]={"ss"}, Aa[3]={"Aa"},Ab[3]={"Ab"},Ac[3]={"Ac"},Ad[3]={"Ad"},Wh[3]={"Wh"},Br[3]={"Br"},Pc[3]={"Pc"};
    int i=0,flag=0;
//     打开串口设备文件
    fp_scdt=fopen("/dev/scdt_uart","r+");
  printf("hi");
    if(fp_scdt)
    {
        
        while(prompt !='~')
        {
            prompt = getc(fp_scdt); // 从数传电台UART取一个字符
//          putchar(prompt);
            msg=prompt;
            if(msg=='$')
            {
                flag=1;
            }
            if(flag==1)
            {
                str[i]=msg; // 将数据存到数组中
                i++;
            }
        }  
        fclose(fp_scdt);
    } 
    i=0;
    while(str[i]!='~')
    { 
        printf("%c",str[i]);
        i++;
    }
    if((str[0]=='$')&&(str[1]=='C')&&(str[2]=='T')&&(str[3]=='M')&&(str[4]=='S')&&(str[5]=='D'))//判断识别符
    {
        switch(str[6])
        {
        case '}':printf("东");//aic23_play();  
            break;
        case '^':printf("南");//aic23_play();  
            break;
        case '{':printf("西");//aic23_play();  
            break;
        case '!':printf("北");//aic23_play();  
            break;
        case '0':printf("直走");aic23_play(1001);  
            break;
        default:printf("错误");//aic23_play();  
            break;
        }
        switch(str[7])
        {
        case '#':printf("改变模式");//aic23_play();  
            break;
        case '0':printf("不改变模式");//aic23_play();  
            break;
        default:printf("错误");//aic23_play();  
            break;
        }
        i=8;
        while (str[i]!='~')
        {
            switch(str[i])
            {
            case '&':
                i++;
                ls[0]=str[i];
                ls[1]=str[i+1];
                if ((strcmp( ls, Aa))==0)
                {
                    printf("1路");//aic23_play();  aic23_play();
                } 
                else if((strcmp(ls,Ab))==0)
                {
                    printf("2路");//aic23_play();  aic23_play();
                }
                else if((strcmp(ls,Ac))==0)
                {
                    printf("3路");//aic23_play();  aic23_play();
                }
                else if((strcmp(ls,Ad))==0)
                {
                    printf("4路");//aic23_play();  aic23_play();
                }
                else if(strcmp(ls,Br)==0)
                {
                    printf("45路");//aic23_play();  aic23_play();
                }
                else if(strcmp(ls,Pc)==0)
                {
                    printf("408路");//aic23_play();  aic23_play();
                }
                else 
                {
                    printf("错误");//aic23_play();  
                }
                i=i+2;
                break;
            case '%':
                {
                    i++;
                    switch(str[i])
                    {
                    case '|':printf("沙坡村"); //aic23_play();  
                        break;
                    case '(':printf("沙坡");  //aic23_play();  
                        break;
                    case ')':printf("交大电脑城");//aic23_play(2006);  
                        break;
                    case '*':printf("交大商场");//aic23_play(2007);  
                        break;
                    case '+':printf("兴庆公园");//aic23_play();  
                        break;
                    case '_':printf("南郭门");//aic23_play(2010);  
                        break;
                    case '.':printf("东南城角");//aic23_play(2003);  
                        break;
                    case '/':printf("东门");//aic23_play(2002);  
                        break;
                    case '0':printf("大差市");//aic23_play(2001);  
                        break;
                    case '1':printf("端履门");//aic23_play(2004);  
                        break;
                    case '2':printf("钟楼");//aic23_play();  
                        break;
                    case '3':printf("武警医院");//aic23_play();  
                        break;
                    case '4':printf("铁一局医院");//aic23_play();  
                        break;
                    case '5':printf("赛格电脑城");//aic23_play(2013);  
                        break;
                    case '6':printf("鲁家村");//aic23_play(2009);  
                        break;
                    case '7':printf("李家村");//aic23_play(2008);  
                        break;
                    case '8':printf("和平门");//aic23_play(2005);  
                        break;
                    case '9':printf("太乙路");//aic23_play();  
                        break;
                    case ':':printf("瓦窑小区");//aic23_play();  
                        break;
                    case ';':printf("南稍门");//aic23_play(2012);  
                        break;
                    case '<':printf("南门");//aic23_play(2011);  
                        break;
                    case '=':printf("文艺路");//aic23_play();  
                        break;
                    default:printf("错误");//aic23_play();  
                        break;
                    }
                    i++;
                    break;
                }
                default:printf("错误");
                        break;
            }
        }
}
else if ((str[0]=='$')&&(str[1]=='C')&&(str[2]=='T')&&(str[3]=='S')&&(str[4]=='N')&&(str[5]=='D'))
{
    switch(str[6])
        {
        case '}':printf("东面");aic23_play();
            break;
        case '^':printf("南面");aic23_play();
            break;
        case '{':printf("西面");aic23_play();
            break;
        case '!':printf("北面");aic23_play();
            break;
        default:printf("错误");aic23_play();
            break;
        }
    i=7;    
    while (str[i]!='~')
        {
            switch(str[i])
            {
            case '%':
                {
                    i++;
                    switch(str[i])
                    {
                    case '|':printf("沙坡村");//aic23_play();  
                        break;
                    case '(':printf("沙坡");//aic23_play();  
                        break;
                    case ')':printf("交大电脑城");aic23_play(2006);  
                        break;
                    case '*':printf("交大商场");aic23_play(2007);  
                        break;
                    case '+':printf("兴庆公园");//aic23_play();  
                        break;
                    case '_':printf("南郭门");
                        break;
                    case '.':printf("东南城角");aic23_play(2003);  
                        break;
                    case '/':printf("东门");aic23_play(2002);  
                        break;
                    case '0':printf("大差市");aic23_play(2001);  
                        break;
                    case '1':printf("端履门");aic23_play(2004);  
                        break;
                    case '2':printf("钟楼");//aic23_play();  
                        break;
                    case '3':printf("武警医院");//aic23_play();  
                        break;
                    case '4':printf("铁一局医院");//aic23_play();  
                        break;
                    case '5':printf("赛格电脑城");aic23_play(2013);  
                        break;
                    case '6':printf("鲁家村");aic23_play(2009);  
                        break;
                    case '7':printf("李家村");aic23_play(2008);  
                        break;
                    case '8':printf("和平门");aic23_play(2005);  
                        break;
                    case '9':printf("太乙路");//aic23_play();  
                        break;
                    case ':':printf("瓦窑小区");//aic23_play();  
                        break;
                    case ';':printf("南稍门");aic23_play(2011);  
                        break;
                    case '<':printf("南门");//aic23_play();  
                        break;
                    case '=':printf("文艺路");//aic23_play();  
                        break;
                    default:printf("错误");//aic23_play();  
                        break;
                    }
                    i++;
                    break;
                }
                default:printf("错误");
                        break;
            }
        }
}
return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?