function IsRealUART(DeviceName: string): boolean;
var
DriverPath, S: string;
SR: TSearchRec;
begin
Result := false;
DriverPath := '';
if FindFirst('/dev/tty*', faAnyFile, SR) = 0 then
begin
repeat
if (SR.Name<>'.') and (SR.Name<>'..') then
begin
S := '/sys/class/tty/';
S := S + SR.Name + '/type';
DriverPath := normalize(S);
if (DriverPath<> '') then
begin
if fpReadString(DriverPath, S) <> -1 then
begin
if S = '4' then
begin
Result := true;
Break;
end;
end;
end;
end;
until FindNext(SR) <> 0;
FindClose(SR);
end;
end;
begin
if IsRealUART('ttyS0') then
writeln('ttyS0 is a real UART');
end.
В этом коде функция IsRealUART проверяет, существует ли устройство, основываясь на значении в файле /sys/class/tty/DeviceName/type, где DeviceName - это имя устройства, для которого выполняется проверка. Если значение равно 4, то устройство считается реальным UART.
Функция `IsRealUART` проверяет, является ли устройство UART, путем анализа значения в файле `/sys/class/tty/DeviceName/type`, где DeviceName — это имя проверяемого устройства, и если значение равно 4, считается, что это действительно UART.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.