как разрешить доступ к устройству ttyUSB* в программе Lazarus без вмешательства пользователя (без ввода пароля и без запуска терминала)?
Я использую USB-UART адаптер; из программы Lazarus обращаюсь к нему как к устройству с именем ttyUSB0.
Для доступа к ttyUSB0 из программы предварительно требуется
-подключить устройство к USB
-открыть терминал и ввести две строки: команду доступа и пароль,
получается это также и в одной строке:
- Код: Выделить всё
echo "1234" | sudo -S 666 /dev/ttyUSB*
После отключения-подключения адаптера доступ необходимо обеспечивать снова.
Пробовал следующее:
- Код: Выделить всё
procedure TForm1.btAccessClick(Sender: TObject);
var
proc: TProcess;
begin
proc:=TProcess.Create(nil);
try
proc.Options:=[poUsePipes,poStderrToOutPut];
proc.CommandLine:='/bin/echo "b747" | sudo -S /bin/chmod 666 /dev/ttyUSB*';
proc.Execute;
finally proc.Free; end;
end;
Пробовал также без указания пути /bin/ - не работает.
Интересует пример или ссылка на решение, или скорректированный приведенный выше код.
Общие соображения, например, попробовать RunProcess() или /bin/bash, не требуются.
Спасибо.