找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 17813|回复: 38

NXT 蓝牙之间传输问题

  [复制链接]
发表于 2011-2-17 21:08:22 | 显示全部楼层 |阅读模式
做Project中,这个project有20多个NXT,要求绝大多数的NXT蓝牙传输。因为NXT蓝牙传输规定1个主机NXT能最多连3个从机NXT,所以这种主从关系不能应用到整个系统中。现在要求2个NXT建立连接后,传输完message,然后断开连接,然后再跟其他NXT连接。简而言之,就是跟需要的NXT建立连接,不需要的时候断开连接。请问如何实现这种程序?
还有能不能用程序的时候才运行,不用的时候就停止运行,以达到节能的目的。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
 楼主| 发表于 2011-2-17 21:38:22 | 显示全部楼层
自己顶。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2011-2-17 22:16:11 | 显示全部楼层
坐等各位大神
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2011-2-17 22:29:07 | 显示全部楼层
是不是需要外接的软件。。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-2-17 23:16:11 | 显示全部楼层
NXTG可以做到...
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2011-2-17 23:38:45 | 显示全部楼层
回复 394069341 的帖子

请问NXT-G怎么做?

我没用过NXT-G,用的是Labview。但是两者是互通的。

能告诉我什么思路么?

现在没什么思路做这种类似开关一样的通断系统。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-2-18 10:52:29 | 显示全部楼层
应该是做不到的,在程序连接前NXT之间已经配对,一台NXT做主机只能配对3台从机,几遍是程序连接,应该也是只能连接配对过的,以上为个人猜想。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-2-18 11:21:38 | 显示全部楼层
回复 糖伯虎 的帖子

NXTG中有相应的蓝牙连接模块,是可以直接从程序上就可以断开和建立连接.
但是我不知道这种程序的labview上是怎么写的.....所以也无能为力
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-2-18 16:31:46 | 显示全部楼层
应该不行,nxc里也办不到!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2011-2-18 17:12:03 | 显示全部楼层
回复 394069341 的帖子

NXTG可以做到收取信息之后,自动断开/建立连接么?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2011-2-18 18:01:55 | 显示全部楼层
回复 糖伯虎 的帖子

恩。A连接B(从机)。
B连接C(从机)。
A与B之间的连接自动断开。
现在问题就是建立连接要手动配对。
不知道怎么可以自动蓝牙配对。
是不是要用到外加的软件?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-2-18 20:26:35 | 显示全部楼层
回复 sayidgong 的帖子

可以的,这个模块有4个功能,分别是"开蓝牙,关蓝牙,连接蓝牙,断开蓝牙" 69.jpg

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-2-18 23:23:54 | 显示全部楼层
连接蓝牙,断开蓝牙指连接通断(类似网络通讯).而不是配对.有很大的区别
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-2-19 00:33:33 | 显示全部楼层
刚才看了一下函数库,在NXC中貌似是可以做到的。
有一个这样的函数:
void SysCommBTConnection  ( CommBTConnectionType &  args  )  [inline]
它的参数args实际上是一个指向CommBTConnectionType结构的指针,定义如下:
Data Fields
unsigned int  Result
byte  Action
string  Name
byte  ConnectionSlot
其中string Name,就是提供要连接的从机的名称。

help中的示例如下:
  1. #define CONNECTION 1
  2. task main()
  3. {
  4.   CommBTConnectionType args;
  5.   args.Name = "NXT2"; // whatever the slave NXT's name is
  6.   args.ConnectionSlot = CONNECTION; // this is the desired connection slot (the above code uses 1)
  7.   args.Action = TRUE; // could use some #define with a non-zero value to connect.  0 == disconnect
  8.   if(!BluetoothStatus(CONNECTION)==NO_ERR)
  9.   {
  10.     SysCommBTConnection(args); // try to connect.
  11.     for (int i = 0; i < 2000; i++) {
  12.       NumOut(0, LCD_LINE3, args.Result);
  13.       Wait(1);
  14.     }
  15. //    Wait(5000); // let the connection get created
  16.     if (args.Result == LDR_SUCCESS)
  17.     {
  18.       // we are connected
  19.       TextOut(0, LCD_LINE1, "success");
  20.     }
  21.     else {
  22.       TextOut(0, LCD_LINE1, "failure");
  23.       NumOut(0, LCD_LINE2, args.Result);
  24.     }
  25.   }
  26.   Wait(SEC_10);
  27. }
复制代码
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-2-19 00:39:29 | 显示全部楼层
看了一下NXT-G,应该同样可以用类似的思路实现。
晓舟上面说的那四个功能中,连接蓝牙,把它的data socket打开,里面就有输入name的地方,用法和刚才的函数应该是一样的。你看一下help。
LabVIEW中的控件我估计也是一样的,不过我电脑上没安装LabVIEW,没办法帮你看了。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-11-23 12:28 , Processed in 0.091118 second(s), 21 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表