WinNWT5
Преамбула
Наши немецкие товарищи в лице Andreas написали программу WinNWT4 (LinNWT4), которой сейчас пользуются радиолюбители всего мира и которая, является связующим звеном с большим семейством устройств под названием NWT. За что и хочется поблагодарить создателя.
Правда есть несколько моментов, которые побудили меня взяться за переработку данной программы. Написать заново было бы проще и лучше, но есть опасение, что можно не получить результата никогда, т.к. время весьма ограниченный ресурс, а так есть возможность выполнения итерационных изменений.
Минусы, которые по моему мнению есть на данный момент у WinNWT4:
При обрыве связи с устройством, восстановление связи производится перезапуском программы;
При установке опорной частоты DDS через окно настроек, запись данных в DDS производится, только если изменилось в интерфейсе программы значение частоты и оно не равно предыдущему. Нет возможности прочитать значение из устройства и нет гарантии что именно это значение записано в устройство;
Не очень хороший протокол обмена с устройствами, нет стоп символа при передаче команд и в результате на стороне устройства трудно делать разбор команд.
Не удобный способ работы с несколькими однотипными устройствами семейства, на данный момент можно запускать программу с разными конфигурационными файлами для каждого устройства и делать соответствующие ярлыки.
Оставляет желать лучшего дизайн.
Неадекватное поведение сигнала DDS при входе на страницу Ваттметра. Можно установить значение частоты от VFO, а можно с закладки Ваттметра. Но алгоритм не удобный.
Разработка программы прекращена автором, исправляются только ошибки.
Но есть один большой плюс - Она работает !
Version history
v5.1.0 build 1826 от 22/11/2017
Сделана возможность переопределения выводов аттенюатора под любые звенья затухания. Т.е. можно создать любые конфигурации аттенюатора, в пределах доступных пинов микроконтроллера отведенных для аттенюатора. Огромное спасибо Serge_m.
Исправлены неточности перевода.
Закрыт пункт меню вывода версии железа если идет сканирование.
v5.0.3 build 1730 от 17/05/2015
Исправление досадной ошибки, параметр dds core const по команде "e", сохранялся при установленной галке "сохранять всегда" даже если нажать "Отменить" в окне с настройками.
v5.0.2 build 1718 от 13/05/2015
Исправление неправильного Закрытия/Открытия пунктов меню в зависимости от активной закладки.
Перемещение пунктов меню в соответствии с активными закладками и смыслом. Все пункты относящиеся к настройке унесены в отдельное меню настройки,
Добавлен пункт меню View (Вид), в него добавлены все пункты для отображения информации.
Исправление перевода "Активировать ПЧ" -> "Активировать ПЧ для ГКЧ-АЧХ" на закладке VFO (ГПД), в соответствии с назначением. Данная галочка действует только на параметры режима "ГКЧ-АЧХ".
Исправление ошибки - Невозможно установить отрицательную ПЧ на закладке VFO (ГПД).
Исправление работы с keyPress событиями закладки VFO (ГПД) (кнопки QWERTYUI and ASDFGHJK для установления частоты), сообщения от клавиш приходили на закладку ГПД со всех страниц (даже не активных) и прерывались если поставить курсор в spinbox. Добавлен полный набор кнопок для частот от 1 Hz до 10 MHz для управления частотой ГПД. Смотри hint на странице ГПД.
Исправлена ошибка установления границы Max sweep frequency в диалоге настроек. Для случая, когда максимальная частота умноженная на мультипликатор превышала число Long, то менялась частота Max границы калибровки на отрицательное число. В явную эта ошибка проявлялась для синтезаторов с частотами больше 450MHz с включенным мультипликатором. Все владельцы ADF435x наверное сталкивались с этой ошибкой.
В инсталяционный пакет добавлены файлы *.ts для других языков, используя эти файлы можно производить перевод программы на другие языки.
Добавлен CheckBox для контроля параметров конфигурации NWT. Параметр называется "Сохранять всегда" (Send always) - при установленном данном параметре все значения конфигурации NWT при каждом сохранении настроек отправляются в NWT (DDS core clock and PLL). Если данный параметр не установлен, то отправка идет только в случае изменения параметра. В WinNWT4 отправка была только при изменении параметров.
Исправление ошибки - Если параметр конфигурации не удалось сохранить в NWT, то восстанавливается предыдущее значение параметра в окне настроек (DDS core clock and PLL).
V5.0.1 build 1614 от 30/03/2015
Очередная переделка работы с АТТ. Убраны лишние отправки команды "r" при работе цикла ожидания.
Сделано восстановление значения АТТ в программе при перезапуске. Т.е. если в девайсе был уже включен АТТ и девайс не выключался, то значение АТТ загрузится в программу при ее старте/рестарте.
Восстановление значения АТТ после редактирования настроек.
V5.00 build 1564 от 30/03/2015
Это первая публичная версия (основной этап тестирования закончился):
Исправлена ошибка неверной калибровки детектора для Ваттметра. Данная ошибка была исторической для WinNWT4 и проявлялась для всех HW при калибровке от внутреннего генератора. Аттенюатор переключается долго и NWT успевал измерить значение мощности до переключения аттенюатора. Для медленных NWT это делилось на 5, а с прошивкой 1.20 шло без деления. При калибровке от внутреннего генератора включается только -20 дБ АТТ независимо от значения введенного в диалоге калибровки.
Исправлена работа с аттенюаторами. Убрано спонтанное возвращение аттенюатора к предыдущему. Переработка работы с АТТ.
Верхний предел при калибровке Ваттметра был +10дБм, я поставил +13дБм, столько выдают последние NWT с усилителями на AD8009.
На странице Ваттметра установлен GroupBox, для явного управления частотой DDS во время измерений. При работе Ваттметра частоту DDS можно брать с закладки "ГПД", с закладки "Ваттметр" или выключить.
V5.00a 23/03/2015:
Работа по переработке стала в результате воистину титанической, первые шаги были сделаны аж в далеком 2013 году и несколько раз прерывались, а результат появился только недавно.
Программа переработана для компиляции с использованием библиотек Qt5, в качестве исходной взята версия 4.11.08, которая была актуальна на тот момент;
Отконвертированы все исходники и в результате основным языком исходных текстов стал английский. Соответственно были отконвертированы все файлы перевода, что бы не потерять актуальности и создан файл перевода немецкого языка. Для этого была написана отдельная программа и это по сути явилось главным тормозом в дальнейшей работе;
Переработан алгоритм опроса подключенного устройства. На данный момент устройство считается подключенным, если возвращает версию HW и соответственно идет постоянный опрос устройства;
Изменен алгоритм работы с установкой частоты на закладке Измеритель мощности. Добавлены RadioButtons, которые позволяют явно управлять источником установки частоты.
Немного причесан дизайн, сделаны новые иконки. Т.к. несолидно такой популярной программе иметь убогий дизайн;
Для программы сделана отдельная папка в профиле пользователя с настройками по умолчанию, название папки WinNWT5. Что бы сохранить старые настройки и калибровки, можно все скопировать из старой папки hfm9 (это название одного из первых устройств, которое создал Andreas);
Доделан перевод на русский язык, многие моменты уточнены и переделаны. В том числе подправлен дизайн, что бы помещались все тексты;
Порядка 30% названий функций и классов переименованы в английскую нотацию (по крайней мере то, что удалось осознать и перевести);
Приведены к более менее осознанным названия файлов.
Проблемы, которые пришлось решать помимо вышеуказанных:
Базовый интерфейс и исходные файлы написаны на немецком и названия функций тоже на немецком в английской транслитерации, в общем исходники практически зашифрованы :);
Весь основной код программы находится в одном большом файле, что не способствует пониманию.
В структуре программы практически отсутствует понятие - объектный подход.
В итоге:
Я получил программу такого же функционала как и WinNWT4, поэтому стараться побыстрее переходить на новую версию необходимости нет. Изменения весьма небольшие;
Подготовлена база для дальнейшей реструктуризации программы;
Для Linux программа не компилировалась и не проверялась, хотя надо проверить работу всего одного файла по работе с USART.
Материалы
Ошибки и предложения (Bug tracking)
Ошибки и предложения регистрируются на моем локальном сервере. Для доступа в частный раздел надо пройти авторизацию. ДЛЯ РЕГИСТРАЦИИ НОВОЙ ОШИБКИ НАДО ЗАРЕГИСТРИРОВАТЬСЯ.
Errors are logged on my local server. To access the private section you must pass authorization. For registration errors need to register.
Login: guest
Password: empty
Эта ссылка ведет на сервер, который находится у меня дома, может быть недоступен около 23:00 MSK
Исходники (Source files)
Исходники находятся на локальном хранилище, доступ в частный раздел по паролю.
Sources are on local storage, access to the private section with a password.
Login: guest
Password: empty (do not write nothing !!!)
Эта ссылка ведет на сервер, который находится у меня дома., может быть недоступен около 23:00 MSK
Литература и ссылки
1. Сайт создателя WinNWT4 http://www.dl4jal.eu/
2. Большинство материалов по теме NWT можно найти внизу страницы nwt-remix-from-ub3taf.
3. Оригинальное описание по работе с программой LinNWT4 на английском языке http://www.dl4jal.eu/LinNWT_doc_en.pdf.
Загрузки
Для скачивания необходимо ввести пользователь "guest", пароль пустой.
Google не дает сохранять exe, а с zip ошибка загрузки, поэтому придется расширение переименовать, а уж затем распаковать.
Google does not save exe, zip load with a error, so you'll have to rename the extension, and only then unpack.