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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rf_test.c

?? reference about wireless design which is helpful to everyone
?? C
?? 第 1 頁 / 共 2 頁
字號:
      res = radioSend(&sendBuffer, 1, remoteAddr, DO_ACK);
      sendBall(ORIENTED_RIGHT);
      YLED = LED_OFF;
      if(res == TRUE)
      {
         res = radioReceive(&buffer, &length, PING_PONG_TIMEOUT,&sender);
      }
      else
      {
         res = FALSE;
      }


      if(res == TRUE)
      {
         receiveBall(ORIENTED_RIGHT);
         GLED = LED_ON;
         // lcdUpdateLine(LINE1, "OK!");
         lcdUpdate((char *)"OK!", (char *)"");
         printRSSI(buffer[length]);
      }
      else
      {
         GLED = LED_OFF;
         // lcdUpdateLine(LINE1, "Failed...");
         lcdUpdate((char *)"Failed...", (char *)"");
         waitVisible(CLEARLY_VISIBLE);
      }
      waitVisible(CLEARLY_VISIBLE);
      GLED = LED_OFF;
   }

}


/******************************************************************************
* @fn  perTestMode
*
* @brief
*      Function for performing a packet error rate (PER) test.
*
* Parameters:
*
* @param  void
*
* @return void
*
******************************************************************************/
void perTestMode(void)
{
   BYTE sendBuffer = PER_TEST_REQUEST;
   char number[16];

   BYTE* receiveBuffer;
   BYTE length;
   BYTE res;
   BYTE sender;
   WORD lastPacketNumber = 0;
   WORD thisPacketNumber;
   WORD failed = 0;


   YLED = LED_ON;
   res = radioSend(&sendBuffer, 1, remoteAddr, DO_ACK);
   YLED = LED_OFF;

   if(res == TRUE)
   {
      while(lastPacketNumber < PER_TOTAL_PACKET_NUMBER)
      {
         res = radioReceive(&receiveBuffer, &length, PER_RECEIVE_TIMEOUT, &sender);
         if(res == TRUE)
         {
            thisPacketNumber = *((WORD*) receiveBuffer);
            failed += (thisPacketNumber - lastPacketNumber - 1);
            lastPacketNumber = thisPacketNumber;
            GLED = LED_ON;
         }
         else
         {
            GLED = LED_OFF;
            failed += (PER_TOTAL_PACKET_NUMBER - lastPacketNumber);
            lastPacketNumber = PER_TOTAL_PACKET_NUMBER;
         }
      }
      if((failed == 0) &&(lastPacketNumber != 0))
      {
         lcdUpdateLine(LINE2,(char *)"Correct!");
      }
      failed = failed / 10;
      sprintf(number, (char *)"PER: %d", failed);
      lcdUpdateLine(LINE1,number);
      lcdUpdateChar(LINE1, 8, '%');
   }
   else
   {
      lcdUpdate((char *)"Node Unreachable",(char *)"");
   }

   haltApplicationWithLED();

   return;
}


/******************************************************************************
* @fn  receiveMode
*
* @brief
*      Function for receiving data.
*
* Parameters:
*
* @param  void
*
* @return void
*
******************************************************************************/
void receiveMode(void)
{
   BYTE* receiveBuffer;
   BYTE length;
   BYTE res;
   BYTE sender;

   pingPongInit();

   while( !stopApplication() )
   {
      res = radioReceive(&receiveBuffer, &length, RECEIVE_TIMEOUT, &sender);

      if(res == TRUE)
      {
         GLED = LED_ON;
         if(*receiveBuffer == PING_PONG_REQUEST)
         {
            pingPongResponse();
         }
         else if(*receiveBuffer == PER_TEST_REQUEST)
         {
            conductPerTest();
         }
         else
         {
            printRSSI(receiveBuffer[length]);
            showState();
         }
      }
      else
      {
         lcdUpdate((char *)"Waiting",(char *)"");
         GLED = LED_OFF;
      }

      GLED = LED_OFF;
   }
   return;
}


/******************************************************************************
* @fn  showState
*
* @brief
*      Print "Sending" or "Receiving" on LINE1.
*
* Parameters:
*
* @param  void
*
* @return void
*
******************************************************************************/
void showState(void)
{
   if (RxTxState == SEND){
      lcdUpdateLine(LINE1, (char *)"Sending");
   }
   else{
      lcdUpdateLine(LINE1, (char *)"Receiving");
   }
   halWait(0xFF);
}


/******************************************************************************
* @fn  pingPongResponse
*
* @brief
*      Handles response to pingpong.
*
* Parameters:
*
* @param  void
*
* @return void
*
******************************************************************************/
void pingPongResponse(void)
{
  BYTE transmitBuffer;

  receiveBall(ORIENTED_LEFT);
  halWait(1);
  YLED = LED_ON;
  transmitBuffer = PING_PONG_RESPONSE;
  radioSend(&transmitBuffer, 1, remoteAddr, DO_NOT_ACK);
  sendBall(ORIENTED_LEFT);
  YLED = LED_OFF;
}


/******************************************************************************
* @fn  conductPerTest
*
* @brief
*      Sends 1000 packets to calculate PER.
*
* Parameters:
*
* @param  void
*
* @return void
*
******************************************************************************/
void conductPerTest(void)
{
    WORD i;
    WORD sendBuffer[2];

    lcdUpdate((char *)"Conducting", (char *)"PER test.");

    sendBuffer[1] = PER_TOTAL_PACKET_NUMBER;

    for(i=1; i < PER_TOTAL_PACKET_NUMBER+1 ; i++)
    {
        halWait(8);
        sendBuffer[0] = i;
        radioSend((BYTE*) sendBuffer, sizeof(sendBuffer), remoteAddr, DO_NOT_ACK);
    }
}


/******************************************************************************
* @fn  printRSSI
*
* @brief
*      Printing RSSI on the LCD-display.
*
* Parameters:
*
* @param  INT8 rssi
*         New RSSI value.
*
*
* @return void
*
******************************************************************************/
void printRSSI(INT8 rssi)
{
   char rssiString[16];
   UINT8 rssiVal = 0;
   rssiVal = (UINT16) rssi;
   if(rssiVal >= 128)
   {
      rssiVal = (((rssiVal - 256)/2) -72);
   }
   else
   {
      rssiVal = ((rssiVal/2) -72);
   }

   sprintf(rssiString,  (char const *)"%d dBm", (INT8)rssiVal);

   lcdUpdateLine(LINE2, rssiString);
}


/******************************************************************************
* @fn  getFrequency
*
* @brief
*      Get current frequency.
*
* Parameters:
*
* @param  void
*
* @return UINT32
*         Current frequency.
*
******************************************************************************/
UINT32 getFrequency(void)
{
   char *menuText[] = {(char*)" 2405", (char*)" 2410", (char*)" 2415", (char*)" 2420", (char*)" 2425", (char*)" 2430", (char*)" 2435", (char*)" 2440", (char*)" 2445", (char*)" 2450", (char*)" 2455", (char*)" 2460", (char*)" 2465", (char*)" 2470", (char*)" 2475", (char*)" 2480", (char*)" 2485"};
   UINT8 selection;
   selection = lcdMenu(menuText, 17);
   if(selection != ABORT_MENU)
   {
      return ((UINT32)2405000 + (UINT32)5000*selection);
   }
   else
   {
      return ((UINT32)2405000);
   }

}


/******************************************************************************
* @fn  getAddress
*
* @brief
*      Get current address.
*
* Parameters:
*
* @param  UINT8 a
*
* @return UINT8
*
******************************************************************************/
UINT8 getAddress(UINT8 a)
{
   UINT8 address = a;
   char line[16];
   JOYSTICK_DIRECTION jsv;

   while(getJoystickDirection() != CENTRED);

   while((jsv = getJoystickDirection()) != RIGHT)
   {
      while(getJoystickDirection() != CENTRED);

      if(jsv == UP)
      {
         address++;
      }
      else if (jsv == DOWN)
      {
         address--;
      }

      sprintf(line,(char *)"Address: %d     ",address);
      lcdUpdateLine(LINE2, line);
   }
   return address;
}


/******************************************************************************
* @fn  clockmodes_init
*
* @brief
*     Setup for incorperating the functions in this
*     module with the menu
*
* Parameters:
*
* @param  APPLICATION *a
*         Main application
*
* @return void
*
******************************************************************************/
#ifdef COMPLETE_APPLICATION
void rf_test_init(APPLICATION *a)
{
   a->menuText = (char *)"RF Test";
   a->description = (char *)"Radio comm.";
   a->main_func = rf_test_main;
}
#endif


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91电影在线观看| 成人精品在线视频观看| 国产在线不卡视频| 色婷婷亚洲一区二区三区| 91麻豆精品久久久久蜜臀| 国产精品久久久久久一区二区三区| 日本亚洲天堂网| 色噜噜狠狠成人中文综合| 久久久久久久国产精品影院| 午夜精彩视频在线观看不卡| 99re8在线精品视频免费播放| 日韩av高清在线观看| 日韩一区二区电影| 秋霞午夜av一区二区三区| 国产传媒久久文化传媒| 韩国午夜理伦三级不卡影院| 欧美综合亚洲图片综合区| 国产精品免费aⅴ片在线观看| 老司机精品视频一区二区三区| 欧美日韩免费一区二区三区| 国产精品国产三级国产有无不卡| 国产一区福利在线| 久久午夜羞羞影院免费观看| 日本不卡视频在线| 欧美日韩电影在线播放| 一区二区三区精密机械公司| 91丨porny丨国产| 中文字幕一区二| www.在线欧美| 亚洲人成精品久久久久久| 色欧美片视频在线观看| 成人精品小蝌蚪| 亚洲日本va在线观看| 中文字幕国产精品一区二区| 国产在线播放一区三区四| 日韩精品中文字幕一区二区三区| 日本亚洲电影天堂| 日韩午夜激情电影| 精品在线亚洲视频| 日韩精品一区二区三区视频播放| 麻豆久久一区二区| 久久久精品中文字幕麻豆发布| 国产电影一区二区三区| 国产亚洲精品7777| www.亚洲免费av| 亚洲影视资源网| 欧美一级视频精品观看| 国模冰冰炮一区二区| 国产欧美视频一区二区| 99国产精品国产精品毛片| 亚洲综合无码一区二区| 69精品人人人人| 亚洲乱码一区二区三区在线观看| 久久久久亚洲蜜桃| 亚洲综合男人的天堂| 欧美日韩一区二区三区免费看| 首页综合国产亚洲丝袜| 久久综合九色综合欧美98| 99久久免费精品高清特色大片| 一区二区欧美在线观看| 日韩精品一区二区三区视频播放| 国产高清一区日本| 亚洲一区二区av电影| 日韩一区二区免费在线电影| 成人免费视频免费观看| 一区二区三区在线看| 欧美电影免费观看高清完整版在| 丰满放荡岳乱妇91ww| 亚洲小说春色综合另类电影| 欧美精品一区二区在线播放| 色欲综合视频天天天| 捆绑变态av一区二区三区| **欧美大码日韩| 精品粉嫩aⅴ一区二区三区四区| 99久久精品情趣| 99国产精品久久久久| 亚洲激情一二三区| www.亚洲激情.com| 另类小说视频一区二区| 亚洲精品乱码久久久久久黑人| 欧美一二区视频| 99精品1区2区| 国产乱一区二区| 亚洲第四色夜色| 国产精品欧美久久久久一区二区| 制服丝袜激情欧洲亚洲| 丁香激情综合国产| 国内精品国产成人| 日韩av中文字幕一区二区| 亚洲精品久久久蜜桃| 国产欧美日韩另类一区| 日韩免费视频一区二区| 欧美色大人视频| 一本色道亚洲精品aⅴ| 国产电影一区二区三区| 蜜桃视频免费观看一区| 亚洲成av人在线观看| 亚洲丝袜精品丝袜在线| 亚洲国产高清不卡| 国产三级一区二区三区| 精品对白一区国产伦| 日韩美女天天操| 日韩一区二区麻豆国产| 欧美一区二区三区成人| 欧美理论在线播放| 欧美性视频一区二区三区| 日本精品一区二区三区高清| caoporm超碰国产精品| 国产成人在线观看免费网站| 国产一区二区在线看| 老司机一区二区| 久久国产精品一区二区| 蜜臀久久99精品久久久久久9| 五月开心婷婷久久| 午夜亚洲国产au精品一区二区| 亚洲综合免费观看高清完整版在线| 亚洲欧美日韩国产中文在线| 亚洲精品你懂的| 亚洲自拍与偷拍| 午夜精品福利一区二区蜜股av| 午夜激情久久久| 麻豆91在线播放| 国产伦理精品不卡| 福利一区在线观看| 91麻豆免费观看| 国产欧美一区二区精品忘忧草 | 欧美亚洲愉拍一区二区| 91天堂素人约啪| 欧美日韩综合在线| 日韩一级黄色大片| 国产日韩精品一区二区浪潮av| 国产精品看片你懂得| 亚洲永久免费av| 久久99久久99精品免视看婷婷| 国产精品一区二区久久精品爱涩 | 麻豆一区二区99久久久久| 精品无码三级在线观看视频 | 蜜臀av性久久久久av蜜臀妖精 | 日韩精品电影在线观看| 日本美女一区二区| 国产成人亚洲综合a∨猫咪| 97久久人人超碰| 91麻豆精品国产91久久久久| 久久亚洲综合av| 一区二区三区在线观看国产| 乱中年女人伦av一区二区| 大美女一区二区三区| 欧美日韩黄色一区二区| 国产午夜精品福利| 亚洲国产sm捆绑调教视频 | 国产午夜精品久久久久久免费视| 亚洲视频免费在线| 日韩主播视频在线| a在线欧美一区| 日韩一区二区三| 一区二区三区自拍| 国产乱一区二区| 欧美日韩aaaaaa| 亚洲综合在线视频| 国产麻豆日韩欧美久久| 在线成人av网站| 天堂va蜜桃一区二区三区漫画版 | 成人精品一区二区三区中文字幕| 国产清纯美女被跳蛋高潮一区二区久久w | 7777精品伊人久久久大香线蕉的 | 国产午夜精品在线观看| 一区二区三区免费观看| 日韩一区二区免费电影| 欧美综合天天夜夜久久| 欧美一区二区久久| 亚洲另类中文字| 成人永久免费视频| 欧美一激情一区二区三区| 亚洲美女免费在线| 国产91精品一区二区| 欧美三级资源在线| 亚洲三级在线播放| 国产成人精品免费网站| 91精品国产综合久久蜜臀| 亚洲精品日韩一| 91视频免费看| 国产清纯白嫩初高生在线观看91 | 欧美群妇大交群的观看方式| 亚洲女同一区二区| 成人免费毛片嘿嘿连载视频| 精品国产伦理网| 老司机午夜精品| 日韩一级精品视频在线观看| 婷婷丁香激情综合| 欧美日韩三级在线| 亚洲国产精品欧美一二99| 色婷婷国产精品综合在线观看| 亚洲欧洲在线观看av| 成人激情小说乱人伦| 国产女人水真多18毛片18精品视频| 麻豆精品视频在线| 欧美不卡视频一区| 激情综合五月婷婷| 久久伊99综合婷婷久久伊| 裸体健美xxxx欧美裸体表演|