16,472
社区成员
发帖
与我相关
我的任务
分享
#include <string>
#include <vector>
#include <list>
#include <iterator>
#include <iostream>
#include <functional>
#include "libSuyunBleInvoker.h"
#include "SUYUN_WBLE_Callback.h"
libSuyunBleInvoker invoker;
std::vector<BTDevice> scaned_devices;
int connect_index = 0;
void OnScanResult( std::list<BTDevice>* devices ) {
// clear out of date devices infomation
scaned_devices.clear();
// save devices infomation
std::copy( devices->begin(), devices->end(), std::back_inserter( scaned_devices ) );
// print device infomation
if( scaned_devices.size() > 0 ) {
printf( "Scan Result:\n" );
for( auto & dev : scaned_devices ) {
printf( "Device: %s, %s, %ddBm\n", dev.name, dev.address, dev.rssi );
}
// connect sensor one by one, when connected or not, it calls OnEvent function
invoker.connect_device( connect_index, scaned_devices[ connect_index ].address );
} else {
printf( "No device found.\n" );
}
}
// print quaternion components received from ble sensor
void OnData( const int dev_index, float qx, float qy, float qz, float qw, const int sr, const int bp ) {
printf( "#%s -> %.6f, %.6f, %.6f, %.6f\n", dev.address, qx, qy, qz, qw );
}