Есть ли способ отправить команды C / C ++, используя Johnny-Five? - PullRequest
0 голосов
/ 07 июня 2019

В настоящее время работает ряд ESP8266, прошитых с помощью StandardFirmataWiFi с использованием центральной машины Linux, работающей под управлением J5. Таким образом, вместо того, чтобы настроить несколько микроконтроллеров для автономной работы, все они поддерживают WiFi и находятся под управлением одной машины. Пока это работает очень хорошо. Я очень знаком с JS, не очень знаком с C / C + Но иногда я нахожу пример кода в C / C +, для которого я не могу найти эквивалент J5.

Вопрос : Можно ли выполнять команды C / C + (или даже Python) из Johnny-Five? То есть, другими словами, вместо того, чтобы центральный компьютер выдавал только микроконтроллеры команды J5, есть ли способ, чтобы J5 отправлял фрагменты C / C +? Если это так, это облегчит работу непосредственно с демо / общим кодом, а также облегчит JS-беглым разработчикам переход к C.

1 Ответ

0 голосов
/ 07 июня 2019

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.

...