MacLoggerDX + HamRadioDeluxe 5: опыт эксплуатации
Аппаратные логи я веду преимущественно с помощью Ham Radio Deluxe (HRD). Программа всем хороша, за исключением того, что работает только под ОС Windows. Дома основной комп - Mac, не всегда удобно доставать ноут только для того, чтоб провести вечерком несколько QSO. Конечно, задачку можно решить с помошью Parallels Desktop и виртуальной машиной с Windows, но это не наш способ.
Специально для этой задачи была установлена программка MacLoggerDX. Прекрасная программка, разве что импортировать журналы в Ham Radio Deluxe через импорт / экспорт файлов ADIF замахаешься. В Ham Radio Deluxe я использую два хранилища журналов: "на ходу" - Access с репликацией через DropBox, а в домашних условиях - MySQL. В свою очередь MacLoggerDX использует SQLite3.
Получается простая задачка по перекладыванию и преобразованию данных, выполняемая по расписанию. Для домашних условий городить ETL бесполезно, по этому рисуем реализацию этой задачки на PHP 5.3, благо оное есть в OS X, и запускаем это дело по расписанию с помощью launchd (напомню, что использование cron-а на маке - действие устаревшее).
В общем, получилась легенькая поделка, реализующая регулярную одностороннюю репликацию MacLoggerDX -> Ham Radio Deluxe для новых и модифицированных записей.
Если кому тут интересно, я готов немного причесать и выложить тут утилитку. Ну плюс написать инструкцию.
Скрипт для синхронизации журналов
Что нужно иметь ввиду:
Скрипт синхронизирует журнал только в одну сторону: MLDX -> HDR.
Скрипт отслеживает появление новых записей и изменение старых, в этом случае происходит репликация таких записей в HDR.
Удаление записи в MLDX не приводит к удалению в HDR. Если просто улалить запись в HDR, но не удалять ее в MLDX, запись будет реплицирована заново.
Установка, настройка:
Скопируйте содержимое архива в удобную вам папку, можно в домашнюю директорию. Исправьте пути и настройте подключение к MySQL в файле MLDX-Uloadr.ini.
Репликация данных происходит при запуске скрипта MLDX-Uloadr.php.
Для настройки регулярной автоматической репликации исправьте пути и настройте периодичность репликации в файле MLDX-Uploadr.plist, после чего запустите install.sh для установки этого файла под launchd.
Как работает:
Утилита сканирует базу данных MLDX (sqlite3), расчитывая для каждой записи хэш. Идентификатор записи и значение хэша проверяется со значениями, сохраненными в HDR. Для хранения идентификатора и хэша в таблице HABLE_HDR_CONTACTS_V01 БД HDR используются поля COL_USER_DEFINED_8 и COL_USER_DEFINED_9.
Утилита обогащает данные из MLDX необходимыми для HDR данными с помощью данных, хранящихся в файле DXCC.xml (это выгрузка справочника DXCC с сайта SQZ.com, имея подписку на XML-сервисы вы можете сами обновлять его, я не могу предоставить наиболее свежую версию справочника из-за ограничений оферты QRZ.com).
Все избыточные с точки зрения HDR данные "на всякий случай" выгружаются из MLDX в поля COL_USER_DEFINED_0 - USER_DEFINED_7:
first_name -> COL_USER_DEFINED_0
last_name -> COL_USER_DEFINED_1
street -> COL_USER_DEFINED_2
postal_country -> COL_USER_DEFILED_3
zip -> COL_USER_DEFINED_4
email -> COL_USER_DEFINED_5
Если поле sql_received имеет формат вроде eQSL.cc:E указывая на то, что получана электронная SQL-карторчка в системе eQSL.cc, неразобранное значение этого поля ляжет в поле COL_USER_DEFINED_7. Разобранные ранные лягут в COL_QSL_RCVD и COL_QSL_RCVD_VIA.
Дополнительно:
Если вам необходимо реплицировать данные сразу из нескольких источников (например, два инстанса MLDX или MLDX + MLDX HD независимо от MLDX) - в секции general файла конфигурации MLDX-Uploadr.ini имеется парамет prefix, который можно настроить отдельно для каждого экземпляра MLDX-Uploadr.
Cсылка на программу: http://www.burnaway.me/files/MLDX-Uploadr.tar.gz
Добавлено через 5 минут
Цитата:
Сообщение от
UA3IRS
Это что за зверь? Поясни плиз...
Ну, я тут вроде писал: я нарисовал kext, эмулирующий петли последовательных портов на уровне IOKit, так то любая программка обманывается "на ура". Далее - написал консольную утилиту, которая "заворачивает" uH Router в такой порт. Транслируются CAT и PTT. Подробности тут - http://cyanide-burnout.livejournal.com/205916.html и http://cyanide-burnout.livejournal.com/205268.html
Цитата:
Сообщение от
UA3IRS
Вот это интересно. Правильно я понимаю, что если например лежать на диване c iPad с установленной на нём MLDX HD, то для того чтобы с iPad, крутить и заходить на свой трансивер, то нужно чтобы был Mac компьютер с Mac OS X, к которому должен быть подключен трансивер?
Да, все именно так. Если есть желание - можно поковырять, что оно и как там передает, да сделать эмуляцию под что угодно.