亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? navigator.c

?? 在開發(fā)FPGA上比較有用
?? C
字號:
/**************************************************************
 *  模塊名稱:智能型盲人導(dǎo)航儀
 *  說明:包含智能導(dǎo)航儀的各個(gè)模塊
 * 
 *  備注:由NAVIGATOR 團(tuán)隊(duì)制作
 *  安江  曹漢超  盧茜茜  馮金龍  王耀文  常玉祥  田景  郭瑞 
**************************************************************/
#include <stdio.h>
#include <io.h>
#include <system.h>
#include <alt_types.h>
#include <string.h>
#include <stdlib.h>
#define PS2_TIMEOVER  100000
#define PS2_STATUS 0x02
#define PS2_DATA  0x03
#define PS2_NOACK 0x0001
#define PS2_TX_WRITE_ACK 0x0002
#define PS2_RX_DATA_READY 0x04
#define PS2_SHIFT_KEY_ON 0x08
#define PS2_RX_RELEASED 0x10
#define PS2_RX_EXTENDED 0x20
#include <sd_controller.h>
#define DATA_BUFF_SIZE 16384
extern sd_card_info_struct* sd_card_global;

struct gps
{ 
  char    mark[12];
  char    time[10];
  char    value;
  char    dim[16];
  char    dim_name;
  char    lon[15];
  char    lon_name;
  char    ddmmyy[6];     
};

void *gPS2Base;

int wait_rx_ready(int count,alt_u16 *pStatus)
{
  int iRet;
  alt_u16 status,data;
  int i;
  
  if(count==0)
  {
    do{
      status=IORD(gPS2Base,PS2_STATUS);  
    }while(!(status & PS2_RX_DATA_READY)); 
    *pStatus=status; 
    return 0;
  }else
  {
    for(i=0;i<count;i++)
    {  
      status=IORD(gPS2Base,PS2_STATUS);
      if(status & PS2_RX_DATA_READY)
      {
        *pStatus=status;
        return 0;
      }
    }
    return -1;
   }
   return -1;
 } 

int read_scan_code(alt_u8 *scan_code)
{
  int iRet,i;
  alt_u16 status,data;
    
  if(wait_rx_ready(0,&status)<0)
    return -1;
  data=IORD(gPS2Base,PS2_DATA);
  *scan_code = (data & 0xff00)>>8;
  
  return 0;
   
 } 
 
int read_ascii(alt_u8 *code)
{
  int iRet;
  alt_u16 status,data;
  
  // 讀鍵盤斷碼
  while(1)
  {  
    if(wait_rx_ready(0,&status)<0)
      return -1;
    if((status & PS2_RX_RELEASED))
      break;
    // 讀通碼
    data=IORD(gPS2Base,PS2_DATA);
  }
  
  // 讀斷碼數(shù)據(jù)
  data=IORD(gPS2Base,PS2_DATA);
  *code = data & 0x00ff;
 
  return 0;
 } 
int init_ps2(void *base_addr)
{
  int iRet;
  unsigned char i;
  alt_u16 status,data;
  alt_u8 key;
  
  gPS2Base=base_addr;
  
  IOWR(FREEDEV_PS2_INST_BASE,PS2_DATA,0xFF);
  
 // printf("reset keyboard......\n");
  while(1)
  {
    iRet=read_scan_code(&key);
    if(iRet<0)
    {
      printf("讀取鍵盤自測試字節(jié)錯(cuò)誤");
      return -1;
    }
    
    if(key==0xfa)
      continue;
    else if(key!=0xaa)
      IOWR(gPS2Base,PS2_DATA,0xFF);
    else
      break;
  }
//  printf("reset keyboard OK!!\n");
  
  return 0;
}
/***************************************************************************
模塊劃分:以下屬于gps 信息處理模塊

負(fù)責(zé)人:郭瑞
***************************************************************************/
/**************************************************************
 * 函數(shù)名稱:gps_module_datachuli()
 * 說明:接受GPS信號,查詢當(dāng)前所處地段;
 * 參數(shù):gps接收到的經(jīng)緯度值,返回為該地的值
 * 備注:navigator團(tuán)隊(duì)
 * 負(fù)責(zé)人;郭瑞
 ************************************************************/
int gps_module_chuli()
{
    struct  gps gps_data;
    FILE *  fp_scdt;
     int i=0;
  int j=0;
  char ch;
  int m=0;
  int  k,n;
    int  cont[14];
    char  data_in[80]; 
   char  data_out[80];  
   char  flag[6];
   
    int  ditu_w[5]={1,2,3,4,5};
    int  ditu_j[5]={6,7,8,9,10};
    int  ditu_add[5][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25}; 
    int  v=0;
    FILE * fp_gps;
    FILE * fp;
    char prompt;
    char *msg="Detected the character:[a]\n";
    char value=0;
  // 打開串口設(shè)備文件
 fp_scdt=fopen("/dev/gps_uart","r+");
 ch=fgetc(fp_scdt);
while(ch!='*')
{
   ch=fgetc(fp_scdt);
   printf("%c",ch);
   if(ch=='$')
   {
    value=1;
   }
   if(value==1)
   {
 //   printf("%c",ch);
    data_in[j]=ch;
   
    printf("%c",data_in[j]);
     j=j+1;
   }
}   
fclose(fp_scdt);
m=0;
n=j;       
      for(i=0;i<n;i++)
      {
          if(data_in[i]==',')
          {   
           m=m+1;
           cont[m-1]=i;    
          }
          switch(m)
          {
            case 0 :
            gps_data.mark[i]=data_in[i];                                     ///數(shù)據(jù)分包包裝
            break;
            case 1:
            gps_data.time[(i-cont[0])]=data_in[i+1];
            break;
            case 2:
            gps_data.value=data_in[i];
            break;
            case  3:
            gps_data.dim[(i-cont[m-1])]=data_in[i+1];
            break;
            case  4:
            gps_data.dim_name=data_in[i];
            break;
            case  5:
            gps_data.lon[(i-cont[m-1])]=data_in[i+1];
            break;
            case  6:
            gps_data.lon_name=data_in[i];
            break;
          case  9:
        gps_data.ddmmyy[(i-cont[m-1])]=data_in[i+1];
        break;
          }
        
      }
printf("\n");
for(i=0;i<cont[0];i++)
printf("%c",gps_data.mark[i]);
printf("\n");
for(i=0;i<cont[1]-cont[0]-1;i++)
printf("%c",gps_data.time[i]);
printf("\n");
printf("%c",gps_data.value);
printf("\n");
for(i=0;i<cont[3]-cont[2]-1;i++)
printf("%c",gps_data.dim[i]);
printf("\n");
printf("%c\n",gps_data.dim_name);
for(i=0;i<cont[5]-cont[4]-1;i++)
printf("%c",gps_data.lon[i]);
printf("\n");
printf("%c",gps_data.lon_name);
printf("\n");
for(i=0;i<cont[9]-cont[8]-1;i++)
printf("%c",gps_data.ddmmyy[i]);
printf("\n");
    
  return 0; 
 }
 int gps_module_search()
 {  
    int gps_module_chili();
    int a=gps_module_chuli();
    printf("目前您處的位置為%d",a);
    return  '4';
 }
 /******************************************************
  * 函數(shù)名稱:gps_module_inguid
  * 說明:智能導(dǎo)航
  * 參數(shù):輸入為當(dāng)前位置,輸出為導(dǎo)航路徑
  * 備注:navigator團(tuán)隊(duì)
  *  負(fù)責(zé)人:郭瑞
******************************************************/
int gps_module_inguid()
{
    return 0;
}

/*******************************************************
 * 函數(shù)名稱:gps_module_menu()
 * 說明:GPS各功能的選擇
 * 參數(shù):鍵盤輸入,調(diào)用各個(gè)模塊
 * 備注:navigatour團(tuán)隊(duì)
 * 負(fù)責(zé)人:郭瑞
********************************************************/

int  gps_module_menu()
{  
int iRet;
int gps_module_search();
alt_u16 status,data;
alt_u8 key;
while(key!='0')
{
  FILE * fp_lcd;
  fp_lcd=fopen(LCD_16702_0_NAME,"w");
fprintf(fp_lcd,"follow voice\n "); 
fprintf(fp_lcd,"1:DQ chaxun");
fprintf(fp_lcd,"2:ZN daohang");
fprintf(fp_lcd,"0:ZHU menu");
fprintf(fp_lcd,"4:DQ menu");     
printf(".................................\n");
printf("           請按照語音進(jìn)行操作\n");
printf("正在初始化........................\n");
printf("\t1:當(dāng)前位置查詢\n");
printf("\t2:進(jìn)入智能導(dǎo)航\t0:返回主目錄\n");
printf("\t其他任意鍵返回當(dāng)前菜單\n");
printf("請輸入你的操作\n");
iRet=init_ps2(FREEDEV_PS2_INST_BASE);
iRet=read_ascii(&key);
printf("%c\n",key); 
if (key<='4')
{
  switch(key)
  {
     case  '1':  gps_module_chuli();  break;
//   case  '2':    break;
  // case  '3':   break;
 //  case  '4':   break;
    default : printf("輸入錯(cuò)誤!請重新輸入..................\n"); break;
  } 
} 
fclose(fp_lcd);
}

return 0;
}
/**************************************************
 * 函數(shù)名稱:send_sos_message
 * 參數(shù):沒有輸入?yún)?shù),輸出到PC機(jī)上的急救信號
 * 功能:實(shí)現(xiàn)給家里面?zhèn)鬏敿本刃盘? * g
 *************************************************/
int send_sos_message()
{
    FILE* fp_gps;
    char* msg="我遇到了困難,請帶我回家!";
    fp_gps=fopen("/dev/scdt_uart", "r+");
    if(fp_gps)
    {
        fwrite(msg,strlen(msg),1,fp_gps);
        fclose(fp_gps);
    }
    return 0;
}
int putongmoshi()
{
    FILE * fp_scdt;
    FILE *  fp_gps;
    int iRet;
    alt_u16 status,data;
    alt_u8 key;
    printf("進(jìn)入了一般模式\n");
    printf("0:返回主菜單");
    iRet=init_ps2(FREEDEV_PS2_INST_BASE);
    iRet=read_ascii(&key);
   
     fp_scdt=fopen("/dev/scdt_uart","r+");
     fp_gps=fopen("/dev/gps_uart","r+");
    while (key!='0')
    {
    printf("0:返回主菜單\n");    
    fputc(fgetc(fp_gps),fp_scdt); 
    printf("%c",fgetc(fp_gps));
    }
    return 0;
}






int menu()
{   
    FILE *fp_lcd;
    fp_lcd=fopen(LCD_16702_0_NAME,"w");
    int iRet;
    alt_u16 status,data;
    alt_u8 key;
  //  fprintf(fp_lcd,"................\n");
    fprintf(fp_lcd,"follow guid!....\n");
    fprintf(fp_lcd,".1.gps guid.\n");
    fprintf(fp_lcd,".2.sos message.\n");
    printf("選擇1號鍵進(jìn)入GPS導(dǎo)航\n");
    printf("選擇2號鍵進(jìn)入急救信息發(fā)送\n");
    printf("選擇3號鍵進(jìn)入普通模式\n");
    printf("請選擇..............\n");
    iRet=init_ps2(FREEDEV_PS2_INST_BASE);
    iRet=read_ascii(&key);
    printf("%c\n",key); 
    return (key);
}

/******************************************
 * 函數(shù)名稱:數(shù)組轉(zhuǎn)字符串
 * 參數(shù):輸入為數(shù)組,輸出為相應(yīng)的字符串
 * 
 * 
 * ***************************************/


int main()
{   
    /***************************sd卡的變量*************************/
      int i=0,j=0;
  int ret_code = 0;
  alt_u8* data_buffer;
  alt_u8 filelist_buffer[500];
  alt_u8 infile_path[100];
  alt_u8 outfile_path[100];
  alt_u8 filename[100];
  int volumes_mounted;
  int fat_file_handle_1, fat_file_handle_2;     // FAT file句柄
  volatile int time_at_start, time_at_finish, total_read_time, total_write_time;
  int kbytes_per_second_read, kbytes_per_second_write;    ///讀取和寫入的速率
  int offset, num_files, bytes_read;
  int filesize = -1; 
  int fd;
  char cc;
    int sd;
    /*****************************lcd 的變量**************************/
      FILE *fp_lcd;
      IOWR(LCD_ON_BASE, 0x00,0x01);
      IOWR(LCD_BLON_BASE,0x00,0x01);
      fp_lcd=fopen(LCD_16702_0_NAME,"w");
      /**********************鍵盤的變量***************************/
   alt_u8 k; 
    /**************************地圖信息***************************/
    char ditu_w[5];
    char ditu_j[5];
    char ditu_v[9];
    FILE * fp_sd_w;
    FILE * fp_sd_j;
    FILE * fp_sd_v;
     int m;
     int value=0;
    char  linshi[10];
     int  send_sos_message(); 

  
 /***********************************初始化********************************/  
  printf( "歡迎使用智能型盲人導(dǎo)航儀!\n");
  printf( "正在初始化中.................\n" );
  printf( "將sd卡中的數(shù)據(jù)讀入到數(shù)據(jù)區(qū)...........\n" );
   fprintf(fp_lcd,"Loading.........\n");
    // Initialize and mount the filesystem.
    volumes_mounted = sd_fat_mount_all();
    if( volumes_mounted <= 0 )
    {
        ret_code = -1;
        printf( "不能夠鏈接到Sd卡\n" );
        //printf( "  error code: 0x%X\n", sd_card_global->error_code );
        //printf( "  num SD Card init tries: %d\n", sd_card_global->init_tries );
    }
  else
  {
    // 讀文件測試
    fd= open("/dev/sd_controller_inst/Input_Files/w.txt",O_RDONLY);
    fp_sd_w= open("/dev/sd_controller_inst/Input_Files/w.txt","r");
    if(fp_sd_w<0)
    {
        printf( "open file %s error\n" , SD_CONTROLLER_INST_NAME );
        return 0; 
    }
    i=0;
     do{
        sd=read(fp_sd_w,&cc,1);
        
        if(sd==1)
        {
         if(cc!='.')
          {
            if(cc!=',')
             {
                ditu_w[i]=cc;
                   
   //             printf("%c",ditu_w[i]);
                i=i+1; 
             } 
          }  
        }
        else break;
    }while(1);
    close(fp_sd_w);
   for(i=0;i<5;i++)
    {
        printf("%c",ditu_w[i]);
    }
     fp_sd_j= open("/dev/sd_controller_inst/Input_Files/j.txt",O_RDONLY);
    if(fp_sd_j<0)
    {
        printf( "open file %s error\n" , SD_CONTROLLER_INST_NAME );
        return 0; 
    }
    i=0;
     do{
        sd=read(fp_sd_j,&cc,1); 
        if(sd==1)
        {
         if(cc!='.')
          {
            if(cc!=',')
             {
                linshi[i]=cc;
                 i=i+1;
            
             } 
          }  
        }
        else break;
    }while(1);
    for(i=0;i<5;i++)
    {
        printf("%c",ditu_j[i]);
   }
   printf("\n");
    close(fp_sd_j);
       fp_sd_v= open("/dev/sd_controller_inst/Input_Files/v.txt",O_RDONLY);
    if(fp_sd_v<0)
    {
        printf( "open file %s error\n" , SD_CONTROLLER_INST_NAME );
        return 0; 
    }
     do{
        sd=read(fp_sd_v,&cc,1);
        i=0;
        if(sd==1)
        {
         if(cc!='.')
          {
            if(cc!=',')
             {
                ditu_v[i]=cc;   
            //    printf("%c",cc); 
                 
             } 
          }  
        }
        else break;
    }while(1);
    close(fp_sd_v);
    value=1;
 }
 printf("\n初始化成功!\n");
while(value)
{
     k=menu();
     switch (k)
     {              
          case  '1' :  gps_module_menu() ;  break ;
          case  '2' :  send_sos_message();  break ;
          case  '3' :  putongmoshi();        break;
          default   :  printf("\n輸入錯(cuò)誤,請重新輸入!");
     }
     
}
  return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
538在线一区二区精品国产| 日韩无一区二区| 日韩av中文字幕一区二区| 国产亚洲精品bt天堂精选| 日本电影欧美片| 国产精品自在欧美一区| 亚洲国产日韩a在线播放| 欧美韩国日本综合| 日韩久久精品一区| 欧美精品自拍偷拍动漫精品| 国产一区二区三区国产| 天堂av在线一区| 亚洲精品日韩综合观看成人91| 精品处破学生在线二十三| 欧美日韩综合在线| 91视频精品在这里| 国产999精品久久久久久绿帽| 日本欧美一区二区| 五月天国产精品| 亚洲人成人一区二区在线观看| 26uuu亚洲综合色| 欧美一区二区日韩一区二区| 欧美日韩一区二区三区高清| 97久久人人超碰| 不卡电影一区二区三区| 国产sm精品调教视频网站| 国产在线观看免费一区| 日韩精品电影在线观看| 亚洲大片精品永久免费| 亚洲美女在线国产| 亚洲视频在线观看三级| 综合久久综合久久| 国产精品午夜久久| 中文字幕国产精品一区二区| 久久精品男人的天堂| 久久蜜桃一区二区| 国产清纯在线一区二区www| 26uuu另类欧美亚洲曰本| 精品国精品自拍自在线| 欧美成人国产一区二区| 日韩欧美在线一区二区三区| 欧美岛国在线观看| 久久这里都是精品| 国产欧美精品一区二区色综合朱莉 | 亚洲自拍偷拍综合| 亚洲男同1069视频| 亚洲国产婷婷综合在线精品| 午夜欧美电影在线观看| 日韩高清国产一区在线| 日韩国产欧美三级| 狠狠色狠狠色综合系列| 色伊人久久综合中文字幕| 99久久久久久99| 色综合视频一区二区三区高清| 91国产精品成人| 欧美精品自拍偷拍| 欧美变态凌虐bdsm| 国产欧美在线观看一区| 亚洲丝袜精品丝袜在线| 亚洲国产精品一区二区www | 久久精品免费在线观看| 亚洲国产精品ⅴa在线观看| 综合婷婷亚洲小说| 亚洲成人免费影院| 精品在线免费观看| 成人av午夜影院| 欧洲视频一区二区| 精品久久久久一区二区国产| 国产蜜臀av在线一区二区三区| 亚洲欧洲综合另类| 日韩精品视频网站| 大尺度一区二区| 色综合久久88色综合天天6| 91精品国产综合久久香蕉麻豆| 久久你懂得1024| 亚洲精品伦理在线| 老司机免费视频一区二区| 国产成人免费网站| 在线看不卡av| 久久老女人爱爱| 亚洲一区二区三区影院| 久久精品国产99| 色综合久久久久综合99| 日韩一区二区电影| 18涩涩午夜精品.www| 麻豆成人久久精品二区三区小说| 粉嫩av一区二区三区| 欧美日韩国产另类不卡| 国产欧美日韩卡一| 首页国产欧美日韩丝袜| 成人高清视频在线观看| 91麻豆精品国产91久久久| 国产精品第一页第二页第三页| 日本不卡高清视频| 91女厕偷拍女厕偷拍高清| 日韩三级精品电影久久久| 亚洲人快播电影网| 国产在线精品免费av| 欧美日韩国产综合视频在线观看| 国产性天天综合网| 欧美aⅴ一区二区三区视频| 色综合网站在线| 中文av字幕一区| 国产在线精品一区二区不卡了| 欧美日精品一区视频| 自拍偷拍亚洲欧美日韩| 国产乱淫av一区二区三区| 91精品国产综合久久精品app | 国产ts人妖一区二区| 日韩一区二区三区四区| 亚洲国产中文字幕在线视频综合| 国产91精品一区二区麻豆网站| 日韩一区二区精品葵司在线 | 亚洲婷婷综合色高清在线| 国产精品资源网站| 日韩三级在线免费观看| 五月天一区二区| 色综合咪咪久久| 日韩一区在线看| 成人avav影音| 中文字幕不卡在线播放| 国产一区二区三区美女| 欧美xxxxxxxxx| 免费观看91视频大全| 欧美午夜精品一区二区蜜桃| 亚洲欧洲成人自拍| 成人福利视频网站| 中文字幕精品三区| 成人永久免费视频| 国产精品美女久久久久aⅴ国产馆| 国产一区不卡在线| 久久综合久久综合亚洲| 国产麻豆精品在线| 久久久精品黄色| 国产91精品在线观看| 日本一区二区免费在线| 粗大黑人巨茎大战欧美成人| 国产精品色一区二区三区| 成人综合在线观看| 亚洲欧洲精品天堂一级| 91麻豆产精品久久久久久| 玉足女爽爽91| 欧美日韩视频一区二区| 日韩vs国产vs欧美| 日韩精品资源二区在线| 国产综合久久久久久鬼色| 久久久亚洲精品一区二区三区| 国产精品一区二区三区乱码| 久久久99精品免费观看| 风间由美性色一区二区三区| 国产精品嫩草99a| 色88888久久久久久影院野外| 一区二区三区欧美日韩| 欧美丝袜自拍制服另类| 青青草成人在线观看| 精品美女在线观看| 成人综合婷婷国产精品久久免费| 18涩涩午夜精品.www| 欧美三级电影网| 麻豆久久久久久| 国产欧美一区二区三区在线看蜜臀 | 久久久久久久久久电影| 成人av在线资源网站| 亚洲影院理伦片| 欧美一区二区三区免费在线看| 国产乱子伦视频一区二区三区| 中文字幕日本乱码精品影院| 欧美亚洲动漫制服丝袜| 免费高清在线视频一区·| 中文字幕欧美日本乱码一线二线 | 99re成人精品视频| 天堂va蜜桃一区二区三区漫画版| 精品裸体舞一区二区三区| 成人美女在线视频| 亚洲国产一区二区在线播放| 精品国精品自拍自在线| 91免费观看在线| 麻豆成人久久精品二区三区小说| 中文字幕 久热精品 视频在线| 91精品福利在线| 九色综合狠狠综合久久| 亚洲欧美另类久久久精品| 91精品国产综合久久久蜜臀图片| 国产99久久精品| 亚洲超碰精品一区二区| 欧美激情一区二区| 欧美一区三区四区| 91在线观看成人| 国产一区视频在线看| 亚洲精品精品亚洲| 欧美mv和日韩mv国产网站| 色婷婷综合中文久久一本| 久久精品国产免费| 一区二区三区电影在线播| 欧美精品一区二区在线观看| 欧美三级资源在线| www.一区二区| 国内精品在线播放| 肉色丝袜一区二区| 亚洲免费av观看|