|
|
|
Виртуальный com порт
|
|||
|---|---|---|---|
|
#18+
Приветствую. Тема для меня новая, надо вникнуть в процесс работы с com портом, что бы принимать с него данные. Тут прошу совета о том, какими виртуальными средствами можно воспользоваться для эмуляции com портов, что бы имитировать работу по соединению, приему данных и т.п., ибо физически в мой ноут порты никак не добавить)) Может кто заморачивался за такое и сможет что-нибудь подсказать ? Был бы признателен)) Добавлено через 5 минут з.ы. Какие-то средства конечно гуглятся, но тут хочется больше личного опыта услышать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2018, 10:47 |
|
||
|
Виртуальный com порт
|
|||
|---|---|---|---|
|
#18+
korshunПриветствую. Тема для меня новая, надо вникнуть в процесс работы с com портом, что бы принимать с него данные. Тут прошу совета о том, какими виртуальными средствами можно воспользоваться для эмуляции com портов, что бы имитировать работу по соединению, приему данных и т.п., ибо физически в мой ноут порты никак не добавить)) Может кто заморачивался за такое и сможет что-нибудь подсказать ? Был бы признателен)) Добавлено через 5 минут з.ы. Какие-то средства конечно гуглятся, но тут хочется больше личного опыта услышать. Два варианта... 1.Есть проги-утилиты, что мапят виртуальный com port...в линуксе это socat...в винде не знаю. 2.Покупаете в любом компьютерном магазине типа https://www.google.com/search?q=usb com&tbm=isch&tbo=u&source=univ&sa=X&ved=0ahUKEwik447yxrvZAhVLVSwKHceIAboQsAQILA&biw=1024&bih=599 Вставляете в USB ...У Вас появляется com port.(В линуксе сразу появляется...в винде драйвера надо) Второе предпочтительнее ибо ведь дальше вам надо будет к com порту устройство присоеденить.(Весы считыватели маг.карт rasberyy и т.д)...и сним работать по rs-232..Вот к этому usb-rs232 и будете присоединять rs-232 устройство. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2018, 10:58 |
|
||
|
Виртуальный com порт
|
|||
|---|---|---|---|
|
#18+
Спасибо. Вариант с переходником конечно предпочтительнее, но те программы, которые его имитируют, способны так же имитировать поток данных с этого виртуального порта ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2018, 13:16 |
|
||
|
Виртуальный com порт
|
|||
|---|---|---|---|
|
#18+
Плодить темы не буду, продолжу тут) Порты настроил, библиотеку подключил, получилось следующее: Отправляем данные в порт: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Тут же принимаем: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. Проблема такая: при первом проходе цикла идет какой-то кривой прием: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Все следующие попытки отправки\чтения дают нормальный результат: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. Почему так получается ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2018, 10:21 |
|
||
|
Виртуальный com порт
|
|||
|---|---|---|---|
|
#18+
korshun, Я сильно не вникал в Ваш текст...Увидел одно...У Вас однопоточно.. Работа с портом java предполагает вы читаете в основном потоке...а пишите в порт в другом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2018, 10:41 |
|
||
|
Виртуальный com порт
|
|||
|---|---|---|---|
|
#18+
irbis_alkorshun, Я сильно не вникал в Ваш текст...Увидел одно...У Вас однопоточно.. Работа с портом java предполагает вы читаете в основном потоке...а пишите в порт в другом. И в догонку Вот это ==== read: test1test2test3 На самом деле вполне нормальная штука ...Ибо порт асинхронный....Он весь ответ деожал в буыере а потом сбросил Вам...и для этого есть протокол работы с устройством...как правило это стартовый байт stx(типа 0x02) стоповый enx(типа 0x03) Ещё контрольная сумма CRC... И тогда (stx)test1(enx)(crc)(stx)test2(enx)(crc)(stx)test3(enx) Легко распарсить пакеты....разделив на фрагменты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2018, 10:51 |
|
||
|
Виртуальный com порт
|
|||
|---|---|---|---|
|
#18+
Попробовал прочитать побайтово: Код: java 1. 2. 3. 4. На выходе нет ничего кроме того, что я отправил: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. И т.д. Как поймать стартовые и стоповые метки ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2018, 11:07 |
|
||
|
Виртуальный com порт
|
|||
|---|---|---|---|
|
#18+
korshun, Это заложено в протокол устройства или если это ваше устройство или Вы организуете обмен...то и Вы закладываете этот протокол. Если это сделать нельзя..То 1.Хреново...возможны так или иначе недоразумения... 2.Регулируйте паузами в методе чтения из порта Thread,currentThread,sleep(50...и подбирайте задержку) Предварительно надо отрефакторрить код и писать в rs-232 в другом потоке. 3.Отказаться от java...И Попробовать на низкорурлвневом языке...в частности на винде и только на винде есть API,- открыть COM порт в эмуляции синхронном...Типа request и response.(До response..другие request игнорируются)..Если кросспоатформенное тогда не пойдёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2018, 11:29 |
|
||
|
Виртуальный com порт
|
|||
|---|---|---|---|
|
#18+
korshunКак поймать стартовые и стоповые метки ?Стартовые и стоповые биты "поймать" невозможно - это уровень железа. На уровне программы требуется понимать, что последовательный порт - поток байтов и (как-то) продумывать логику синхронизации в этом потоке. Ну или прикручивать что-то готовое. В зависимости от типа DCE могут помочь управляющие сигналы - C(arrier)D(etect), например или C(lear-)T(o-)S(end) / R(eady-)T(o-)S(end). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2018, 11:32 |
|
||
|
Виртуальный com порт
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Не изобретайте велосипед. Вот BlackBox генератор исходников отправки и получения пакетов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2018, 13:05 |
|
||
|
Виртуальный com порт
|
|||
|---|---|---|---|
|
#18+
Идите (в пешее эротическое путешествие) со своей рекламой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2018, 15:12 |
|
||
|
Виртуальный com порт
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovИдите (в пешее эротическое путешествие) со своей рекламой. "у меня сигарета из рота выпала" вы на каждое предложение использовать А вместо В , потому что А лучше решает проблему так реагируете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2018, 15:50 |
|
||
|
Виртуальный com порт
|
|||
|---|---|---|---|
|
#18+
OFFTOPIC ON Ну на предложение вместо одного велосипеда использовать Ваш велосипед - реакция вполне адекватная. Лень залезать в правила форума, но про рекламу там точно что-то было. Т.ч., лично я, полностью Basil A. Sidorov поддерживаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2018, 16:08 |
|
||
|
Виртуальный com порт
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevOFFTOPIC ON Ну на предложение вместо одного велосипеда использовать Ваш велосипед - реакция вполне адекватная. Лень залезать в правила форума, но про рекламу там точно что-то было. Т.ч., лично я, полностью Basil A. Sidorov поддерживаю. то есть предложение используй JOOQ вместо Hibernate это реклама и нарушение правил? поднимите мне веки! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2018, 17:22 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39607679&tid=2122207]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
152ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 473ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...