Я хочу открыть сессию SSH для моего Raspberry Pi и запустить простую команду echo 0=+10 > /dev/servoblaster
в какое время я хочу (значит не использовать system("ssh [email protected] echo 0=+10 > /dev/servoblaster")
потому что требуется время, чтобы снова запустить ssh). Какой самый простой способ в C ++?
Для отправки простых команд управления ssh — это, по меньшей мере, излишество.
Люди обычно используют простой последовательный порт для этого. Это можно сделать несколькими способами, используя такие библиотеки, как QtSerialPort, или просто пройдите ручные настройки termios.
Вы можете использовать «gserial» для получения последовательного порта через USB-соединение и использовать его как обычный последовательный порт.
Я не использовал это, но это выглядит многообещающим.
Предполагая, что вам нужна только односторонняя связь, откройте соединение ssh с FILE *ssh = popen("ssh [email protected]", "w")
вместо system
, Это даст вам возможность писать, например, fprintf(ssh, "echo 0=%#d > /dev/servoblaster", 10);
, Соединение ssh будет доступно, пока вы pclose(ssh);
в какой-то более поздний момент.
Если вам нужно прочитать обратно, вам нужно будет открыть обе стороны трубы, что требует fork
Jobbie «. Вы могли бы начать с этого примера, в таком случае.
Я пишу программу на C ++ для управления сервомотором Raspberry Pi с помощью приведенной выше команды, и как я могу получить доступ и запустить команду для Raspberry Pi без ssh?
Вы можете получить доступ и запустить команды для управления сервомотором от Raspberry Pi, используя ОСТАЛЬНОЕ API предоставлен WebIOPi.