| BG Development · За реклама · За контакти |
Помощ Търсене Потребители Календар Правила |
| Здравей! ( Включване | Регистриране ) |
| Страници: (3) [1] 2 3 ( Първото ново мнение ) | ![]() ![]() ![]() |
| thrawn |
Публикувано на: 28-10-2025, 16:13
|
||
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3765 Регистриран на: 17.01.17 |
Цял ден се мъча да получа списък със серийните портове на Linux машина. Проблемът е, че SerialPort.GetPortNames() не ги вижда. Ако се опитам да отворя порт който знам, че е там (например /dev/ttyS0) се отваря успешно. Това е инсталирано на машината:
|
||
| ici |
Публикувано на: 28-10-2025, 16:39
|
![]() Име: Ивайло Илчев Група: VIP Ранг: Почетен член Мнения: 18938 Регистриран на: 06.06.04 |
Ами мен лично .NET ме отвращава, но на Питон PySerial си ги вижда, а за C++ boost::asio проверявам /dev/ttyS* и /dev/ttyUSB* и няма проблем.
-------------------- Ние не сме в една лодка, ние сме в една буря. Лодките са различни.
Следващият път когато се почувстваш ненужен, грозен и недооценен, помни че освен това си и тъп. |
| thrawn |
Публикувано на: 28-10-2025, 16:50
|
||||
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3765 Регистриран на: 17.01.17 |
И мен ме отвращава, ама няма особен избор сега. Всичко е ОК с портовете. Работят си, имам права и се менаджират коректно от udev (добавям постоянни линкове за usb устройствата). Виждам си ги под java, но .net не ги вижда. Конкретно функцията GetPortNames() връща празен масив. Но въпреки, че не се вижда портът, ако се опитам да го отворя като изрично посоча името му се отваря без проблеми (под .net). Сега свалих платформата директно от MS и пак е същата работа
Между другото с chatgtp циклим в кръг - той твърди че трябва да имам libSystem.IO.Ports.Native.so която да ползва libudev. На една от платформите с които се мъча я има билиотеката но не ползва libudev
Но и с нея не става. След това твърди, че от версия 6 в платформата тая библиотека не била отделна и ми казва да сваля официалната исталация защото моята била орязана ... Това мнение е било редактирано от thrawn на 28-10-2025, 16:55 |
||||
| ici |
Публикувано на: 28-10-2025, 17:13
|
![]() Име: Ивайло Илчев Група: VIP Ранг: Почетен член Мнения: 18938 Регистриран на: 06.06.04 |
С libc.so.6 аз имах големи болки които не можах да реша. Исках да направя портабъл приложение за Linux със PyInstaller, но работеше само на моята машина заради libc.so.6. В крайна сметка го направих като *.pyz, прави venv, качва с pip каквото му трябва и така работи.
-------------------- Ние не сме в една лодка, ние сме в една буря. Лодките са различни.
Следващият път когато се почувстваш ненужен, грозен и недооценен, помни че освен това си и тъп. |
| thrawn |
Публикувано на: 28-10-2025, 18:50
|
||
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3765 Регистриран на: 17.01.17 |
Вече го докарахме до тук
|
||
| akrachev |
Публикувано на: 28-10-2025, 20:15
|
|
Име: акрачев Група: Потребител Ранг: Почетен член Мнения: 1204 Регистриран на: 27.11.09 |
ОК - тогава правиш проба да инициализираш порт - ако има грешка - значи няма!
-------------------- |
| thrawn |
Публикувано на: 29-10-2025, 06:48
|
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 3765 Регистриран на: 17.01.17 |
Тествал съм. Знам, че имам /dev/ttyS0 на машината. GetPortNames() връща празен масив. Въпреки това пробвам да отворя порт с това име и да пратя нещо по него. Портът се отваря и данните се пращат.
Днес смятам да свалям версията на платформата под 6 - 5, 4, 3 и 2 за да проверя теорията на бота за библиотеката и да видя дали в някоя версия на платформата тя няма да използва наистина libudev за да ги изброява. Това мнение е било редактирано от thrawn на 29-10-2025, 06:50 |
| relax4o |
Публикувано на: 29-10-2025, 15:26
|
||||
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 2841 Регистриран на: 04.04.07 |
Предполагам си reference-нал правилната версия на System.IO.Ports в проекта. Аз мога да потвърдя под Mac (въпреки, че е Unix, е отделен метод, който чете, така че не е доказателство), с .NET 9 GetPortNames() ми връща устройства.
По-късно ще тествам и на линукс машината, отново с 9 (а може и с 8) да видим какво ще стане и дали ще върне нещо. -------------------- Бисери :D
|
||||
| ici |
Публикувано на: 29-10-2025, 15:53
|
![]() Име: Ивайло Илчев Група: VIP Ранг: Почетен член Мнения: 18938 Регистриран на: 06.06.04 |
Едва ли имаш истински сериен порт, по-скоро имаш някакво USB CDC устройство с което няма проблеми.
Това мнение е било редактирано от ici на 29-10-2025, 15:54 -------------------- Ние не сме в една лодка, ние сме в една буря. Лодките са различни.
Следващият път когато се почувстваш ненужен, грозен и недооценен, помни че освен това си и тъп. |
| relax4o |
Публикувано на: 29-10-2025, 16:36
|
||||||||
![]() Име: Група: Потребител Ранг: Почетен член Мнения: 2841 Регистриран на: 04.04.07 |
Това вижда dmesg, но SerialPort.GetPortNames() нищо не вижда и при мен под Линукс. Предполагам, че трябваше да ми върне поне ttyS0 в случая. Иначе има една архивирана библиотека NetCoreSerial, но при нея SerialDevice.GetPortNames() просто връща списък с всички /dev/ttyS0-N. Не съм сигурен дали това би ти помогнало за твоя случай. -------------------- Бисери :D
|
||||||||
Страници: (3) [1] 2 3 |
![]() ![]() ![]() |