catm3 2013-11-15 07:07 采纳率: 0%
浏览 1039

linux下多个主机如何同时访问同一个不支持多连的蓝牙设备

现在我有个相对昂贵的蓝牙验证仪器用于验证特定物品真实性,主机上装有验证软件,该软件识别仪器然后配合完成验证。现在多个主机安装了软件,实际操作上他们不需要单独配置验证仪器,只需要共用一个就行,但是软件必须安装,且软件不允许破解。

我想到的办法是首先仪器通过蓝牙连接到机器X,上面装有程序Y,多个主机通过局域网连接到X,主机上装有虚拟蓝牙设备,虚拟得跟真实仪器一模一样,该虚拟设备通过网络连接到X上的程序Y,进而连接到验证仪器。我的问题是这套方案具体如何实现。我虽有丰富应用程序编程经验却没有驱动程序编程经验,更没有Linux编程经验。望高人多多指教,小弟叩拜!

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-03-20 13:33
    关注

    该回答引用ChatGPT

    你可以使用一个叫做"bluetooth-proxy"的工具来实现你的方案。bluetooth-proxy是一个Linux命令行工具,可以将本地蓝牙设备连接到远程蓝牙设备。这将允许你在一台机器上连接到蓝牙设备,并通过网络共享这个连接到其他机器上。


    下面是一些基本步骤,让你可以开始配置你的系统:

    • 在机器X上安装bluetooth-proxy工具,使用以下命令:

      sudo apt-get install bluez-tools
      
    • 在机器X上启动bluetooth服务并连接到蓝牙设备:

      sudo systemctl start bluetooth
      bluetoothctl
      power on
      agent on
      default-agent
      scan on
      
    • 当你找到你的蓝牙设备时,输入以下命令来连接到它:

      pair XX:XX:XX:XX:XX:XX
      (其中XX:XX:XX:XX:XX:XX是蓝牙设备的MAC地址)
      connect XX:XX:XX:XX:XX:XX
      
    • 在机器X上设置bluetooth-proxy。在机器X上打开一个终端窗口,输入以下命令:

      sudo bluetoothctl
      agent on
      default-agent
      exit
      sudo nano /etc/systemd/system/bluetooth-proxy.service
      

      在文件中添加以下内容:

      [Unit]
      Description=Bluetooth Proxy
      Requires=bluetooth.service
      After=bluetooth.service
      [Service]
      ExecStart=/usr/bin/bluetoothctl -s /etc/bluetooth/serial.conf
      Restart=always
      User=root
      [Install]
      WantedBy=multi-user.target
      

      保存并关闭文件。

    • 在机器X上创建一个serial.conf文件来配置bluetooth-proxy,输入以下命令:
      sudo nano /etc/bluetooth/serial.conf
      
      在文件中添加以下内容:
      [General]
      Enable=Source,Sink,Socket
      [Bluetooth-Serial-Port]
      Address=XX:XX:XX:XX:XX:XX
      Channel=1
      (其中XX:XX:XX:XX:XX:XX是蓝牙设备的MAC地址)
      
      保存并关闭文件。
    • 启动bluetooth-proxy服务:
      sudo systemctl daemon-reload
      sudo systemctl start bluetooth-proxy
      sudo systemctl enable bluetooth-proxy
      
      现在,你应该能够通过网络共享连接到蓝牙设备了。你需要在每个其他机器上重复步骤1和步骤3,并将serial.conf文件中的Address字段设置为机器X的IP地址。这样,每台机器都可以通过虚拟的蓝牙设备连接到机器X上的蓝牙设备。

    希望这些步骤可以帮助你实现你的方案。请记得备份你的配置文件,以免出现问题时可以恢复到原始状态。

    评论

报告相同问题?

悬赏问题

  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿