0

目前使用运行 J5 的中央 linux 机器运行多个使用 StandardFirmataWiFi 闪存的 ESP8266。因此,与其设置一堆微控制器来自主运行,它们都启用了 WiFi 并在单台机器的指挥下。到目前为止,这一直运作良好。我对 JS 非常熟悉,对 C/C+ 不是很熟悉 但偶尔我会在 C/C+ 中找到示例代码,但我找不到 J5 的等价物。

问题:是否可以从 Johnny-5 发出 C/C+(甚至 Python)命令?所以换句话说,不是中央机器向微控制器发出仅限 J5 的命令,有没有办法让 J5 发送 C/C+ 片段?如果是这样,那将更容易直接使用演示/社区共享代码,同时也使 JS 流利的开发人员更容易过渡到 C。

4

1 回答 1

1

C 和 C++ 是编译语言。这意味着您需要一个编译器才能将 C 或 C++ 代码翻译成可以在处理器上运行的东西。正因为如此,eval()在 C 或 C++ 中没有任何函数可以将一大段文本文本并将其处理为 C 或 C++ 代码。

因此,Johnny-Five 或其他任何东西都无法将 C 或 C++ 代码发送到 ESP8266 - ESP8266 无法运行 C 或 C++ 编译器,也无法将 C 代码转换为可以执行的东西。您可能会传输已编译的 ESP8266 代码,但这种方法有很多困难,您不应该浪费时间考虑它。

与 Javascript 一样,Python 是一种解释型语言。它有一个eval()功能,您可以将字符串作为 Python 代码执行。如果您可以安排 ESP8266 上的处理程序接收字符串然后对其进行评估,则可以从远程程序发送 Python 命令。

请注意,这样做会带来巨大的安全问题 - 您实际上是在允许远程程序执行 ESP8266 上的任何感觉。

于 2019-06-07T03:46:05.823 回答