c# - 在 Raspberry PI 上管理 Wifi 连接

标签 c# mono wifi raspberry-pi archlinux

我正致力于在一个嵌入式项目中使用 Raspberry Pi,该项目将利用 wifi 与外部设备进行通信。该设备应该能够充当设备可以连接到的独立 wifi 热点,或者在存在现有 wifi 网络的情况下,它应该连接到该网络,以便用户不必放弃他的互联网连接为了连接到设备。我计划让设备以热点模式启动,然后用户可以使用 Web 界面输入他希望设备连接到的网络的详细信息,只要指定的参数无法建立连接,它就会默认返回到热点模式。

现在我正在努力解决的技术问题是,我想在 Rapsberry Pi 上的 Arch Linux 上使用 Mono 在 C# 中运行控制软件。我正在努力寻找管理 Linux wifi 连接所需的 Apis 或库。在 Windows 上,似乎可以使用 managedwifi.codeplex.com,但它似乎与 Linux 不兼容。

我最后的手段显然是执行 shell 命令然后解析它们的输出,但考虑到这将是多么粗糙和可能不可靠,这显然是我最后的手段。

关于我应该做什么的任何想法?

附言。在使用 shell 脚本之前,我可能会考虑的另一件事是,如果它有所不同,那就是改用 Raspbian 或其他发行版。

最佳答案

  1. 实际上从托管代码调用 shell 命令并不是一个非常糟糕的主意。它们很可靠,经过很好的测试,而且大多是轻量级的,有时只是内核或其他模块功能的包装器。这似乎也是 Node.js 模块在想要访问低级或与网络相关的内容时使用的相同方法。例如,请参阅此源代码:node-wireless/node_modules/wireless/index.js

  2. 如果您不喜欢这种方式,总有“Interop”。与在 Windows 中使用 DllImport() 库的方式相同,在 Linux 中也可以这样做。看这里:http://www.mono-project.com/Interop_with_Native_Libraries

恕我直言,第二种解决方案不值得付出努力。调用 shell 命令足够优雅和整洁。

关于c# - 在 Raspberry PI 上管理 Wifi 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19867618/

相关文章:

asp.net apache2/nginx OutputCache问题

c# - 为无效属性或属性参数抛出什么异常?

c# - Console.Write 在由 .NET GUI 应用程序的 BackgroundWorker 执行时不起作用

c# - 如何为我的每个类创建 C# 配置文件?

c# - 在哪里可以找到 Windows 控制台 API 函数的 Linux 对应项?

c# - C# 游戏中 NPC 的异步行为

android - Android 连接 WiFi 企业网络 EAP(PEAP)

iphone - 查找可用的 Wi-Fi 网络

android - 如何在 Android 中更新 WiFi 配置的频率?

c# - 如何从 winform 启动 Windows 通用应用程序