有没有一种方法可以使用Johnny-Five发送C / C ++命令?

时间:2019-06-07 03:18:53

标签: c++ node.js esp8266 johnny-five firmata

当前使用运行J5的中央linux机器运行许多带有StandardFirmataWiFi的ESP8266。因此,与其设置一堆微控制器以独立运行,它们都启用了WiFi,并且在一台计算机的命令下运行。 到目前为止,这一直很好。我对JS非常熟悉,对C / C +不太熟悉 但是偶尔我会在C / C +中找到无法找到与J5等效的示例代码。

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

1 个答案:

答案 0 :(得分:0)

C和C ++是编译语言。这意味着您需要一个编译器才能将C或C ++代码转换为可以在处理器上运行的代码。因此,在C或C ++中没有eval(),因此没有函数可以向文本文本发送文本并将其作为C或C ++代码进行处理。

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

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

请注意,执行此类操作存在巨大的安全问题-您实际上是在允许远程程序执行ESP8266上的内容。