WSPR

Аватара пользователя
MiB
Сообщения: 187
Зарегистрирован: 26 фев 2021, 19:14
Позывной: R3KEE
Город: Novovoronezh
Имя: Roman
Благодарил (а): 26 раз
Поблагодарили: 19 раз

WSPR

Сообщение MiB » 28 ноя 2021, 10:36

Строка считалась целиком, ошибка не выскочила, в программе нет подтверждения в логе и нет изменений в полях (R3осталась от предыдущего считывания)
2021-11-28_10-34-07.png
в общем у меня все больше мыслей - что-то в процедуре чтения, парсинга строки...

если долго мучаться - что-то да получится, не прошло и 10 минут как поймал "удачный" обмен:
2021-11-28_10-43-21.png
в общем было выше, а в целом проблема точно не в аппаратной части и не винде.
смотреть стоит в сторону реализации чтения в программе.

Аватара пользователя
MiB
Сообщения: 187
Зарегистрирован: 26 фев 2021, 19:14
Позывной: R3KEE
Город: Novovoronezh
Имя: Roman
Благодарил (а): 26 раз
Поблагодарили: 19 раз

WSPR

Сообщение MiB » 28 ноя 2021, 11:01

на этот скрин внимания не обращайте, просто сохраню здесь чтобы команду синхронизации времени запомнить, раз уже пошел реверсинженеринг....
2021-11-28_10-59-40.png


Аватара пользователя
R9OFG
Сообщения: 1178
Зарегистрирован: 03 ноя 2019, 22:30
Позывной: R9OFG, ex R0AEK
Город: Новосибирск
Имя: Саша
Благодарил (а): 181 раз
Поблагодарили: 274 раза
Контактная информация:

WSPR

Сообщение R9OFG » 28 ноя 2021, 15:00

MiB писал(а):
28 ноя 2021, 10:36
в общем было выше, а в целом проблема точно не в аппаратной части и не винде.
смотреть стоит в сторону реализации чтения в программе.
там стандартный компонент comport из .NET, а вот с парсингом, может быть... спасибо за эксперимент.

P.S. у меня без ошибок читается, будем искать причину

Аватара пользователя
MiB
Сообщения: 187
Зарегистрирован: 26 фев 2021, 19:14
Позывной: R3KEE
Город: Novovoronezh
Имя: Roman
Благодарил (а): 26 раз
Поблагодарили: 19 раз

WSPR

Сообщение MiB » 28 ноя 2021, 16:20

R0AEK писал(а):
28 ноя 2021, 15:00
а вот с парсингом, может быть
последний час игрался с отправкой команд из терминала - все строки читаются сразу на любых командах и без разницы вошел в режим "Connected PC" или нет, если устройство стоит на передаче и получило команду, то выполнит его сразу как пройдет 162й такт передачи.

Здесь напрашивается интересный момент - может перед началом передачи отправлять в UART Строку "TX ON 20M"(диапазон на котором щас передаем), а по окончании передачи отправлять "TX OFF"? - тогда можно написать скрипт мониторинга и корректировки времени в промежуток когда микроконтроллер не занят формированием сигнала.

и еще нужна команда "Disconnect" (анаkогично A1 B41) - неудобно 2 раза перегружать микроконтроллер только для того чтобы выйти из режима и опять подключиться к COM порту.

Аватара пользователя
MiB
Сообщения: 187
Зарегистрирован: 26 фев 2021, 19:14
Позывной: R3KEE
Город: Novovoronezh
Имя: Roman
Благодарил (а): 26 раз
Поблагодарили: 19 раз

WSPR

Сообщение MiB » 28 ноя 2021, 16:39

и кстати насчет парсера - походу не все так просто...
wspr_uart.rar
(1.81 КБ) 44 скачивания
в аттаче лог файл, как пакеты приходят от устройства
сначала несколько раз отправлял команду A3 c периодом 2 секунды
потом эта же команда c периодом 5 секунд.

ответ приходит не одним пакетом, а несколькими от 1го до 4х. что подтверждает мое предложение - надо принимать всю посылку (для A3 17 байт) а потом парсить, а не по окончании прихода первого пакета данных.

p.s. сейчас на 1 запрос получил 17ть пакетов....
p.p.s. могу выгрузить сессию перехвата из ELTIMA Serial Port Monitor - но там много разной лабуды, зато видно что в логе, что в дампе, что в терминале.

Аватара пользователя
R9OFG
Сообщения: 1178
Зарегистрирован: 03 ноя 2019, 22:30
Позывной: R9OFG, ex R0AEK
Город: Новосибирск
Имя: Саша
Благодарил (а): 181 раз
Поблагодарили: 274 раза
Контактная информация:

WSPR

Сообщение R9OFG » 28 ноя 2021, 17:24

Записал, спасибо

Аватара пользователя
R9OFG
Сообщения: 1178
Зарегистрирован: 03 ноя 2019, 22:30
Позывной: R9OFG, ex R0AEK
Город: Новосибирск
Имя: Саша
Благодарил (а): 181 раз
Поблагодарили: 274 раза
Контактная информация:

WSPR

Сообщение R9OFG » 28 ноя 2021, 17:29

MiB, а что у Вас тут в параметрах порта?

000.png

Аватара пользователя
MiB
Сообщения: 187
Зарегистрирован: 26 фев 2021, 19:14
Позывной: R3KEE
Город: Novovoronezh
Имя: Roman
Благодарил (а): 26 раз
Поблагодарили: 19 раз

WSPR

Сообщение MiB » 28 ноя 2021, 18:32

Все по умолчанию для FTDI драйвера:
2021-11-28_18-31-47.png

Аватара пользователя
MiB
Сообщения: 187
Зарегистрирован: 26 фев 2021, 19:14
Позывной: R3KEE
Город: Novovoronezh
Имя: Roman
Благодарил (а): 26 раз
Поблагодарили: 19 раз

WSPR

Сообщение MiB » 28 ноя 2021, 21:04

Дома есть еще USB to TTL переходники СP2021, CH340, - попробовал с ними - все идентично выдается разное количество байт в порт.
Настройки FIFO как на Вашем скрине.

Аватара пользователя
R9OFG
Сообщения: 1178
Зарегистрирован: 03 ноя 2019, 22:30
Позывной: R9OFG, ex R0AEK
Город: Новосибирск
Имя: Саша
Благодарил (а): 181 раз
Поблагодарили: 274 раза
Контактная информация:

WSPR

Сообщение R9OFG » 29 ноя 2021, 08:58

МК через кольцевой буфер выдает в уарт запрошенные данные, особой нужды в нем конечно нет, наверное откажусь от него в сторону фиксированной длины передаваемых пакетов, тут видимо срабатывает такой момент - кольцевой выдает все, что в него попало, и где то происходит задержка, а уарт в свою очередь автоматом делит уже это на пакеты, отсюда и глюк, так как конфигуратор приняв идентификатор принятого пакета (первые два/три символа) просто пытается прочитать остальные, в необходимом количестве байты, а если передаваемый пакет разбит на несколько, то и натыкается на неожиданный конец строки, в итоге получаем соответствующее исключение в виде ошибки "Входная строка имела неверный формат"....

Надо будет поработать над этим.

Спасибо MiB, я бы так и не обращал внимание на эту ситуацию, от других коллег пока не поступала подобная информация.

Последовательность символов WSPR из МК, конфигуратором не читается, она просто тупо на стороне конфигуратора передекодируется по полученным данным от МК.

В режиме GPS, из NMEA координат МК сам посчитает текущий QTH-Loc, далее МК сам будет кодировать WSPR последовательность, как бы режим "на лету", для возможности поставить маяк на авто/судно или вообще на шарик привязать.

Ответить

Вернуться в «Микроконтроллеры и программирование»