|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.07.2021, 21:31 | #11 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,657
|
Что-то я не понимаю. Строка - это и есть массив байтов. Попробуйте ничего никуда не переводя передать, к примеру, строку '1234' - что примет ?
Что значит "байт сдвигается на единицу?" Вместо байта 30 принимается, к примеру, 60 или наоборот? А не может ли один из портов быть настроенным на 9-битный режим? Если иметь осциллограф или лог. анализатор, то проблема решается просто, "как 2 байта переслать" |
20.07.2021, 10:38 | #12 |
Пользователь
Регистрация: 15.09.2013
Сообщений: 12
|
Передаю, сразу строку без кодирования
|
20.07.2021, 11:15 | #13 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,657
|
Прекрасно! Закономерность прослеживается.
Принятый байт проинвертирован и сдвинут влево на 1 позицию. Вы передаёте строку, а принятые байты интерпретируете как числа? А если без преобразования? Строка => Строка ? В С# не секу совершенно, поэтому в каком месте глюк - сказать не могу. Это учебная задачка - или по работе? Можно (и нужно) попробовать при тех же настройках портов погонять вашу связку портов какой-нибудь стандартной прогой, в инете они есть. Но скорее всего, это не аппаратный глюк. Если уж совсем никак, то я бы составил "словарь" - переданному байту X соответствует принятый Y, и уж по нему перекодировал бы обратно. Но это - "костыли" на крайний случай. А больше ничего не приходит в бошку. Когда всё это под рукой, такие вещи решаются несложно. --------------------- А СОМ-порты реальные - или USB-COM? Последний раз редактировалось digitalis; 20.07.2021 в 11:25. |
20.07.2021, 11:30 | #14 |
Пользователь
Регистрация: 15.09.2013
Сообщений: 12
|
К сожалению, эта закономерность прослеживается не всегда, при повторном запуске, возможны изменения чисел в рандомном порядке.
Передача и так уже идёт без всяких преобразований. Порты реальные |
20.07.2021, 12:06 | #15 | |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,657
|
Кабель поменять...
А вообще - взять осциллограф и посмотреть - что там происходит. Цитата:
Последний раз редактировалось digitalis; 20.07.2021 в 22:00. |
|
20.07.2021, 20:10 | #16 |
Форумчанин
Регистрация: 25.01.2015
Сообщений: 472
|
Существуют программы - мониторы портов. С их помощью можно наблюдать принимаемые и передаваемые данные.
Лично я пользовался COM Port Toolkit. Правда, устанавливал его ещё когда программа была совсем бесплатной. Существуют и другие, но за ненадобностью уже не слежу за ними. Работать с мониторами просто - выбираете порт, настраиваете формат обмена, нажимаете "подключиться". Теперь видите весь обмен. Т.е. увидите отправку, приём. Сверка покажет, в какой части программы искать ошибку - в передаче или в приёме. |
20.07.2021, 23:45 | #17 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,063
|
Naska_Igorevna, порты и кабель тестировали программой Terminal 1.9b?
Проведите тест этой программой.
I am not a wizard, I am just learning.
|
21.07.2021, 14:24 | #18 |
Пользователь
Регистрация: 15.09.2013
Сообщений: 12
|
Всем спасибо за участие, проблема была в железе, а не в программе
|
21.07.2021, 15:25 | #19 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,657
|
"Так вот почему не стреляло - не заряжено было !"
|
21.07.2021, 20:48 | #20 |
Форумчанин
Регистрация: 25.01.2015
Сообщений: 472
|
Раз оба COM порта находятся на одном компьютере, то можно и их и кабель связи между ними эмулировать программно - com0com
тут эмулятор https://sourceforge.net/projects/com0com/ http://com0com.sourceforge.net тут небольшие пояснения (среди прочих описаний) https://habr.com/ru/company/inforion/blog/445798/ К чему это я - какой-то приём данных присутствовал, т.е. обмен существовал. И я сомневаюсь, что дело не в программе. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите, пожалуйста, найти ошибку в коде (найти сумму факториалов чётных чисел в заданном диапазоне) | kris14 | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 25.10.2017 15:42 |
Помогите найти ошибку пожалуйста | никита134245 | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 28.12.2015 12:53 |
C# пожалуйста помогите найти ошибку | Olgazag | Свободное общение | 16 | 11.12.2013 07:33 |