久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> Arduino >> 瀏覽文章

Flash連接Arduino mega的雙路藍牙高速連接成功

作者:未知   來源:互聯網   點擊數:  更新時間:2014年07月31日   【字體:

  由于要做雙無線傳感器,之前已經搞定了雙路藍牙接收問題,但是一直都存在問題,主要是由于mega上的代碼不夠好導致數據經常丟失,想了很多辦法,終于搞定了。

  首先主要是mega上的代碼的改進:
 ****************************************************************************
String comdata = "";
String shuju="#";
String shuju2="%";
int i;
char zhilin;
char sj1;
char sj2;
void setup()
 {
     Serial.begin(9600);
     Serial1.begin(9600);
     Serial2.begin(9600);
 }
void loop()
 {
  //下面語句是來發送指令給無線傳感器端的,主要是接收電腦端的指令然后轉發給傳感器端
        if (Serial.available() > 0)  
       zhilin=char(Serial.read());
         if(zhilin=='b')
         {
           Serial1.print("b");
           Serial2.print("b");
           zhilin='c';
         }
         if(zhilin=='o')
         {
          Serial1.print("o");
          Serial2.print("o");
           zhilin='c';
         }
//下面是串口1端上的藍牙接收到的數據處理
     while (Serial1.available() > 0)  
     {
        sj1= char(Serial1.read());
        if(sj1!='\n')
        shuju+=sj1;
        if(sj1=='$')
        {
          Serial.println(shuju);
       shuju="#";  
   }
     }
//下面是串口2端上的藍牙接收到的數據處理
     while (Serial2.available() > 0)
     {
       sj2= char(Serial2.read());
        if(sj2!='\n')
        shuju2+=sj2;
        if(sj2=='$')
        {
          Serial.println(shuju2);
       shuju2="%";  
     }
     }
     }
***********************************************************************
數據頭“#”或“%”來區別傳感器1和2的數據。
下面是Flash端的類文件:
***********************************************************************
package 
{
import flash.events.Event;
import flash.display.Sprite;
import flash.display.MovieClip;;
import flash.net.Socket;
import flash.events.IOErrorEvent;
import flash.events.ProgressEvent;
import flash.events.SecurityErrorEvent;
import flash.utils.Endian;
import flash.events.MouseEvent;
import flash.text.*; 
import flash.text.TextFieldAutoSize;
 
 
public class shuanglanya extends MovieClip
private static const TOGGLE_LED_STATE:String = "t";//定義一個與arduino聯系字符
private static const EOL_DELIMITER:String = "$";//定義一個結束字符,注意與arduino上一樣
private var _socket:Socket;
private var _proxyAddress:String = "127.0.0.1";
private var _proxyPort:uint = 5333;
public static var  msg:String;
public static var  msg1:String;
public static var msgarray1:Array = new Array();   //新建一個名為msgarray的全局數組
public static var ari1:Number=0;
public static var  msg2:String;
public static var msgarray2:Array = new Array();   //新建一個名為msgarray的全局數組
public static var ari2:Number=0;
public static var  msg3:String;
var ri1:Number=0;
var ri2:Number=0;
var xsarduinotime1:TextField = new TextField();//新建一個名為xsarduinotime的文本框 
var xsarduinotime2:TextField = new TextField();//新建一個名為xsarduinotime的文本框 
var i:Number=0;
var index:int;
var index2:int;
 
//gettime主程序
public function shuanglanya()
{
 
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);    //偵聽類是否被添加到舞臺,每次添加時運行onAddedToStage
}
            
private function onAddedToStage(event:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);    //移除偵聽
 
 //下面的程序是與arduino建立連接,如果連接上了怎么樣,如果斷了怎么樣等等
_socket = new Socket();
_socket.addEventListener( Event.CONNECT, onConnect );
_socket.addEventListener( Event.CLOSE, onClose );
_socket.addEventListener( ProgressEvent.SOCKET_DATA, onSocketData );  //偵聽有無來自端口的數據
_socket.addEventListener( IOErrorEvent.IO_ERROR, onIOError );
_socket.addEventListener( SecurityErrorEvent.SECURITY_ERROR, onSecurityError );
_socket.endian = Endian.LITTLE_ENDIAN;
_socket.connect(_proxyAddress, _proxyPort);
}
//連接上了執行
private function onConnect(event:Event):void
{
trace("Socket Connected");//連接上就發送一個消息
}
private var buffer:String = "";//定義一個字符串緩存字符
private var buffer1:String = "";//定義一個字符串緩存字符
private var buffer2:String = "";//定義一個字符串緩存字符
private var buffer3:String = "";//定義一個字符串緩存字符
 //下面程序師接受來自arduino的數據,一個字母一個字母接收的
       
private function onSocketData(event:ProgressEvent):void
{
var data:String = _socket.readUTFBytes( _socket.bytesAvailable );
buffer+=data;
while((index = buffer.indexOf(EOL_DELIMITER)) > -1)
{
i=0;
msg = buffer.substring(i, i+1);
while(msg!="#"&&msg!="%")
{
i++;
msg = buffer.substring(i, i+1);
}
 
 
if(msg=="#")
{
 msg1=buffer.substring(i+1,index);
   trace(msg1);
  xsarduinotime1.text=msg1;  
 
}
if(msg=="%")
{
msg2=buffer.substring(i+1,index);
    trace(msg2);
  xsarduinotime2.text=msg2;  
 
}
 buffer=buffer.substring(index+1);
 
  xsarduinotime1.width=400;   //文本框的寬度200
  xsarduinotime1.height=200;
  xsarduinotime1.x=100;       //文本框的位置
  xsarduinotime1.y=10;
   //顯示time from arduino
  
    xsarduinotime2.width=400;   //文本框的寬度200
  xsarduinotime2.height=200;
  xsarduinotime2.x=300;       //文本框的位置
  xsarduinotime2.y=10;
 
  var format:TextFormat = new TextFormat();    //新建文字格式format
        format.size=24;                        //文字大小24
    xsarduinotime1.setTextFormat(format);       //將文字格式賦予xsarduinotime文本框    
addChild(xsarduinotime1);
    xsarduinotime2.setTextFormat(format);       //將文字格式賦予xsarduinotime文本框    
addChild(xsarduinotime2);
}
}
    //下面就是onclick程序,就是點擊按鈕時要做的
private function onClick(event:MouseEvent):void
{
trace("onClick");
              if(!_socket.connected)         //假如沒有連接上,發送你要連什么的
{
trace("You must be connected to send a command to the Arduino.");
return;
}
_socket.writeUTFBytes(TOGGLE_LED_STATE);//如果沒有不連接上,就發聯系字符給arduino
_socket.flush();//發送
}
               //下面定義關掉arduino時,顯示Socket Closed
private function onClose(event:Event):void
{
trace("Socket Closed");
}
                //下面是出錯時顯示的消息的
private function onIOError(event:IOErrorEvent):void
{
trace("IOErrorEvent : " + event.text);
}
//下面也是出錯時的
private function onSecurityError(event:SecurityErrorEvent):void
{
trace("SecurityErrorEvent : " + event.text);
}
}
 }
**************************************************************
動畫界面上的兩個文本框實時顯示來自兩路藍牙的數據。
關閉窗口

相關文章

主站蜘蛛池模板: 国产精品久久久久久久久久 | 天天操天天干天天操 | 国产精品99久久久久久久久久久久 | 国产成人精品一区 | 欧美一级精品 | 交换多p群乱高h文 | 日韩福利在线 | 视频一区二区三区在线观看 | 久久精品久久久久久久 | 青娱乐99| 亚洲精品一区二区在线观看 | 69av在线播放 | 一区二区三区四区国产 | 色综合久久久 | 涩久久| 四虎成人精品 | av在线播放观看 | a免费视频| 精品欧美日韩 | 成人激情视频网 | 午夜免费在线 | 日韩精品在线看 | 亚洲欧美日韩国产精品 | 久久久久毛片 | 天天曰天天操 | 激情综合五月天 | 欧美在线播放视频 | 日本免费网站 | 欧美啪啪网| www.毛片.com| 日韩成人精品一区二区 | 免费三级网站 | 亚洲高清视频在线 | av免费在线观看网站 | 亚洲久久久久久 | 精品免费国产一区二区三区四区 | 日韩中文视频 | 五月婷婷综合网 | 51调教丨国产调教视频 | 国产精品自拍一区 | 国产精品久久久久久久成人午夜 |