Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 7029|回復: 0
打印 上一主題 下一主題

NXT大量資料藍芽傳輸

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-8-14 17:15:55 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我現在已經會用NXC語言來一次傳輸一個數值,但是我怎麼試都無法一次傳輸兩個以上的數值,這樣的語法該怎麼寫呢?

聽說NXT只有10個收發信箱,有沒有什麼語法或方法來擴大資料的傳輸呢?

還有一個小問題,為什麼接收到資料之後,回傳的數值要是0xFF? 而不是一般的時進位法


我寫的失敗程式(傳輸i和z兩亂數,接收後轉變為in和c,再顯示出來):

//MASTER
#define BT_CONN 1
#define OUTBOX 5
#define INBOX 1
#define OUTBOX 4
#define INBOX 2
sub BTCheck(int conn){
   if (!BluetoothStatus(conn)==NO_ERR){
      TextOut(5,LCD_LINE2,"Error");
      Wait(1000);
      Stop(true);
   }
}
task main(){
   int ack, i, z;
   BTCheck(BT_CONN);
   TextOut(10,LCD_LINE1,"Master sending");
   while(true){
     i = Random(100);
     z = Random(50);
     TextOut(0,LCD_LINE3,"                   ");
     NumOut(5,LCD_LINE3,i);
     TextOut(0,LCD_LINE2,"                   ");
     NumOut(5,LCD_LINE2,z);
     ack = 0;
     SendRemoteNumber(BT_CONN,OUTBOX,i);
     SendRemoteNumber(BT_CONN,OUTBOX,z);
     until(ack==0xFF) {
       until(ReceiveRemoteNumber(INBOX,true,ack) == NO_ERR);
     }
     Wait(2000);
   }
}







//SLAVE
#define BT_CONN 1
#define OUT_MBOX 1
#define IN_MBOX 5
#define OUT_MBOX 2
#define IN_MBOX 4

sub BTCheck(int conn){
   if (!BluetoothStatus(conn)==NO_ERR){
      TextOut(1,LCD_LINE4,"Error");
      Wait(1000);
      Stop(true);
   }
}
task main(){
   int in, c;
   BTCheck(0);
   TextOut(5,LCD_LINE1,"Slave receiving");
   SendResponseNumber(OUT_MBOX,0xFF);
   while(true){
     if (ReceiveRemoteNumber(IN_MBOX,true,in) && ReceiveRemoteNumber(IN_MBOX,true,c) != STAT_MSG_EMPTY_MAILBOX) {
       TextOut(0,LCD_LINE3,"                   ");
       NumOut(5,LCD_LINE3,in);
       TextOut(0,LCD_LINE2,"                   ");
       NumOut(5,LCD_LINE2,c);
      
       SendResponseNumber(OUT_MBOX,0xFF);
     }
     Wait(2000);
   }
}
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-11-23 17:35 , Processed in 0.077591 second(s), 7 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表