Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在Linux x86上使用C对蓝牙LE设备进行编程?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个蓝牙设备,我可以在 linux上使用gatttool控制.我想开发自己的c程序,可以向它发送命令. 我以做了蓝牙编程,它相对简单,类似于网络编程,但这一次,它是一个蓝牙低功耗设备,并遵循原则here导致主机关闭消息,当我可以清楚地连接/断开它使用gatttool. 我该如何创建这个程序?我知道@R_706_10675@用bluez库,但我不知道从哪里开始使用低能耗设备. int main(int argc
我有一个蓝牙设备,我可以在 @L_419_0@上使用gatttool控制.我想开发自己的c程序,可以向它发送命令.

我以做了蓝牙编程,它相对简单,类似于网络编程,但这一次,它是一个蓝牙低功耗设备,并遵循原则here导致主机关闭消息,当我可以清楚地连接/断开它使用gatttool.

我该如何创建这个程序?我知道@R_706_10675@用bluez库,但我不知道从哪里开始使用低能耗设备.

int main(int argc,char **argv)
{
   struct sockaddr_rc addr = { 0 };
   int s,status;
   char dest[18] = "B4:99:4C:5C:EE:49";
   char buf[2048];
   pthread_t rthread;

   setbuf(stdout,null); 
   // allocate a socket
   s = socket(AF_BLUETOOTH,SOCK_STREAM,BTPROTO_RFCOMM);
   // set the connection parameters (who to connect to)
   addr.rc_family = AF_BLUETOOTH;
   addr.rc_chAnnel = (uint8_t) 1;
   str2ba( dest,&addr.rc_bdaddr );
   // connect to server
   status = connect(s,(struct sockaddr *)&addr,sizeof(addr));

   if( status < 0 ){
      perror("Error connecTing to host\n");
      exit(1);
   }

   while(fgets(buf,sizeof(buf),stdin) != NULL){
      status = send(s,buf,0);
      if(status < 0){
         printf("Error sending.\n");
     exit(1);
      }
   }

   close(s);

   return;

解决方法

你的程序是经典的蓝牙,为了支持我的声明,我会说在任何经典的蓝牙设备上你的代码工作都可以正常工作

为了得到教团我建议去这个link.sudo ./st会扫描附近的ble divices

https://github.com/carsonmcdonald/bluez-experiments

大佬总结

以上是大佬教程为你收集整理的如何在Linux x86上使用C对蓝牙LE设备进行编程?全部内容,希望文章能够帮你解决如何在Linux x86上使用C对蓝牙LE设备进行编程?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。