久久久久久久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);
}
}
 }
**************************************************************
動畫界面上的兩個文本框實時顯示來自兩路藍牙的數據。
關閉窗口

相關文章

主站蜘蛛池模板: 自拍中文字幕 | 亚洲二区视频 | 中文字幕成人av | 日韩成人免费视频 | 成人精品毛片国产亚洲av十九禁 | 91精品国产91综合久久蜜臀 | 久久国产精品99久久久久久丝袜 | 亚洲精品国产成人 | 国产精品久久久久久久三级 | 精品国产伦一区二区三区观看说明 | 日本中文字幕一区 | 久视频在线观看 | 日韩精品亚洲专区在线观看 | 欧美日韩视频在线播放 | 在线免费av观看 | 欧美中文字幕一区二区 | 99在线免费观看视频 | 国产特级毛片aaaaaa喷潮 | 一区二区三区在线看 | 色久伊人 | 91成人免费电影 | 国产精品极品美女在线观看免费 | 狠狠夜夜| 久久精品 | 四虎永久免费地址 | 久久精点视频 | 人人爽日日躁夜夜躁尤物 | 久久久久久九九九九 | 成人免费在线视频 | 亚洲一区在线日韩在线深爱 | 亚洲国产精品成人无久久精品 | 国产精品成人一区二区三区 | 人人干天天干 | 久久九精品 | 亚洲区一 | 国产 日韩 欧美 在线 | 久久久成人免费视频 | 国产福利在线免费观看 | 不卡的av一区 | 国产成人精品久久二区二区91 | 国产日韩精品视频 |