Skip to main content
Arduino

Return to Answer

+ links
Source Link
Edgar Bonet
  • 45.1k
  • 4
  • 42
  • 81

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 (e.g. Firmata), ForthForth (another one ),Lisp , Basic , and maybe even C-like languagesa C-like language.

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 (e.g. Firmata), Forth, and maybe even C-like languages.

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 evena C-like language.

Source Link
Edgar Bonet
  • 45.1k
  • 4
  • 42
  • 81

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 (e.g. Firmata), Forth, and maybe even C-like languages.

lang-cpp

AltStyle によって変換されたページ (->オリジナル) /