I have a string:
string s="digitalWrite(8,LOW);"
Is there any way to run it as a code?
I have a string:
string s="digitalWrite(8,LOW);"
Is there any way to run it as a code?
This is actually pretty simple:
if (s == "digitalWrite(8,LOW);") {
digitalWrite(8,LOW);
}
Obviously, it will not work is s
contains any other string... If you
want something more general, that is able to interpret a wide range of
possible commands, you will have to define a language, and write an
interpreter for that language. From the example you give, it seems you
would like your language to look like C++. This is most likely a bad
design choice. If you want an interpreter that understands the whole C++
language: forget it. You will never fit something this big into an
Arduino Uno.
Here is, for inspiration, a very simple interpreter I wrote that understand the following commands:
mode <pin> <mode>: pinMode()
read <pin>: digitalRead()
aread <pin>: analogRead()
write <pin> <value>: digitalWrite()
awrite <pin> <value>: analogWrite()
echo <value>: set echo off (0) or on (1)
You can use it a basis for writing your custom interpreter. Otherwise you can do a Web search for “Arduino interpreter”: you should be able to find interpreters implementing a wide variety of languages, including compact binary languages (Firmata), Forth (another one), Lisp, Basic, and even a C-like language.