2013-08-28 98 views
2

我使用RedBear BLE Shield将数据连续传输到iOS。将数据从BLE SHIELD Arduino流式传输到iPhone

我使用的SDK提供聊天iOS应用调试下面的Arduino代码:

#include <Arduino.h> 
#include <SPI.h> 
#include "ble.h" 

unsigned int reading = 0; 

void setup() 
{ 
    SPI.setDataMode(SPI_MODE0); 
    SPI.setBitOrder(LSBFIRST); 
    SPI.setClockDivider(SPI_CLOCK_DIV16); 
    SPI.begin(); 

    ble_begin(); 

    Serial.begin(57600); 
} 

unsigned char buf[16] = {0}; 
unsigned char len = 0; 

void loop() 
{ 

    ble_do_events(); 

    if(ble_connected()){ 

     reading = 10; //this is fake data for testing purposes. 
     buf[0] = reading; 
     reading = reading << 8; 
     reading |= 11; //again same fake data 
     buf[1] = reading & 0xFF; 
     len = 2; 
     Serial.print(reading); Serial.print(" -> LSB:"); Serial.print(buf[1], HEX); Serial.print(" MSB:"); Serial.println(buf[0], HEX); 

    len = 2; 
    for (int i = 0; i < len; i++) 
     ble_write(buf[i]); 
    ble_write(0x0D); 
    len = 0; 

    ble_do_events(); 

    delay(20); 
    } 
} 

我遇到以下问题: 我第一次尝试连接到BLE保护它只是执行循环一次,它会卡住。那么,如果我断开连接并重新连接,数据就会按照我的意愿开始流式传输。

任何人都试过吗?

回答

0

我使用BLE Simple来测试你的程序。你的确被卡住了。但如果你评论最后的ble_do_events()出来,一切都很好。

看起来,应用程序会在一段时间后自动连接和断开BLE屏蔽。我是新来的,并不真正理解这个......是因为当ble_write被调用时,ble会播放应用程序来通知这里是短信。那么这个应用程序将连接并获取短信?