我有一个处于 AdHoc 模式的Wifly 模块(即它创建自己的本地 wifi 网络),我想在我的 iOS 应用程序中编程连接到 Wifly 并来回发送数据的能力。
从计算机与 Wifly 通信时,您必须通过终端仿真器发送命令。有谁知道如何从 iOS 应用程序执行此操作?
谢谢
我有一个处于 AdHoc 模式的Wifly 模块(即它创建自己的本地 wifi 网络),我想在我的 iOS 应用程序中编程连接到 Wifly 并来回发送数据的能力。
从计算机与 Wifly 通信时,您必须通过终端仿真器发送命令。有谁知道如何从 iOS 应用程序执行此操作?
谢谢
您(或您的用户)首先需要在 wifi 设置中手动连接到 ad-hoc Wifly 网络。然后,要从您的应用程序与 Wifly 通信,您需要打开 TCP 或 UDP 套接字并通过它发送消息。我使用了优秀的 CocoaAsyncSocket 库来做到这一点: https ://github.com/robbiehanson/CocoaAsyncSocket
正确配置 Wifly 无线电是最困难的部分,文档非常可怕。但这是我网站上的一个示例配置,适用于 iPhone 应用程序: http ://www.curiousmarc.com/dome-automation/building-marcduino-boards/setting-up-the-wifly-radio
编辑 08/2014:新的 WiFly 固件 4.01 及更高版本已弃用 ad-hoc,WiFly 现在可以配置为真正的接入点。让生活更简单。WiFly 的新配置说明在我上面的网站上。其余的保持不变,打开一个 TCP 套接字然后离开。您发送的内容会输出到 WiFly 上的串行端口。
编辑 03/2017:我在连接到 WiFly 时遇到了可靠性问题,它在接入点模式下非常不稳定。切换到更好的 Xbee S6B 无线电解决了通信问题。
使用 Wifly,一旦您的 iOS 设备连接到 wifly Ad-Hoc 网络(并且它可以通过“设置”,在您的应用程序外部),您的应用程序可以在端口 2000 上向 Wifly 本地网络 ip 发起 TCP 套接字客户端(通过默认),从那里,您可以正常进行,就好像您通过串行+终端进行通信一样
使用已建立的 TCP Socket,您可以通过将 $$$ 写入 TCP Socket 流,将 wifly 传递到“CommandMode”(如果您想远程配置它),或者您可以简单地通过向流发送数据来与它通信。
注意:如果您不知道您的wifly的本地IP地址,您可以使用“CommandMode”通过串口进行配置。