Widcomm蓝牙:如何打开虚拟COM

2024-03-04

我正在尝试使用 Broadcomm 的 Widcomm 蓝牙堆栈,它应该可以工作,但有一件事我仍然无法理解:当我需要通信时,如何自动打开虚拟 COM?

我正在尝试使用 SPP(串行端口配置文件),但 SDK 的文档并不是那么详尽。

拜托,我就是不能使用 32 英尺!

我封装了 API 的 SPP 服务器部分:

    [DllImport("wcbts.dll", SetLastError = false, CharSet = CharSet.Unicode)]
    internal static extern IntPtr CreateSppServer(IntPtr pStack);

    [DllImport("wcbts.dll", SetLastError = false, CharSet = CharSet.Unicode)]
    internal static extern void DeleteSppServer(IntPtr pServer);

    [DllImport("wcbts.dll", SetLastError = false, CharSet = CharSet.Unicode)]
    internal static extern bool SppServerStart(IntPtr pServer, IntPtr pszServiceName);

    [DllImport("wcbts.dll", SetLastError = false, CharSet = CharSet.Unicode)]
    internal static extern bool SppServerStop(IntPtr pServer);

    [DllImport("wcbts.dll", SetLastError = false, CharSet = CharSet.Unicode)]
    internal static extern IntPtr SppServerNotifyWindow(IntPtr pServer, IntPtr hWnd, int nMsg);

pszServiceName 是什么?我在哪里可以找到它? 还有 hWnd 和 nMsg ???

Thanks


我之前对此做出了回应,但似乎从未出现过! :-(

不管怎样,我是 32feet.NET 库的维护者和 Widcomm 支持的作者。首先,据我所知,许可证对于商业发行来说应该不成问题。请参阅 Peter Foot 的评论http://32feet.net/forums/t/2289.aspx http://32feet.net/forums/t/2289.aspx:

“32feet.NET 可免费用于商业或非商业用途。如果您使用二进制文件,则可以按原样使用该库,如果您对源代码进行修改,则需要包含 32feet.NET License.txt 文档并确保文件头未被修改/删除。”

我看看彼得是否可以在这里发表评论以提供确定性。

不管怎样,我们还没有实现对 Widcomm 虚拟 COM 端口功能的支持(这当然是可能的,尽管没有人要求它——除了你自己)。我不太喜欢虚拟 COM 端口。使用直接“套接字”连接似乎总是容易得多,而不是尝试设置 COM 端口,并尝试查找它创建的名称[1],然后必须打开 SerialPort 才能使用它,然后如果连接丢失,人们不知道,只需继续重试...只需执行以下操作就容易多了:

Dim addr As BluetoothAddress _
  = BluetoothAddress.Parse("001122334455")
'
Dim ep As New BluetoothEndPoint(addr, BluetoothService.SerialPort)
Dim cli As New BluetoothClient
cli.Connect(ep)
Dim peerStream As Stream = cli.GetStream()
peerStream.Write/Read ...

更多信息请访问http://www.alanjmcf.me.uk/comms/bluetooth/32feet.NET%20--%20User%20Guide.html http://www.alanjmcf.me.uk/comms/bluetooth/32feet.NET%20--%20User%20Guide.html

回答您的具体 Widcomm 问题。可以创建蓝牙服务的多个实例,即多个 SPP 服务(每个使用 SPP 服务类 ID),每个服务都可以提供服务名称属性以允许客户端在它们之间进行选择。在大多数情况下,这不是必需的,因此只需传递 null 或零长度字符串即可 - Widcomm SDK 文档没有说明允许的内容。至于窗口句柄,Widcomm 使用 C++ 虚拟方法(yuk——这使得directP/Invoking 几乎不可能)来实现事件/回调,大概 Figueira 先生的代码将这些回调转换为 Window 消息。

[1] 创建蓝牙虚拟 COM 端口并不简单。在 MSFT+Win32 上,不知道为 COM 端口选择了什么名称!在 MSFT+WM 上,官方 API 在许多设备类型上运行不佳。我们的非官方方法需要重新启动 IIRC。 :-(

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Widcomm蓝牙:如何打开虚拟COM 的相关文章

  • 如何通过蓝牙将文件从Android发送到电脑

    任何人都可以给出蓝牙服务器客户端的工作示例 从Android到计算机 我想将数据从 Android 手机传输到 C 应用程序 现在我使用下面的 Android 代码 效果很好 但它仍然无法将数据传输到我的计算机 可能无法写入这些数据 任何人
  • 如何将 iPhone 音频路由到蓝牙耳机

    我正在尝试使用 AVAudioPlayer AVAudioSession 和 AudioSessionSetProperty 将音频输出到蓝牙耳机 不是 A2DP 似乎有选择蓝牙耳机作为输入的函数 kAudioSessionProperty
  • Android 在我自己的应用程序中以编程方式隐藏鼠标指针

    我知道这里有一个类似的问题 以编程方式在 Android 屏幕上移动鼠标指针 https stackoverflow com questions 7695258 moving mouse pointer on android screen
  • Android 和 iOS 如何扫描蓝牙信标而不出现电池问题?

    如果我想在 Android 或 IOS 中开发自己的 iBeacon 服务 它必须实用 这意味着客户可以使用我的服务而不会出现电池短缺的情况 我认为即使 iBeacon 技术基于蓝牙低功耗 它仍然可能缺乏电池 这是因为应用程序必须始终运行才
  • OS X 蓝牙编程

    我想创建 OS X 应用程序以通过蓝牙与 Lego Mindstorms NXT 2 0 配合使用 我尝试用 Objective C 和 Python 来实现 但是两者都存在一些问题 关于目标 C 我只发现this https develo
  • 在托管代码中 P/Invoking SetWindowLong 和 CallWindowProc(紧凑框架)

    我正在尝试使用 SetWindowLong 覆盖 winmobile 任务栏的窗口过程 以便捕获和阻止按下的按钮 我创建了一个类 其中包含一种用于重写的方法和一种用于恢复窗口过程的方法 MessageReceived 方法是我用来替换任务栏
  • 连接关闭且应用程序终止后,BLE 堆栈反复重新连接到外设

    我有一个应用程序 它打开与 BLE 设备的短暂连接 执行一些特征读取和写入 然后断开并关闭连接 应用程序使用 autoReconnect false 并且设备未配对或绑定 我看到 Android 的一些非常奇怪的行为 它似乎反复且意外地重新
  • 没有 GameKit 的 iOS 蓝牙

    我已经知道使用 GameKit 我只能连接到运行相同应用程序的其他 iOS 设备 但我想连接到 Parallaz EasyBluetooth 芯片来发送和接收命令 因此我需要不同的解决方案 我想有一些针对越狱设备的库 但我不知道 你能给我一
  • 三星Android BLE多次读/写

    在 Samsung 4 2 到 4 3 BLE 应用程序迁移指南中 http developer samsung com ble http developer samsung com ble 它说 堆栈和 F W 的同步性质没有受到影响 那
  • 在 Android 4.2.2 和 4.3 上关闭 BluetoothSocket 时出现致命信号 11 SIGSEGV

    我的应用程序在 Android 2 3 3 到 4 1 2 下运行良好 但自从 Android 4 2 2 和 Android 4 3 以来 我有一个 fatal signal 11 SIGSEGV at 0x00 当我关闭蓝牙插座时 我查
  • Mac OS 上的 pybluez 安装错误

    我尝试安装pybluez使用以下命令 pip install pybluez sudo easy install pybluez 但对于这两个命令我最终都会出错 环境 Mac OSX 10 9 1 Python 2 7 点日志 cc fno
  • iOS:无法让蓝牙管理器工作

    警告 我知道私有框架不会在 App Store 中流行 我尝试使用 BluetoothManager 框架来让我 1 检查设备上是否启用了蓝牙 2 如果未启用 则将其打开 我可以按照找到的说明成功加载蓝牙管理器here https stac
  • 如何从 obj-c / ios 中的堆栈跟踪获取源代码行

    I use NSSetUncaughtExceptionHandler将堆栈跟踪打印到 iPhone 中的本地文件 该文件将在下次应用程序启动时发送到我们的服务器 然后我可以检查异常数据并修复错误 在某些崩溃中 我有模块名称和引发异常的函数
  • 如何避免将相同的片段添加到堆栈中

    我需要一些帮助 他们以这种方式将片段添加到活动中 问题是每次调用 openFragment 时都会创建片段并添加 这是显而易见的 问题 我做了什么修改 这样它只能添加一次片段 在下次使用相同片段标签的调用时 它将什么也不做 案例 第一次按下
  • 访问 Linux 线程(pthreads)的本地堆栈

    我目前正在实现一个使用多线程但对总内存消耗有要求的应用程序 我希望有一个主线程执行 I O 并有几个工作线程执行计算 目前 我在主堆栈上有几个可供工作人员访问的数据结构 我使用 OpenMP 进行工作分配 由于主 工作者模式不能很好地与 O
  • 我可以在 iOS 中测量蓝牙信号强度吗?

    Can I 测量信号强度我的 iPhone 范围内的蓝牙设备数量 基本上我想要做的是扫描范围内的设备列表 然后查看哪个设备的信号强度最高 在 iOS 中是否可行 如果可以 我该怎么做 是的 有一种方法可以测量蓝牙低功耗 4 0 的信号强度
  • 如何检查 uiviewcontroller 是否存在于 uinavigationcontroller 堆栈中

    我有一个UINavigationController 我必须从 a 中弹出一个视图UINavigationController并将其替换为另一个视图 我们如何才能搜索到一个UIViewController对象并将其替换为另一个 当我打印时
  • Android Lollipop BLE 扫描 - 获取没有重复的外设

    Android Lollipop 引入了一种扫描 BLE 外设的新方法 通过蓝牙扫描仪 http developer android com reference android bluetooth le BluetoothLeScanner
  • 保存和恢复陷阱状态?管理多个陷阱处理程序的简单方法?

    有什么好的方法可以覆盖bash陷阱处理程序不会永久破坏可能已设置或尚未设置的现有处理程序 动态管理任意陷阱例程链怎么样 有没有办法保存陷阱处理程序的当前状态 以便以后可以恢复 在 Bash 中保存和恢复陷阱处理程序状态 我将提交以下堆栈实现
  • java 中的蓝牙 (J2SE)

    我是蓝牙新手 这就是我想做的事情 我想获取连接到我的电脑上的蓝牙的设备信息并将该信息写入文件中 我应该使用哪个 api 以及如何实现 我遇到了 bluecove 但经过几次搜索 我发现 bluecove 不能在 64 位电脑上运行 我现在应

随机推荐

  • 如何在 C# 中运行同步计时器?

    我正在编写一个应用程序 它使用计时器在屏幕上显示某些事件发生时的倒计时 我想重用计时器 因为它对于应用程序中的一些操作会很方便 因此我指定了要环绕计时器的单词 例如 以下函数调用 CountdownTimer 90 You have unt
  • 为 git 子模块指定分支?

    我已经将 git 子模块添加到我的 git 存储库中并且工作正常 在我的 父 存储库中 我创建了一个功能分支 我的特征这需要对子模块进行一些更改 但我不想影响使用相同子模块的其他团队 因此我在子模块存储库上创建了相应的功能分支子模块功能有一
  • 如何在路由器上注册单个视图(不是视图集)?

    我正在使用 Django REST 框架 并一直在尝试创建一个返回少量信息的视图 并将其注册到我的路由器上 我有四个存储信息的模型 它们都有一个created time场地 我正在尝试创建一个返回最新对象的视图 基于created time
  • 使用 JSoup 作为服务显示超链接的 ListView

    我最近需要收集并显示超链接列表 这很有帮助example https stackoverflow com a 73160763 230513说明使用jsoup questions tagged jsoup and a Task
  • 观看 MongoDB 在 Python 中异步更改流

    我如何设置一个 python 服务来 异步 监视 mongodb 的更改流 我能找到的一切mongodb com https www mongodb com developer quickstart python change stream
  • 查询具有大数据集的 Firebase 数据库非常非常慢

    我在 Android 应用程序上使用 Firebase 数据库 正常情况下 它工作得很好 但是当数据库变得越来越大时 查询性能就会变得越来越差 我在数据库上添加了大约 5k 记录 在 elk 和 su 节点下 然后我在数据库上查询 在 cu
  • 如何处理反应中的多组单选按钮?

    所以我从后端获取一些数据 看起来像这样 data status 1 title Title 1 status 2 title Title 2 status 1 title Title 3 status 3 title Title 4 它们将
  • 移动多列,每列具有不同的偏移量

    我有一个像这样的 data table date a b c d e f 2008 1 5 3 6 9 8 2008 3 6 2 1 5 8 2008 2 8 3 4 3 0 2009 5 5 3 6 9 8 2009 3 3 2 2 5
  • Javascript 日期方法不一致 - getDate 与 getMonth

    这让我昨晚有点头疼 我想了解为什么 Date 对象中的 getDate 方法是基于 1 返回 1 31 的值 而 getMonth 方法是基于 0 返回 0 11 我想知道为什么同一对象的方法存在这种不一致 我理解为什么现在很难改变这种行为
  • Jquery StopPropagation 在 Firefox 中不起作用

    我的这段代码可以在 Safari 和 Chrome 上运行 但不能在 Firefox 中运行 Firefox 是否有 StopPropagation 问题 function Setup drop down menu dropdown tog
  • 选择什么数据类型 json 还是 jsonb 或者 text

    我想存储一个大的 json 哈希 或内容 随心所欲地称呼它 大 是指超过 1000 个键值对的东西 我不想在该 json 字段上进行任何搜索 我只想从数据库中检索它并将其传递给 JavaScript 进行解析并构建可视化结果 在 Postg
  • 如何使用适用于 Yii2 的 AWS SDK 将图像上传到数字 Ocean Spaces?

    由于 Digital Ocean Spaces API 与 AWS SDK 兼容 因此如何 使用 AWS SDK 以编程方式将图像上传到 Digital Ocean Spaces 对于 Yii2 这是我的详细信息 Good we have
  • 如何在远程服务器上启动 NodeJS 进程?

    我创建了一个简单的 NodeJS 应用程序 现在已将其移至 AWS 中的服务器 我可以 ssh 进入服务器并启动应用程序 但显然只要我关闭终端 进程就会停止 如何启动 NodeJS 应用程序并在关闭终端后保持其运行 尽管有特定的解决方案 例
  • psql 在 postgres 中将默认的 statements_timeout 设置为用户

    我想设置一个默认值statement timeout用于访问 postgres 数据库 配置环境变量后 我现在将它放在了哪里psql将我记录到我喜欢的数据库和表上 然而 当我探索其中的几个表时 我希望语句超时约为一分钟 只需输入即可完成此操
  • 为什么我没有得到正确的输出? [复制]

    这个问题在这里已经有答案了 int func int main int i int ptr ptr func for i 0 i lt 10 i printf d ptr ptr int func int arr 10 int i for
  • 在 Chrome 中使用设备模式时如何禁用长按时的上下文菜单?

    如何在使用时禁用长按上下文菜单设备模式 https developers google com web tools chrome devtools device mode 在 Chrome 中 我的意思是这个上下文菜单 我问这个是因为我想调
  • LINQ、Skip、OrderBy 和 SQL Server 2000

    我正在访问使用 LINQ to SQL 自动生成的数据上下文对象 SQL 数据库是一个SQL Server 2000 盒子 我正在使用的类是 SQL 视图 我有一个类似的声明 query context OrderDetails Where
  • Spring AOP 通用类型

    我是 Spring 的新手 我遇到了一个方面的问题 切入点是一个使用通用类型的接口 public interface DaoJdbc
  • 每个请求 DbContext 都会发生随机错误

    我的 mvc ef unity 应用程序在较高负载 每秒 10 个以上请求 下遇到随机错误 每天几个 连接未关闭 连接的当前状态为正在连接 计数查询上的死锁 无显式事务 已添加具有相同密钥的项目 在 System Data Entity D
  • Widcomm蓝牙:如何打开虚拟COM

    我正在尝试使用 Broadcomm 的 Widcomm 蓝牙堆栈 它应该可以工作 但有一件事我仍然无法理解 当我需要通信时 如何自动打开虚拟 COM 我正在尝试使用 SPP 串行端口配置文件 但 SDK 的文档并不是那么详尽 拜托 我就是不