|
1 / 1 / 0
Регистрация: 14.08.2017
Сообщений: 61
|
|||||||||||
Подключение LinPAC LP-5231 к ПК через Com-Port10.04.2023, 09:26. Показов 1337. Ответов 8
Всем доброго времени суток!
У меня имеется промышленный ПК LinPAC LP-5231 и обычный компьютер. На LinPAC стоит Linux, на обычном стоит винда. Мне нужно заставить их дружить через com-port. Вроде бы и дружат, но как-то не серьёзно. Код на си под Linux:
Код на винде пишу на шарпе:
И там и там стоит скорость 9600. А теперь самое интересное, если я со стороны винды понижаю скорость до 4800 или со стороны линукса повышаю до 19200, то всё работает как надо. Как так? Почему на 9600 оно не может работать? На линуксе пробовал конфигурировать порт через stty на 9600 и это не помогает. Со стороны винды стоит свисток USB-Serial CH340.
0
|
|||||||||||
| 10.04.2023, 09:26 | |
|
Ответы с готовыми решениями:
8
Подключение к Arduino через com-port Подключение проекта на C# к Proteus через Com-Port RS-232 Подключение к com port |
|
Windows must die
|
|
| 10.04.2023, 09:43 | |
|
Ядро же буферизует, поэтому нет вообще смысла ожидать, что у тебя "за один присест" придет именно нужное количество байт.
Просто заведи отдельный поток на считывание. Копи данные в циклический буфер, а как дойдешь до разделителя — выставляй флаг готовности принятой строки, чтобы в другом потоке можно было их принять. И лучше данные передавать в строковой форме, тогда можно их завершать обычным "\n". В случае с бинарными придется или городить задержки (как в доисторическом убогом модбасе, которым вменяемые люди в 21 веке точно пользоваться не будут), либо вводить условные разделители и надеяться, что в потоке данных их не встретится. P.S. А какой смысл два компа связывать по 485? Чем тебя ethernet не устраивает? Открой сокет, настрой его SEQ_PACKET, и будет тебе атомарность передачи (если, конечно, не попытаешься слишком много данных отправлять).
0
|
|
|
1 / 1 / 0
Регистрация: 14.08.2017
Сообщений: 61
|
|
| 10.04.2023, 10:12 [ТС] | |
|
Спасибо за быстрый ответ.
Связываю, потому что на винде эмулирую устройство которое будет подключаться к линуксу. Мне нужно данные получать в бинарном виде, как я это в шарпе и отправляю. Почему тогда, если я с винды отправляю 16 или меньше байт, то ret мне показывает то число, которое я отправляю с винды, а если больше 16, то разделяется сообщение на 16 + остаточные байты? Как это так ядро буфферизирует и строго на 16 байт первые?
0
|
|
|
|
||
| 10.04.2023, 10:27 | ||
|
0
|
||
|
Windows must die
|
|
| 10.04.2023, 11:20 | |
|
Если это устройство - разрабатываемое кем-то из вашей команды, то лучше сразу поменять протокол на текстовый, чтобы в будущем не было геморроя. Или завершать каждую посылку, скажем, числом 0xDEADBEEF и т.п.
Но нельзя надеяться на то, что при напряженном обмене данными пакеты будут передаваться атомарно. Не по теме: Я вот намучился с убогим модбасом: есть мастер, есть слейв. А с компьютера мне нужно читать протокол и выставлять в сеть данные. И вот как раз из-за убогости модбаса очень часто возникает ситуация, когда принимается часть пакета (т.к. ядро-то буферизует данные, ему плевать на эти задержки в 3.5 символа и т.п.). Надо будет делать аппаратный преобразователь modbus-usb (готовый вряд ли пойдет: у них протоколы обычно совершенно невменяемые, а многие еще и только под форточками работают).
0
|
|
|
754 / 351 / 90
Регистрация: 07.01.2023
Сообщений: 1,451
|
||
| 10.04.2023, 12:28 | ||
|
0
|
||
|
Windows must die
|
|
| 10.04.2023, 13:12 | |
|
Azathtot, ключевая фраза: пассивно слушаем линию! Когда пакеты слишком часто бегают, невозможно определить, где начало! Нужно на STM32 делать преобразователь. Там заодно практически аппаратно модбас можно реализовать.
Не по теме: и лишний раз пожелаю всего плохого идиотам, которые в 21 веке пихают в новые железки протокол, разработанный для аналоговых телефонных сетей 50 лет назад!
0
|
|
| 10.04.2023, 13:25 | |
|
Не по теме: ... - сказал фанат KOI8-R, появившейся 30 лет назад для 8-битных компьютеров.
0
|
|
| 10.04.2023, 16:07 | ||
|
Не по теме:
0
|
||
| 10.04.2023, 16:07 | |
|
Помогаю со студенческими работами здесь
9
Активное подключение к фтп. PORT Интернет через VPN соединение как через прокси в формате IP:PORT Через что предпочтительнее подключить монитор, через HDMI или Display Port? Переподключить подключение POTS модема, навешенного на com port 3.95 LCD модуль (parallel port) подключение к ESP 32 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|