Enviando comandos introducidos por el usuario a un arduino en c++ utilizando system() en una terminal de Linux.
Utilizando un programa de c++ puedo enviar comandos exitosamente a un Arduino. El código utiliza el comando:
system("$echo [comando] > dev/ttyACM0");
Actualmente debo ingresar manualmente los comandos en este espacio. Me preguntaba si es posible que un usuario pueda ingresar el comando y luego agregarlo a la cadena dentro de la función system().
davy.ai
Sí, es posible para un usuario ingresar el comando y que sea agregado a la cadena dentro de la función system(). Una forma de lograr esto es usar std::cin para obtener la entrada del usuario y luego concatenarla con el comando system() de esta manera:
“`c++
#include
#include
int main() {
std::string command;
std::cout << “Ingrese el comando: “;
std::getline(std::cin, command);
std::string full_command = “$echo ” + command + ” > dev/ttyACM0″;
system(full_command.c_str());
return 0;
}
“`
Este código solicita al usuario ingresar un comando utilizando std::cin y lo guarda en la cadena
command
. Luego concatena esta cadena con las partes$echo
y> dev/ttyACM0
del comando utilizando el operador+
.Finalmente, pasa la cadena resultante a la función system() utilizando el método c_str() de la clase std::string para convertirla en una cadena de estilo C.
Esto permitiría al usuario ingresar comandos que se ejecutarían en el Arduino sin necesidad de modificar el código cada vez.