Новый проект - MORSE master

148 views
Skip to first unread message

Dmitry Rechkin

unread,
Feb 7, 2021, 3:17:07 PM2/7/21
to CheckLog
Задумал я сделать одну вещь... именно - тренажер MORSE, с разнообразными возможностями.

Основные функции:
1). "Проигрывание" кода Морзе для введенных фраз
2). Простая тренировка - слыша звук, набирать текст
3). Режим CWoke (Морзе-"караоке") нужные знаки подсвечиваются
4). Квалификация - по результатам подсчитываются баллы

Внешне - виртуальная клавиатура, строка ввода и окно принятых сообщений. Работать будет в Windows XP и всех последующих версиях. Будет выход на интерфейс с компьютером по COM/WinKey. Будут макросы (через F-клавиатуру, до 48 независимых посылок), с подстановкой позвыных - своего и корреспондента. 

Выглядит примерно так:

MorseMaster.jpg

Функциональность вчерне определил, но возможно обсуждение...

Вопрос: кому-то, кроме меня, это интересно? В тестировщики никто напроситься не хочет?

Владимир Тарасов

unread,
Feb 8, 2021, 4:13:46 AM2/8/21
to CheckLog
Привет, Дмитрий!
Мне интересно. Постоянно тренируюсь на симуляторе N6TR. Попробую тестировать по Вашей инструкции.
Владимир, R4II.
73!
воскресенье, 7 февраля 2021 г. в 20:17:07 UTC, Dmitry Rechkin:

Dmitry Rechkin

unread,
Feb 8, 2021, 10:21:50 AM2/8/21
to CheckLog
A). Код Морзе: основные требования генерации
  1. За единицу длительности при программировании кода принимается символ "точка" (1T)
  2. Длительность "тире" равна трем "точкам" (3T)
  3. Пауза между элементами одного знака - одна "точка" (1T)
  4. Пауза между буквами в одном слове - три "точки" (3T)
  5. Пауза между словами (эквивалент символа "пробел") - семь "точек" (7T)
B). Скорость передачи: WPM (слов в минуту)
  1. Типичными (чаще всего встречающимися) считаются слова из пяти букв, например PARIS или CODEX.
  2. Длительность передачи PARIS определяется как 50 точек, длительность передачи CODEX - 60 точек.
  3. Длительность точки (в миллисекундах) определяется для слова PARIS как T=1200 div W, где T - длительность, W - скорость передачи (слов в минуту), div - целочисленное деление.
C). Дополнительные послабления при обучении
  1. Пауза между элементами одного знака может быть удвоена (2•T)
  2. Пауза между буквами в одном слове может быть удвоена (6•T)
  3. Пауза между словами может быть удвоена (14•T) или утроена (21•T)
D). Эффективная скорость передачи (WPM-E, слов в минуту) считается с учетом всех использованных послаблений. Фиксируются (и учитываются при подсчете баллов квалификации) следующие ошибки: неверно принятый знак, неверно принятое слово, пропуск знака, пропуск слова. Баллы подсчитываются с учетом эффективной скорости передачи, в режиме квалификации начальная скорость передачи в ходе работы плавно увеличивается.

E). Если задана передача группами - в каждом слове ровно 5 знаков (букв либо цифр), иначе (передача словами) - в каждом слове может быть от 3 до 7 букв либо от 3 до 5 цифр. Смешение букв и цифр в слове при передаче словами не допускается.

F). Автоматически генерируемые упражнения (от E01 до E14) имеют четыре уровня сложности (от A до D). Квалификация всегда предполагает уровень D.
  • Уровень A - прослушивание звучания с одновременным отображением передаваемых знаков (реакции не требуется), только знаки данного упражнения.
  • Уровень B - распознавание передаваемых знаков (требуется нажатие клавиш), только знаки данного упражнения.
  • Уровень C - прослушивание звучания с одновременным отображением передаваемых знаков (реакции не требуется), все знаки данного упражнения и всех предшествующих.
  • Уровень D - распознавание передаваемых знаков (требуется нажатие клавиш), все знаки данного упражнения и всех предшествующих.
G). Содержание упражнений
  1. E L V A ипи Е Л Ж А
  2. S Q T C или С Щ Т Ц 
  3. D O R I или Д О Р И
  4. G X F N или Г Ь Ф Н
  5. J U H K или Й У Х К
  6. B P M или Б П М
  7. Y Z W или Ы З В
  8. Э Ш Я Ю Ч
  9. 1 2 3 4 5
  10. 6 7 8 9 0
  11. . , ? :
  12. / + = ;
  13. ! ( )
  14. - " @
H). Поддерживаемая кодовая таблица
Morse.jpg
________________________________________________
... можно обсудить; при отсутствии возражений - всё вышесказанное станет постановкой задачи для программирования.

Владимир Тарасов

unread,
Feb 8, 2021, 11:00:29 AM2/8/21
to CheckLog
Дополнительные послабления 
  1. Пауза между словами  смыслового текста должна регулироваться плавно пользователем.
       2. Должен быть раздел с  генерацией  текстов по 5 букв и цифр  в группе, таких групп должно быть 25 или 50 ,  генерация радиолюбительских позывных и  смысловых текстов. Должна быть возможность перевода выбранного пользователем смыслового текста в текст Морзе, с последующем включением пользователем в программу Морзе мастер. Все это необходимо для увеличения скорости приема.  Запись текстов либо  от руки,  либо  на компьютере. 


понедельник, 8 февраля 2021 г. в 15:21:50 UTC, Dmitry Rechkin:

Dmitry Rechkin

unread,
Feb 8, 2021, 11:32:55 AM2/8/21
to CheckLog
Пауза между словами  смыслового текста должна регулироваться плавно пользователем.
Да, согласен. Только не совсем плавно, а ступенчато. Скажем, шесть градаций: +0%, +20%, +40%, +60%, +80%, +100%. Совсем плавно тоже можно, но тогда предвижу сложности в подсчете баллов (оценки выполнения задания).

Должен быть раздел с  генерацией  текстов по 5 букв и цифр  в группе, таких групп должно быть 25 или 50 ,  генерация радиолюбительских позывных и  смысловых текстов.
Сама идея упражнения в том, что по заданному шаблону генерируется случайный текст (группами либо словами). В группах буквенно-цифровые сочетания допускаются, в словах - нет. Мне кажется, так будет лучше для самоконтроля. 50 или 25 групп - хорошая идея, обязательно включу этот параметр в настройки. Равно как и лимит 250 или 125 знаков - для слов.

Должна быть возможность перевода выбранного пользователем смыслового текста в текст Морзе, с последующем включением пользователем в программу Морзе мастер.
На самом деле оно уже предусмотрено, только на скриншоте не видно. Там есть режим Load text для загрузки в качестве упражнения произвольного текста, Select exercise для выбора из предлагаемых вариантов упражнений (текст генерируется автоматически, по заданным щаблонам и настройкам).

Предусматривается четыре режима работы: Typewriter - как пишущая машинка, с открытой строкой ввода; введенный текст после нажатия [Enter] будет использован для воспроизведения морзянки, с одновременным показом того, какой именно знак сиюмоментно передается. Simple training - упражнения по выбранному из предлагаемых или из загруженного текста; после нажатия кнопки-знака показывается, верно или неверно он был принят. CW-oke training - всё то же, как и в Simple training, но ожидаемые кнопки "подсвечиваются", что нужно для "приучения" к клавиатуре (вроде караоке для морзянки). Наконец Qualification - полноценный тест "на износ", с наращиванием скорости передачи.

Запись текстов либо  от руки,  либо  на компьютере.
Нет, только на клавиатуре. Это принципиально - запись от руки предполагает последующий ввод, что резко увеличивает продолжительность "зачёта" и исключает игровой / соревновательный элемент. А именно это хочется "подсунуть" ham-сообществу, чтобы одним из стимулов к распространению программы (freeware) стало желание "померяться ключами..."  или еще чем-нибудь.

Я тут подумал на досуге, что этот тренажер может стать настолько привычным для оператора, что его можно будет использовать как более современную и гибкую реализацию того же CW-Type. Для этого надо будет продумывать механизм макросов (предварительно - на F-клавиатуре, F1-F12, с учетом еще трех модификаторов [Ctrl], [Shift] и [Alt] - 48 штук, должно хватить "на все случаи жизни"). Ну, и макро-подстановки позывного (своего и корреспондента), и еще чего-нибудь... Но это попозже, надо основные функции реализовать - чтобы, наконец, самому научиться морзянке.

Dmitry Rechkin

unread,
Feb 10, 2021, 12:37:16 PM2/10/21
to CheckLog
Начинаю процедуру промежуточного тестирования в ходе разработки.

Цель: понимание достаточности набора визуальных элементогв и настроек программы, а также корректности работы с настройками.

Что проверять:
  1. Загрузка программы с корректностью воспроизведения всех визуальных эжлементов, в разных операционных системах и с разным разрешением экрана.
  2. Поведение визуальных элементов в различных вариантах: при движении мыши, при нажатии, и т.п. Обращать внимание на всякие там лампочки, кнопочки, иконочки, флажки и проч.
  3. Скорость работы программы на компьютерах с различной производительностью.
  4. Работа с русской раскладкой клавиатуры - переключение Rus/Lat системными средствами и из окна программы.
  5. Полнота информации о компьютере и операционной системе (главное меню, Help -> About), закладка System.
  6. Настройки для генерации звука (главное меню, File -> Settings), их изменение, контроль и сохранение.
  7. Настройки выбора упражнения и уровня сложности (главное меню, File -> Select exercise)
  8. Изменения представления главной формы при выборе режима работы (главное меню, Mode -> ...)
  9. Сохранение и использование настроек (включая положение окна на экране) при повторных запусках.
Для тестирования предоставляется программа версии 0.00.001 (build 0210) - достаточно только исполняемого файла MorseMaster.exe. Разместите его в отдельной папке.

В работе программа может использовать шрифт Consolas; скорее всего, он уже установлен в системе. Если эе такого шрифта нет, программа будет использовать стандартный шрифт Tahoma. При желании можно установить шрифт Consolas, необходимые файлы лежат в подпапке Fonts, все эти файлы устанавливаются стандартными средствами Windows.

Нужные файлы лежат в облаке Mail.ru, ссылка предоставляется по запросу (высылается электрической почтой).

Отчеты и впечатления - здесь, в группе.

Я же пока буду заниматься программированием звуков и генерацией Морзе-кода с заданными характеристиками.

Dmitry Rechkin

unread,
Feb 14, 2021, 1:51:10 PM2/14/21
to CheckLog
Промежуточное тестирование (изменения в программе и дополнения к заданию - 14.02.2021)

Программа постепенно развивается. Что добавилось (build 0214):
  1. Генерация звука. Написал (нашел и переписал) генератор звуковых тонов для звуковой карты с таймингами, в отдельной нитке. Имитируется моно-сигнал, но за счет генерации стерео-сигнала, который должен быть одинаковым в правом и левом каналах.
  2. Сейчас отлаживаю генерацию только в режиме Typewriter. Можно ввести текст строка за строкой, используя строку ввода. При появлении в ней недопустимых символов "галочка"на кнопке справа  подсвечивается красным. Нажатие кнопки с "галочкой" валидирует строку ввода, убирая из нее все недопустимые символы (заменяются на пробел). Перенос содержимого строки ввода в поле текста для генерации Морзе - по нажатию [Enter].
  3. Добавил Load file... При загрузке поле текста сначала очищается, потом в нем появляется валидированный текст, основанный на загруженном из файла. Для примера даю файл Hiawatha.txt - начальные строки "Песни о Гайавате" Лонгфелло.
  4. Нажатие Play стартует генерацию Морзе с заданными настройками по текстовому полю. Сиюминутно генерируемый символ подсвечивается. Пока не разобрался с событиями на форме и защитой поля текста - избегайте его прокручивать в процессе генерации. Нажатие Pause приостанавливает генерацию Морзе, повторное нажатие Play возобновляет ее с точки останова.
  5. Работают настройки звука и параметров генерации Морзе. Разбираюсь с таймингом и буферизацией генератора сигналов, поэтому сейчас рекомендую WPM<35.
По всей видимости, придется добавлять к свойствам генератора сигналов скорость нарастания сигнала при начале звучания. Сейчас там "крутой фронт", поэтому слышны "клацания" в начале звуков, особенно на слабых процессорах и простеньких звуковых картах. Буду постепенно с этим бороться. Надо ли добавить настройку баланса левого|правого каналов?

Не забыть: виртуальная клавиатура не дает реального нажатия клавиш, только демонстрирует визуальный интерфейс. Пока не заработает основной функционал - так и будет, сейчас не до нее.

Ссылка на хранилище с файлами в облаке (ранее отправлявшаяся заинтересованным людям по электрической почте) работает. Файлы обновил. По-прежнему жду от них отчетов о прогведении тестирования, меня вовсе не радует продолжающееся молчание и отсутствие обещанных отчетов. Не хотите участвовать - так и скажите, не обижусь. Однако и в Help->About упоминать не буду. Поминание надо заслужить.

Владимир Тарасов

unread,
Feb 15, 2021, 11:22:55 AM2/15/21
to CheckLog
  1. Генерация звука. Работают все настройки звука, скорости- пробовал до 40 wpn. При таких щелках трудно определить правильность передаваемых знаков
  2.  Строка ввода работает.
  3.  Load file...тоже работает, но при загрузке текст появляется в видет летящей стрелы. Файл Hiawatha.txt – тоже загружается. Мои тренировочные файлы тоже загружаются.
  4. Нажатие Play стартует генерацию Морзе с заданными настройками по текстовому полю. Сиюминутно генерируемый символ подсвечивается. Pause приостанавливает генерацию Морзе, повторное нажатие Play возобновляет ее с точки останова. Все эти опции работают.

воскресенье, 14 февраля 2021 г. в 18:51:10 UTC, Dmitry Rechkin:

Dmitry Rechkin

unread,
Feb 16, 2021, 11:59:06 AM2/16/21
to CheckLog
ToDo List (по состоянию на сегодня, 16.02.2021)

  • 0.00.001
    Версия с работающим генератором звука (в отдельной нитке), воспроизводит звук и на WinXP, и на Win7. Звук синтезируется в двух симметричных каналах, потом смешивается в буфере как единый поток со стереозвуком. На данный момент - прошла предварительное тестирование.
  • 0.00.002
    Перевод генератор звука на моно режим (один канал), без смешивания вообще; отказ от синтеза звука в отдельной нитке.
  • 0.00.003
    Включение управления крутизной фронта генерируемых элементов, с возрастанием по линейному закону; проверка на распознавание генерируемого сигнала сторонними программами в режиме автоматического приёма.

Выпуск версии 0.00.003 для промежуточного тестирования - по готовности.

Dmitry Rechkin

unread,
Feb 19, 2021, 3:48:50 AM2/19/21
to CheckLog
Некоторые соображения по поводу формы импульса при генерации звуков кода Морзе

Немного покопался в соответствующих разделах науки математики. Обнаружил для себя много интересного. В частности, нашел исследование формы вэйвлетов кода Морзе, распознаваемых с максимальной эффективностью. Для интересующихся добыл оригинал статьи  «Generalized Morse Wavelets as a Superfamily of Analytic Wavelets», авторы Jonathan M. Lilly и Sofia C. Olhede (IEEE TRANSACTIONS ON SIGNAL PROCESSING), лежит в облаке (по известной ссылке) как файл 1203.3380.pdf

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

Из других источников выяснил, что возрастание сигнала в импульсе должно происходить на протяжении первых 8-10% его длительности, а спад - на протяжении последних 20%, соответственно. Для наглядной демонстрации формы импульса сварганил демонстрационную программку PulseFront.exe, которую также выкладываю для обозрения. Единственный параметр - движок Front - меняет значение от 0 до 1 с шагом 0.1, вид импульса представлен на графике. Если у кого-то имеются соображения, что форма импульса должна быть другой - готов выслушать их аргументацию. Пока же намерен встроить этот механизм в основную программу, чтобы убедиться в подавлении эффекта "щелчков" и получении сигнала, удобного для автоматического распознавания его другими программами.

Dmitry Rechkin

unread,
Feb 19, 2021, 1:17:39 PM2/19/21
to CheckLog
Скоректировал форму импульса по результатам эксперимента

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

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

Dmitry Rechkin

unread,
Feb 19, 2021, 4:06:45 PM2/19/21
to CheckLog
Проверил автоматическое распознавание генерируемого сигнала сторонними программами

Для проверки использовал стандартные тексты квалификационного экзамена СРР,  нормативные 60 CPM - это около 15 WPM. Без дополнительных пауз между элементами, знаками и словами. Фронты сглажены (движок Front на 7-8). По ходу дела отметил, что генерируемый моей программой сигнал "мягче" того, что предлагается в экзаменационных wav-файлах. Мелочь, а приятно...

Результаты проверки:
  • CWget - 100% надежное распознавание, ни одной ошибки.
  • CwDecoderLogic - временами ошибки; однако частота ложных срабатываний примерно одинакова как на экзаменационном wav-файле, так и при генерации звука моей программой.
После перевода в моно-режим обнаружился странный эффект: на Win7 работает нормально, звуки через встроенную звуковую карту и синтезатор RigExpert TI-5 слышно; на WinXP звуков не слышно (встроенная карта). Видимо, где-то наоптимизировал код, предстоит разобраться с этим. Чем, собственно, и займусь в ближайшее время.

Dmitry Rechkin

unread,
Feb 24, 2021, 3:07:47 PM2/24/21
to CheckLog
Внезапно обнаружились поистине гигантские проблемы с генерацией звука на платформе WinXP.  Перепробовал 4 варианта (прописью: четыре). Не работает без выделения звука в отдельную нит ку; не работает при генерации звука в располагаемый в памяти PCM-поток, не работает при использовании WinAPI playSound (не говоря уже о том, что совершщенно непонятно, как опренделять устройство вывода звука для playSound - функция WinAPI waveOutOpen для этого не очень-то и приспособлена). Похоже, придется вешать на отдельную нитку генератор звука в асинхронном режиме, и модулировать генерируемый в нитке звук асинхронно изменением параметров генератора "on fly". При этом на Win7 реально работаю все варианты... но мне надо применение именно начиная с WinXP. Короче, с выпуском отладочных версий 0.00.002 и 0.00.003 есть проблемы.

Подкинутая Павлом Маховым идея с использованием решений, заложенных в MorseRunner - не помогла. Пока не меняешь основной код и не выносишь генератор звука как отдельный компонент - звучит, да. Начинаешь "вычленять" для применения в собственном коде - ан хренушки, не звучит. На Win7 звучит, на WinXP - нет. Технология от Juhara (https://v3.juhara.com/generating-tone-with-delphi.html) тоже не работает.

Вот какая задачка...

Dmitry Rechkin

unread,
Mar 2, 2021, 12:25:31 AM3/2/21
to CheckLog
Кое-что нарабатывается... Наконец-то детально разобрался с генерацией звука - и в обычном (синхронном) режиме, и в режиме   параллельного исполнения (в отдельной "нитке") . У меня, во всяком случае, работает на всех платформах (WinXP, Win7, Win2K/srv). Теперь хочу попросить всех протестировать это решение на имеющихся компьютерах.

Программа называется Beeper.exe, лежит в известном тестировщикам месте. Это 32-разрядное приложение Windows. Не требует установки, просто скопируйте в удобное место и запустите. Перед использованием надо будет кое-что поднастроить... Выглядит так:

Beeper.jpg

После запуска программа сканирует компьютер и определяет, какие устройства можно использовать для вывода (воспроизведения) звука. Устройство по умолчанию (The default output sound device) - это то из них, которое установлено операционной системой для использования всеми программами, без дополнительных настроек. Можно выбрать его, а можно - и конкретную звуковую карту.

Для выбранного устройства в поле Audio parameters создается список всех поддерживаемых им режимов. По умолчанию выставляется "самый экономный" с точки зрения расходования памяти. Рекомендую перепробовать все имеющиеся режимы.

Для стерео-режимов дополнительно открывается настройка Balance; значение -100 соответствует направлению звука только в левый канал, +100 - только в правый канал. Остальные значения распределяют звук между каналами. Для моно-режимов каналы нагружаются симметрично.

Duration - продолжительность импульса синусоидального звукового сигнала, а также паузы между импульсами. Front - продолжительность фазы нарастания (подъема) сигнала от 0 до уровня, определяемого значением Volume. Rear - продолжительность фазы спада сигнала.

Настройка Execute позволяет выбирать между выполнением кода в отдельной "нитке" (Threading), и обычным синхронным выполнением (Non-threading). Должно одинаково работать (звуки не должны отличаться) в обоих режимах.

После задания всех настроек смело жмите [Play]. Должны прослуживаться "пикания". Когда надоест - жмите [Stop]. "Пикания" прекратятся.

При запущенном процессе изменение настроек "на лету" не даст эффекта, пока процесс не будет остановлен и вновь запущен.

Совет: не стремитесь "загнать программу в угол", я не встраивал в нее разностороннюю "защиту от дурака", но некоторые очевидные взаимосвязи параметров и настроек все же реализовал.

Что я хочу от вас: проверьте, как она работает на всем, что подвернется под руку. Составьте список (железо - процессор и его тактовая частота; операционная система - точная версия, со всеми сервиспаками). Отметьте в списке - работает на данной платформе, или есть какие-либо проблемы. Сформулируйте, в чем проблемы. Пришлите список мне, или опубликуйте как ответ на это сообщение, в группе. По результатам буду принимать решение - использовать ли этот код в основной программе MorseMaster, или что-то еще надо дорабатывать. Поэтому постарайтесь потестировать свои платформы этой программой, не затягивая - чем скорее получу ответы, тем раньше двинусь в сторону дальнейшей разработки.

Dmitry Rechkin

unread,
Mar 3, 2021, 10:30:20 AM3/3/21
to CheckLog
Выпущена финальная версия программы тестирования возможностей звуковой карты

Доработал функцию сглаживания пульсаций, подкорректировал код. Теперь оно называется Sputnik VI, потому как пикает очень уж похоже...
Лежит в известном тестировщикам месте, заменяет ранее выпускавшийся Beeper. Пользуйтесь!

По-прежнему с нетерпением жду отчетов о тестировании звука на ваших компьютерах!
Без этого двигаться дальше... мнэ-э-э... неоправданно.
Message has been deleted

Dmitry Rechkin

unread,
Mar 5, 2021, 11:24:16 AM3/5/21
to CheckLog
Собственно, тест сегодняшней версии генератора кода Морзе (готового Дельфи-класса, привинченного к тестовому приложению), с подачей получаемого звукового сигнала на вход автоматической распознавалки... как говорится - вот он:
MorsePlayer.png
И - да, сам звук мне нравится. Какой-то он удобный, мягкий, и в то же время - четкий. На внешние динамики, с присущей их механике инерционностью - так вообще почти идеально.

Dmitry Rechkin

unread,
Mar 7, 2021, 6:34:25 AM3/7/21
to CheckLog
ToDo List (по состоянию на сегодня, 07.03.2021)

  • 0.00.003
    Версия готова для передачи в тестирование. Будет опубликована для тестировщиков после получения отчетов по тестированию имеющегося оборудования программой Sputnik VI.
  • 0.00.004
    Доработать генератор сигналов кода Морзе, исключить избыточные паузы при формировании звука - только необходимые разделители. Для перехода на новую строку использовать паузу двойной длительности по сравнению с паузой между словами. Добавить список благодарностей в форму About. Добавить измеритель скорости передачи, с отображением в строке состояния общего количества переданных символов (не пробелов), общее время передачи и эффективную скорость передачи (WPM).
  • 0.00.005
    Продумать и реализовать генератор текстов упражнений - пока только для режима Typewriter. Генерацию вести построчно, до исчерпания лимита по символам (задается настройками). Сгенерированные строки выводить в окно текущей передачи по одной, по мере формирования (при выполнении [Play]) при отработке текущего текста передачи до конца.
  • 0.00.006
    Продумать и реализовать режим Simple Training.

Выпуск версии 0.00.006 для промежуточного тестирования - по готовности., при обязательном условии полной отработки процедур тестирования предыдущей версии 0.00.003.

Dmitry Rechkin

unread,
Mar 7, 2021, 7:04:43 AM3/7/21
to CheckLog
Промежуточное состояние на 07.03.2021
MorseMaster.0.00.004.png

Владимир Тарасов

unread,
Mar 9, 2021, 5:28:40 AM3/9/21
to CheckLog

                       Тестирование Sputnik VI

Издание Windows:  Windows 7 Максимальная. 2009 год, Service Pack 1

 Процессор: Intel Pentium CPU G630 @2.70GHz  2.70GHz

Установленная память:   4.00 ГБ

Тип системы:   32-разрядная операционная система

1. Загружается быстро.

2. В Playdack sound device все устройства поддерживаются. Дополнитетельно  надо проверить как подключаются  другие программы по VAC. Пока не знаю как.

3. Все установки в  Audio parameters работают.

4. Настройка Frequency  работает только в режиме Stop- это не  совсем удобно.

5. Настройка Front работает  в режиме Play и Stop.

6. Настройка Rear на качество воспроизведения  не влияет.

7. Регулировка Volume производится только в режиме Stop- это не совсем удобно.

8. Balance  не работает.

9. Настройка Gradient  на слух не работает.


воскресенье, 7 марта 2021 г. в 12:04:43 UTC, Dmitry Rechkin:

Владимир Тарасов

unread,
Mar 9, 2021, 5:32:58 AM3/9/21
to CheckLog

10. Duration работает в обоих режимах.

11. Звук приятный, но не сильные щелчки слышно и они не портят сигнал.


вторник, 9 марта 2021 г. в 10:28:40 UTC, Владимир Тарасов:

Владимир Тарасов

unread,
Mar 9, 2021, 7:39:24 AM3/9/21
to CheckLog

Тестирование Morse Master 0.00.004(0308)

1.В знаках очень сильные щелчки межу точками, между тире и точкой.

2. В знаках где одни тире щелчков нет, только слышно слабое увеличение частоты тона до частоты установленной в настройках.

3. При скорости 10  WPN слышны слабые щелчки и между тире.

4. На скорости 50 WPN знаки с точками принимать не возможно, все сливается.


вторник, 9 марта 2021 г. в 10:32:58 UTC, Владимир Тарасов:

Dmitry Rechkin

unread,
Mar 9, 2021, 11:33:45 AM3/9/21
to CheckLog
Генератор упражнений в режиме Typewriter для версии 0.00.005
  • Настройка Style определяет набор знаков и правила расстановки пробелов в генерируемом тексте. Значение Slyle=Groups задает генерацию группами по 5 знаков, разделяемыми пробелами; знаки могут быть любыми, допускаемыми для данного упражнения и уровня. Значение Style=Words задает генерацию словами различной длины, разделяемыми пробелами; знаки в словах - только буквы (поэтому набор упражнений для этой настройки меньше, чем полный).
  • Настройка Limit задает количество знаков в генерируемом упражнении. Значение Limit=Unlimited определяет непрерывное дополнение текста упражнения (в режиме [Play]) новыми строками согласно заданных настроек.
Упражнения генерируются однократно после вызова формы Select exercise and level ... (меню File -> Select ...)
  • Exercise задает набор знаков, включаемых в генерируемый текст.
  • Level задает правила использования знаков предыдущих упражнений: Level A - используются только знаки данного упражнения, Level C - используются знаки этого и всех предыдущих упражнений. Level B и Level D в режиме Typewriter не используются.
  • Текущая установка языка интерфейса определяет выбор знаков латиницы/кириллицы для генерации текста.
Текст в режиме Typewriter всегда показывается в окне передачи до собственно передачи (генерации звука морзянки). Можно дополнять этот текст собственными строками, используя строку ввода. Движущийся курсор отмечает текущий передаваемый знак.

Замечание к реализации:
  • В режиме [Play] блокировать пункты меню Load file, Settings и Exercise меню File, и все неотмеченные пункты в меню Mode. Разблокировать их в режиме [Pause].
Вопрос:
  • Каков оптимальный набор настроек на имеющейся аппаратуре: Frequency, Volume, Gradient ? Пора определиться со значениями этих настроек по умолчанию, задаваемыми при первом запуске программы.
Версия 0.00.005 уже лежит в известном месте.

Dmitry Rechkin

unread,
Mar 10, 2021, 2:14:23 AM3/10/21
to CheckLog
Изменения для версии 0.00.005 (build 0810)

Расширен состав набора режимов (меню Mode)
  1. Typewriter - как пишущая машинка, построчный ввод текста, весь текст в окне - видимый
  2. Auto player - автоматическая генерация текста упражнений, в том числе с неограниченным размером текста, весь текст видимый
  3. Simple training - автоматическая генерация текста упражнения, текст в окне до требуемого действия - невидим; нелимитированное ожидание действия оператора. 
  4. CW-oke training - то же, что и Simple training, но с подсветкой ожидаемых действий на виртуальной клавиатуре
  5. Qualification - зачетное выполнение упражнения с отображением как для Simple training, но с совокупным лимитом времени на ожидание действия оператора; учитывается время выполнения.
  6. Competition - режим "соревнования", работа как в режиме Qualification, но с постепенным увеличением скорости передачи; учитывается время выполнения, достигнутая скорость передачи, количество ошибок - в виде суммы зачетных очков.
Учтены замечания к реализации в части блокирования отдельных пунктов меню на время выполнения упражнения.

Dmitry Rechkin

unread,
Mar 10, 2021, 8:54:16 AM3/10/21
to CheckLog
Замечания по версии 0.00.005 (build 0310), вдогонку
  1. При перекрашивании текста в окне передачи замечено: если во время передачи нажать [Pause], то звучание прекращается на текущем знаке, но в серый перекрашивается не только он, но еще и следующий. Продолжение передачи по нажатию [Play] при сохранении текста и позиции в окне начинается именно с этого, уже серого, знака. А потом все вроде работает - но только пока снова не притормозить.
  2. Невозможно выйти из программы без ошибки, если идет передача - обязательно надо нажимать [Pause]. Все попытки отработать эту ситуацию и нажать [Pause] не вручную, а из программы, автоматически - ни к чему не приводят, кроме выхода с ошибкой (или зависанием).
Пожелание для тестировщиков:
  • Я понимаю, что это скучно и нудно. Но всё-таки ищите подобные "ляпы", и описывайте их, желательно - подробнее.
  • В поиске ошибок и несоответствий, а также расхождения работы программы с привычной логикой и здравым смыслом я полагаюсь именно на тестировщиков, поскольку одновременно думать конструктивно по поводу алгоритмов и интерфейса (с одной стороны) и деструктивно по поводу поиска "ляпов" и несоответствий (с другой стороны) - ну совершенно некомфортно и очень трудно. Именно - трудно переключаться из одного стиля мышления в другой, и наоборот. Дело от этого отнюдь не ускоряется. Да и результат становится не таким хорошим, как хочется.
  • Попробуйте, если это возможно, свою работу или согласовывать с предлагаемым темпом, или уведомлять, если возникает задержка на день-два. Этим вы мне чрезвычайно поможете.
К сожалению, пока из заявившихся активен только Владимир Тарасов. Хотелось бы появления "в деле" и других ранее желавших.

Dmitry Rechkin

unread,
Mar 10, 2021, 9:38:22 AM3/10/21
to CheckLog
Планы и дедлайны

Поскольку с наступлением тёплого сезона интенсивное программирование и тестирование естественным образом прекратятся, надо объявить о следующих ограничениях и требованиях:
  • Работающий код, на котором можно будет реально выполнять все упражнения в режимах Typewriter, Auto player, Simple training и CW-oke нужен не позднее 15.04.2021. Сейчас работают только режимы Typewriter и Auto player - остальные еще надо продумывать, а затем и реализовывать...
  • Генератор звука фиксируется в том виде, как он есть по состоянию на 10.03.2021 до тех пор, пока не будут решены все проблемы с основной функциональностью программы. Аналогично фиксируется генератор кода Морзе. Давайте уже не заморачиваться с качеством звука в имеющейся реализации - лучше я его на данном этапе не сделаю.
  • В дальнейшем можно будет думать над другими (возможно, существенно другими) решениями по генерации звука, в том числе - и на основе заранее подготавливаемых паттернов для отдельных знаков кода. Возможно, будет реализован и другой подход - при постоянно генерируемом сигнале будет сделано управление его громкостью в режиме реального времени.
  • Полное тестирование и отладка программы в указанном объеме должны быть завершены не позднее 30.04.2021. Полученная версия будет доступна для бета-тестеров и отдельных желающих, безвозмездно. Да и я сам надеюсь работать с ней, как пользователь - есть устойчивое желание начать практическую работу в эфире морзянкой уже этим летом.
  • Всё, что останется не реализованым - будет доделываться уже осенью 2021 года, после завершения полевого сельскохозяйственного сезона.
  • Полная версия будет опубликована для широкого применения, также безвозмездно. Но не ранее, чем будут получены положительные заключения от бета-тестеров.
Полная документация будет писаться тогда, когда завершится разработка программы с полной запланированной функциональностью. Документация будет писаться на двух языках - русском и английском. Английский вариант войдет полностью в установочный комплект. Русский - останется в Гугл-группе. Да, так я выражаю свою признательность русскоговорящему (русскомолчащему) сообществу, которое до сих пор пассивно наблюдает, как меня и мои произведения гнобят отдельные быдло-модерасты и доброхоты. Ни один из тех, кто был проинформирован об этих обстоятельствах - не стал даже обращаться к этим модерастам с требованием немедленно прекратить гнобление и травлю и вернуть  мне все права, связанные с аккаунтами на публичных форумах.

Dmitry Rechkin

unread,
Mar 12, 2021, 10:45:34 AM3/12/21
to CheckLog
Версия 0.00.006 (build 0312) передается в тестирование.

Лежит в известном месте. Требуется возможно более полное тестирование функциональности в режимах: Typewriter, Auto player и Simple training. Имейте в виду - переключение языка влияет на язык генерации упражнений, поэтому отнюдь не рекомендую генерировать упражнение на английском, потом переключать на русский и запускать на выполнение. Наловите одних ошибок, натурально. В остальном - всё должно быть интуитивно понятно, если же чего-то неясно - пишите вопросы, можно в группе.

Замечания принимаются по электрической почте.

Dmitry Rechkin

unread,
Mar 13, 2021, 6:18:57 AM3/13/21
to CheckLog
Версия 0.00.007 (build 0313) готова  и передается в тестирование.

Режимы теперь называются так:
  • Typewriter - "пишущая машинка", можно загружать готовые текстовые файлы либо самостоятельно вводить текст построчно (через строку ввода). Можно также генерировать тексты упражнений. Текст для передачи полностью отображается в окне. При передаче каждого знака он выделяется. Реакции на передаваемые знаки не требуется. Виртуальная клавиатура подсвечивается, но не используется при вводе текста.
  • Auto player - почти как Typewriter, но строка ввода заблокирована. Поддерживается неограниченное дополнение текста упражнения при настройке Limit=Unlimited. В основном рассчитан на генерацию упражнений. Текст для передачи полностью отображается в окне. При передаче каждого знака он выделяется. Реакции на передаваемые знаки не требуется. Виртуальная клавиатура подсвечивается, но не используется при вводе текста.
  • CW-oke training - работа с текстами генерируемых упражнений. Текст до передачи не показывается, переданные знаки появляются в окне. При передаче знака на виртуальной клавиатуре подсвечивается соответствующая клавиша. В зависимости от заданного уровня выполнения упражнения может потребоваться реакция на передаваемые знаки, через физическую либо виртуальную клавиатуру. Ошибочно принятые знаки подсвечиваются красным.
  • Blind training - аналогично CW-oke training, но передаваемые знаки на виртуальной клавиатуре не подсвечиваются. В зависимости от заданного уровня выполнения упражнения может потребоваться реакция на передаваемые знаки, через физическую либо виртуальную клавиатуру. Ошибочно принятые знаки подсвечиваются красным.
Язык текста генерируемых упражнений зависит от текущего языка клавиатуры (переключение кнопкой виртуальной клавиатуры - расположена слева внизу, либо системными средствами).

Уровни выполнения упражнений:
  • Level=A - только воспроизведение знаков (набор - исключительно для заданного упражнения) для прослушивания. Реакции оператора не требуется.
  • Level=B - воспроизведение знаков заданного упражнения и проверка их приема (требуется после звучания знака нажать соответствующую клавишу на физической либо виртуальной клавиатуре). Верно принятые знаки отображаются обычным (черным) шрифтом. Ошибки подсвечиваются - белый шрифт на красном поле.
  • Level=C - только воспроизведение знаков (набор включает знаки выбранного и всех предыдущих упражнений)  для прослушивания  . Реакции оператора не требуется.
  • Level=D - воспроизведение знаков заданного и всех предшествующих упражнений и проверка их приема (требуется после звучания знака нажать соответствующую клавишу на физической либо виртуальной клавиатуре). Верно принятые знаки отображаются обычным (черным) шрифтом. Ошибки подсвечиваются - белый шрифт на красном поле.
При переходе от одного режима к другому настройки упражнений и уровней сбрасываются. Для выполнения упражнения надо дать команду [Play], через меню либо виртуальную клавиатуру. Останов выполнения - по команде [Pause]. После останова выполнение упражнения можно продолжить. Если упражнение выполнено полностью, режим [Pause] включается автоматически.

Настройки звукового генератора зависят от возможностей выбранной звуковой карты (Audio playback device) и параметров ее работы (Sound parameters), управление балансом (Balance) включается только для стерео-режимов. Звук может генерироваться как в синхронном (Generation mode=Non-threading), так и в асинхронном (Generation mode=Threading) режимах. Варианты сглаживания фронта и тыла звуковых импульсов (Smooth) могут быть следующими:
  • None - нет сглаживания, фронт и тыл импульсов максимально крутые.
  • Linear - линейное сглаживание, равномерный рост либо спад громкости звука на фронте и тыле каждого импульса.
  • Exponential - экспоненциальное сглаживание, скорость нарастания громкости звука находится в обратной зависимости от самой громкости. На крутизну фронта/тыла влияет значение Gradient (1 - сглаживание ближе к линейному, 9 - максимально крутые сглаженные фронт/тыл).
В-общем, программа доведена до запланированного набора возможностей, и (как мне кажется) может применяться для целей практического обучения приему азбуки Морзе на слух, с записью принимаемых текстов (на физической либо виртуальной клавиатуре). Существенной новизной данной реализации является режим CW-oke (я не встречал ранее ничего подобного, ни в одной из реализаций подобных тренажеров). "Бегущая строка" знаков Морзе должна помочь неопытным операторам в начале обучения. Надеюсь, что программа будет работать корректно... однако с благодарностью приму от тестировщиков сообщения об обнаруженных ошибках. Эта версия уже близка к пре-релизу, поэтому тестирование должно быть направлено не только на поиск несоответствий, но и на сбои в результате любых попыток "загнать программу в угол".

Исполняемый модуль MorseMaster.exe  лежит в известном месте. Для работы нужно скачать его на свой компьютер, и разместить в отдельной папке. Можно также скачать текстовые файлы - как примеры транировочных текстов. Напоминаю - автор крайне заинтересован в отзывах об этой программе - особенно о ее возможностях, дизайне и применённых методических, технологических и научных решениях.

Все сообщения об ошибках прошу отправлять по электрической почте, не перегружая группу.

Dmitry Rechkin

unread,
Mar 14, 2021, 6:09:26 AM3/14/21
to CheckLog
Версия 0.00.007 (build 0314)

Прикрутил еще и "голубую мечту фаллометриста" - функцию подсчета очков за выполнение упражнений. В режиме прослушивания даёт теоретически возможную максимальную сумму очков, в режиме тренировки - реально набранную сумму.

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

Я не знаю, какие величины накопленной суммы будут у какого из пользователей, по себе могу сказать - выполнил Упражнение 01, Уровень B, в режиме CW-oke training, получил вот такой результат:
MorseMaster.0.00.007.png
Наверное, 54 - это скорее мало, чем много... Спасибо, что не ноль. Будем улучшать.
Для получения этой справки надо (а) выполнить упражнение, (б) вызвать справку о счете через меню Help -> Last score ...

Выложена в известное место. Пользуйтесь!

Pavel Makhov

unread,
Mar 18, 2021, 1:00:07 PM3/18/21
to CheckLog
Дмитрий, имеются мысли.

По просьбе Дмитрия, свои замечания и идеи буду писать в группе.

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

Кстати, идея, добавить в программу детектирование "точки-тире" при передаче с ключа, который подключать к ПК. Будет очень здорово так тренировать передачу. :) Предвидя твои мысли, согласен, что сейчас мало кто в эфире работает с ключа. Достаточно лишь принять, а передача идет автоматически с ПК. :)

Как-то так, пока больше критики и идей нет. Буду тестировать новые версии программы :)


воскресенье, 14 марта 2021 г. в 13:09:26 UTC+3, Dmitry Rechkin:

Dmitry Rechkin

unread,
Mar 19, 2021, 10:54:39 AM3/19/21
to CheckLog
Версия 0.00.009 (сборка 0319) - по-видимому, тянет на финальную бету.

Сегодня, 19.03.2021, закончил глубокую ревизию кода MorseMaster, прикрутил к нему много интересных фич. Постепенно программа приобретает более-менее "товарный" вид. Лично мне уже нравится (что немало), и я реально начал с этой версией регулярные результативные тренировки (что полезно).

Выложена в известном месте. Можно забирать и тестировать
 А также начинать использовать по прямому назначению (если кто-то до сих пор стеснялся или боялся этого).
Уже можно, да.

Просьбы к тестировщикам (и не только):
  • Проверять всю возможную функциональность, на корректность реализации, наличие логики и отсутствие противоречий со здравым смыслом.
  • По возможности подробно описать впечатления от этой версии, высказать нарастающие "хотелки" - чего добавить, чего убавить.
  • Начать готовить свои вопросы - что и в каких подробностях отражать в документации. Я думаю, что будет два документа. Первый - собственно мануал (инструкция для пользователя) с картинками (кстати, какие формы надо показывать не только к вачестве примера, но и в динамике заполнения?). И второй - ЧаВО (FAQ) - "часто задаваемые вопросы и олтветы на них", голый текст, рассчитанный на неподготовленного пользователя, а также на потенциального пользователя (сомневающегося - надо ли брать эту программу, и начинать учить морзянку).
Считайте эту публикацию подарком к предстоящим выходным.
Пусть они пройдут для вас с толком и удовольствием.

Dmitry Rechkin

unread,
Mar 20, 2021, 3:40:09 PM3/20/21
to CheckLog
четверг, 18 марта 2021 г. в 20:00:07 UTC+3, Pavel Makhov:
Кстати, идея, добавить в программу детектирование "точки-тире" при передаче с ключа, который подключать к ПК. Будет очень здорово так тренировать передачу. :) Предвидя твои мысли, согласен, что сейчас мало кто в эфире работает с ключа. Достаточно лишь принять, а передача идет автоматически с ПК. :)

Ну, я лично  всерьез подозреваю, что "картофелеводы", особенно - те, которыен "с Кубани", вообще морзянку никогал не учили, а "понтовую I категорию" имеют именно потому, что накрыли поляну начальничкам местного РО СРР. Потому как понты дороже денег... а при полном отсутствии каких-либо талантов надо хоть как-то выделяться. Хоть I-й категорией, если больше нечем...

Сегодня пришли мне по почте ранее заказанные у китайцев устройства. Для преобразования имеющегося внешнего USB в COM-порт. Ну, при наличии соответствующих драйверов. Которые по умолчанию или не находятся, или не подходят. Устройство выглядит так:

USB-COM-VCP-P1.jpg

Вроде как бы интересного мало, да? А вот если перевернуть и посмотреть внимательно - интересного там очень даже:

USB-COM-VCP-P2.jpg

Не понятно? Поясняю: сигналы DSR и CTS - это входные аналоговые сигналы на COM-порту. Да, надо найти соответствуюшщий драйвер. Сразу доложу - я его таки нашел. Нашел и для WinXP, и для Win7. На других платформах пока не проверял, грешен.

Так вот, у этой фиговинки совершенно копеечной стоимости есть и DSR, и CTS. И найденные драйверы поддерживают подачу логической единицы что на тот, что на другой контакт. Цепляем один из них (например, CTS) на "точку", второй (тогда уже DSR) на "тире". Остается допаять три проводка до разъема типа "банан", чтобы подсоединить ключ. Хоть клоподав, хоть виброплекс, хоть ямбик - разницу можно учесть в программном обработчике. От фантазий на эту тему пока воздержусь - предлагайте свои идеи.

Да, переходник на основе этой карточки я спаял уже сегодня, часа через два после занесения фиговинок в квартиру. И да, он работает. У меня ямбический ключ, оба сигнала (точки и тире) снимаются в реальном времени, без "дребезга"). Е еще да, я нашел неплохой комплект компонеент для Delphi, чтобы использовать программную поддержку вортуального COM-порта, создаваемого правильными драйверами этой карточки в системе. И да-да, проверил на WinXP и Win7 - таки работает, зараза...

Отдельное примечание для Павла Махова: я о чем-то догадывался, когда заказывал эти девайсы на АлиЭкспресс еще 04.03.2021?
Кстати, доставлен заказ сегодня, 20.03.2021, что довольно-таки быстро. Без проблем и сопутствующих геморроев.

Dmitry Rechkin

unread,
Mar 22, 2021, 5:16:07 AM3/22/21
to CheckLog
Сценарии Morse Master - постановка задачи
(по состоянию и уровню понимания на 22.03.2021)

Этот текст публикуется с целью привлечения всех заинтересованных лиц к обсуждению основной функциональности Morse Master. Прошу всех, принимающих участие в тестировании, высказаться - устраивает такая постановка задачи, или нет. Что требует уточнения, что надо исключить, а что - наоборот, добавить... Обсуждение постановки задачи прошу вести в группе - индивидуальные электрические письма не позволяют выработать общепризнанный вариант и лишают всех, не включенных в переписку, возможности влиять на процесс (надодить ошибки, несоответствия, предлагать идеи и т.п.).

Начальные условия

При старте программы клавиатура полностью открыта, заголовок главной формы содержит только информацию о версии программы.

В меню Actions отметка установлена на последнем выполнявшемся режиме предыдущего запуска.

Режим Typewriter

При переходе в режим Typewriter клавиатура полностью открыта, строка ввода открыта, ввод возможен как с физической, так и с виртуальной клавиатуры.

Открыты пункты меню FileLoad text и Exercise.

Load text – клавиатура полностью открыта. Указатель строк устанавливается в максимум, указатель символов устанавливается в минимум. Текст из файла загружается полностью в буфер и окно передачи. Указатель ставится на начало текста. В заголовке показывается имя файла.

Exercise – на клавиатуре открываются только символы выбранного упражнения, остальные блокируются (Enabled=False). Указатель строк устанавливается в максимум, указатель символов устанавливается в минимум. Текст сгенерированного упражнения загружается полностью в буфер и окно передачи. Указатель ставится на начало текста. В заголовке показываются сведения об упражнении.

Play – включает воспроизведение кода Морзе (посимвольно) с указанием текущего символа перемещающимся по тексту курсором. Воспроизведенные («переданные») символы перекрашиваются в серый цвет. После завершения упражнения заголовок возвращается к стандартному виду.

Pause – приостанавливает передачу. Состояние клавиатуры не меняется, курсор в тексте пропадает. Заголовок окна не меняется.

Реакция на клавиатурные нажатия при передаче не предполагается – весь вводимый текст направляется в строку ввода.

Режим Auto player

При переходе в режим Auto player клавиатура полностью открыта, строка ввода заблокирована. Клавиатурные нажатия обрабатываются только при воспроизведении (Play).

Открыты пункты меню FileLoad text и Exercise.

Load text – клавиатура полностью открыта. Указатель строк устанавливается в максимум, указатель символов устанавливается в минимум. Текст из файла загружается полностью в буфер и окно передачи. Указатель ставится на начало текста. В заголовке показывается имя файла.

Exercise – на клавиатуре открываются только символы выбранного упражнения, остальные блокируются (Enabled=False). Указатель строк устанавливается в максимум, указатель символов устанавливается в минимум. Текст сгенерированного упражнения загружается полностью в буфер и окно передачи. Указатель ставится на начало текста. В заголовке показываются сведения об упражнении.

Play – включает воспроизведение кода Морзе (посимвольно) с указанием текущего символа перемещающимся по тексту курсором. Воспроизведенные («переданные») символы перекрашиваются в серый цвет. После завершения упражнения заголовок возвращается к стандартному виду.

Pause – приостанавливает передачу. Состояние клавиатуры не меняется, курсор в тексте пропадает. Заголовок окна не меняется.

Клавиши виртуальной клавиатуры во время передачи символа подсвечиваются, своевременное нажатие клавиши анализируется: правильно принятый символ в окне передачи отмечается черным цветом шрифта. Несвоевременные и неверные нажатия игнорируются. Ошибки приема не фиксируются и не анализируются.

Режим CW-oke trainer

При переходе в режим CW-oke trainer клавиатура полностью открыта, строка ввода заблокирована. Клавиатурные нажатия обрабатываются только при воспроизведении (Play).

Открыт пункт меню FileExercise.

Exercise – на клавиатуре открываются только символы выбранного упражнения, остальные блокируются (Enabled=False). Указатель строк устанавливается в максимум, указатель символов устанавливается в минимум. Текст сгенерированного упражнения загружается полностью в буфер. Окно передачи изначально пустое, заполняется при выполнении упражнения. Указатель ставится на начало текста. В заголовке показываются сведения об упражнении.

Play – включает воспроизведение кода Морзе (посимвольно), с ожиданием нажатия соответствующих переданным символам клавиш. Pause – приостанавливает передачу. Состояние клавиатуры не меняется. Заголовок окна не меняется.

Ожидаемые символы подсвечиваются на виртуальной клавиатуре, с ожиданием нажатия клавиши. Правильно принятые символы окрашиваются в черный цвет. Ошибочно принятые символы окрашиваются в белый цвет с красным фоном. По мере приема символы выводятся в окно передачи. Ошибки приема подсчитываются и анализируются – 10 ошибок при выполнении упражнения не позволяет засчитать результат.

Режим Blind trainer

При переходе в режим Blind trainer клавиатура полностью открыта, строка ввода заблокирована. Клавиатурные нажатия обрабатываются только при воспроизведении (Play).

Открыт пункт меню FileExercise.

Exercise – на клавиатуре открываются только символы выбранного упражнения, остальные блокируются (Enabled=False). Указатель строк устанавливается в максимум, указатель символов устанавливается в минимум. Текст сгенерированного упражнения загружается полностью в буфер. Окно передачи изначально пустое, заполняется при выполнении упражнения. Указатель ставится на начало текста. В заголовке показываются сведения об упражнении.

Play – включает воспроизведение кода Морзе (посимвольно), с ожиданием нажатия соответствующих переданным символам клавиш. Pause – приостанавливает передачу. Состояние клавиатуры не меняется. Заголовок окна не меняется.

При ожидании нажатия клавиши символы на виртуальной клавиатуре не подсвечиваются. Правильно принятые символы окрашиваются в черный цвет. Ошибочно принятые символы окрашиваются в белый цвет с красным фоном. По мере приема символы выводятся в окно передачи. Ошибки приема подсчитываются и анализируются –10 ошибок при выполнении упражнения не позволяет засчитать результат.

Режим Qualification

При переходе в режим Qualification клавиатура полностью открыта, строка ввода заблокирована. Клавиатурные нажатия обрабатываются только при воспроизведении (Play).

Открыт пункт меню FileExercise.

Exercise – на клавиатуре открываются только символы выбранного упражнения, остальные блокируются (Enabled=False). Указатель строк устанавливается в максимум, указатель символов устанавливается в минимум. Текст сгенерированного упражнения загружается полностью в буфер. Окно передачи изначально пустое, заполняется при выполнении упражнения. Указатель ставится на начало текста. В заголовке показываются сведения об упражнении.

Play – включает воспроизведение кода Морзе (непрерывно, с заданной скоростью). Принимаемые символы вводятся на физической или виртуальной клавиатуре, в соответствующем порядке.

Pause – останавливает передачу и фиксирует результат. Состояние клавиатуры не меняется. Заголовок окна возвращается к стандартному виду.

При ожидании нажатия клавиши символы на виртуальной клавиатуре не подсвечиваются. Правильно принятые символы окрашиваются в черный цвет. Ошибочно принятые символы окрашиваются в белый цвет с красным фоном. По мере приема символы выводятся в окно передачи. Ошибки приема подсчитываются и анализируются – 3 ошибки либо превышение нормативного времени выполнения упражнения не позволяет засчитать результат.

Режим Competition

При переходе в режим Competition клавиатура полностью открыта, строка ввода заблокирована. Клавиатурные нажатия обрабатываются только при воспроизведении (Play).

Открыт пункт меню FileExercise.

Exercise – на клавиатуре открываются только символы выбранного упражнения, остальные блокируются (Enabled=False). Указатель строк устанавливается в максимум, указатель символов устанавливается в минимум. Текст сгенерированного упражнения загружается полностью в буфер. Окно передачи изначально пустое, заполняется при выполнении упражнения. Указатель ставится на начало текста. В заголовке показываются сведения об упражнении.

Play – включает воспроизведение кода Морзе (непрерывно, с нарастающей скоростью). Начальное значение скорости определяется настройками, каждая следующая строка упражнения (при отсутствии ошибок приема) передается с увеличением скорости на 5 WPM относительно текущей. В случае ошибок приема скорость передачи следующей строки уменьшается на 5 WPM (но не меньше 10 WPM). Принимаемые символы вводятся на физической или виртуальной клавиатуре, в соответствующем порядке.

Pause – останавливает передачу и фиксирует результат. Состояние клавиатуры не меняется. Заголовок окна возвращается к стандартному виду.

При ожидании нажатия клавиши символы на виртуальной клавиатуре не подсвечиваются. Правильно принятые символы окрашиваются в черный цвет. Ошибочно принятые символы окрашиваются в белый цвет с красным фоном. По мере приема символы выводятся в окно передачи. Ошибки приема подсчитываются и анализируются – 5 ошибок либо превышение нормативного времени прекращает выполнение упражнения и не позволяет засчитать результат. При отсутствии ограничений на количество символов в упражнении зачет выполняется по пяти соседним полным строкам (250 символам) с наилучшим результатом.

Dmitry Rechkin

unread,
Mar 23, 2021, 7:48:50 AM3/23/21
to CheckLog
Версия 0.00.010 (сборка 0323)

Функции опубликованных сценариев реализованы в следующем объеме:
  • Typewriter
  • Auto player
  • CW-oke trainer
  • Blind trainer
Для всех режимов поддерживается выдача результата в баллах для последнего выполненного упражнения
  • Help -> Score -> Last exercise
Для режимов CW-oke trainer и Blind trainer поддерживается ведение сводной зачетной таблицы
  • Help -> Score -> Summary
Добавлен показ информации о регистрации (изменение этих данных через Help -> Registration):

MorseMaster-AutoPlayer.jpg

Регистрация, в принципе, ни к чему не обязывает, и ее данные никому и никуда не отправляются. Однако в заголовках окон о достигнутых результатах регистрационные сведения показываются - поэтому можно показывать скриншоты всем, кому ни попадя. С любой целью.

Выложено в известном месте.

Я жду отзывов тестировщиков о работе в режимах CW-oke trainer и Blind trainer.
Когда получу их - буду заниматься режимом Qualification.
В полном соответствии с опубликованным сценарием.

Dmitry Rechkin

unread,
Mar 24, 2021, 10:26:28 AM3/24/21
to CheckLog
Версия 0.00.010 (сборка 0324)

Исправлены некоторые ошибки и мелкие "ляпы". Основная функциональность не изменилась.
Выложено в известном месте.

По-прежнему требуется тестирование в режимах Typewriter, Auto player, CW-oke trainer и Blind trainer.

Dmitry Rechkin

unread,
Mar 30, 2021, 3:18:59 PM3/30/21
to CheckLog
Изменения в постановке задачи (по состоянию на 30.03.2021)

С точки зрения эффективного обучения слепому десятипальцевому методу набора на клавиатуре, следует учитывать раскладку клавиш по рядам:
Раскладка клавиатуры.jpg
Поэтому состав упражнений должен быть таким:
Уупражнения.jpg
Очередная сборка будет приведена в соответствие с изменившимися требованиями.

Dmitry Rechkin

unread,
Mar 30, 2021, 3:37:07 PM3/30/21
to CheckLog
Версия 0.00.010 (сборка 0330) соответствует изменившимся требованиям.

Выложена в известном месте.
Reply all
Reply to author
Forward
0 new messages