Японский радиолюбитель Makoto Mori, JE3HHT, широко известный своими программами MMTTY, MMANA, MMSSTV - написал еще одну отличную программу для любителей поработать цифровыми видами связи (bpsk, mfsk, rtty, gmsk). Программа написана очень качественно и продуманно, впочем как и другие программы автора, работать на ней - одно удовольствие.
Окно программы можно условно разбить на несколько частей. Вверху справа расположен индикатор настройки с примыкаюшей к нему панелью управления переключения вида индикатора FFT(Спектроскоп), W.F. (Водопад), Sync (Синхроимпульсов) и ширины отображаемой области 500-1K-2K-3K в герцах. Слева кнопки задания разных режимов работы и видов модуляции. Секция BPF управляет шириной полосы пропускания фильтра DSP, чем уже выбранный фильтр, тем больше нагружается процессор компьютера, но и качество приема слабого сигнала реально возрастает. Кнопка AFC(АПЧ) включает систему автоподстройки на частоту сигнала, надо заметить что в данной программе имеется возможность в регулировки в широких пределах как по ширине захвата так и по уровню. Кнопка NET позволяет в отжатом состоянии зафиксировать частоту сигнала на передачу, при этом свободно менять настройку на прием, а в активированном состоянии частота передачи всегда будет равна частоте приема. Отдельно надо выделить кнопку ATC это автоматический контроль синхронизации полезная функция при проведении QSO через полярные области имеет широкие возможности по настройке через Setup программы.
Разработку этой программы автор начал, потому что ни одна из ранее написанных программ не могла работать с иероглифами (япония, китай и др.) в цифровых видах связи. Русские буквы также печатаются без проблем. MMVARI работает со звуковой картой ПК и к ней подойдет любой интерфейс от MixW, MiltiPSK, Stream, MMTTY, MMSSTV. Встроенные средства для калибровки звуковой карты, позволяют быстро настроить компьютер и выйти в эфир. Интерфейс программы поддерживает два языка, японский и английский. Русский текст принимается и передается вполне корректно, только аппаратный журнал не поддерживает заполнение полей русскими буквами.
Заготовленные тексты, макросы и их использование
Обычно перед
проведением цифровых QSO, типовые тексты заготавливают заранее. Как уже
говорилось, макросы в программе настолько разнообразны, что просто поражают
воображение. Для того чтобы приготовить текст, нажмите правой клавишей мышки, на
любой кнопке находящейся ниже передающего окна.
<%TX> перейти на передачу <%RX> перейти на прием <%TXRX> переключиться в противоположное состояние <%TXOFF> выключить передачу <%AutoClear> автоматически очищать предающее окно <%ClearTXW> очистить передающее окно <%ClearRXW> очистить приёмное окно <%MyCall> мой позывной <%HisCall> позывной корреспондента <%HisName> имя корреспондента <%DearName> подстановка имени корреспондента во фразу: Dear имя <%HisRST> рапорт для вашего корреспондента <%MyRST> мой рапорт <%FREQ> текущая частота <%BAND> текущий диапазон <%HisQTH> местоположение корреспондента <%Note> текст написанный в заметках <%UDATE> текущяя UTC дата <%UTIME> текущее UTC время в формате HH:MM <%UTIMES> текущее UTC время в формате HH:MM:SS <%LDATE> местная дата <%LTIME> местное время (HH:MM) <%LTIMES> местное время (HH:MM:SS) <%PTIME> <%LPTIME> <%QPTIME> <%Capture> <%HisGreetings=2> атоматическое приветствие (1=GA, 2=Good morning) <%HisNR> <%MyNR> <%Entity=<%HisCall>> <%EntityName=<%HisCall>> <%Continent=<%HisCall>> <%PLATFORM> тип операционной системы <%CodePage> кодовая страница выбранного языка <%LanguageID> цифровой идентификатор выбранного языка <%VER> версия программы <%VERMINOR> <%VARITYPE> <%MODE> текущий режим работы <%Level> соотношение сигнал-шум корреспондента <%PeakLevel> <%AverageLevel> <%MetricMFSK> <%MetricMFSK=even> <%SquelchLevel=3.0> установить уровень шумоподавителя (s/n=3db) <%CWID> передать свой позывной CW в конце <%CWID= 73 :> <%CWSpeed=20> скорость передачи CW <%MODE=GMSK> установить режим работы (rtty, bpsk, mfsk...) <%AutoNET> включить автоподстройку передачи автоматически <%NETON> включить автоподстройку передачи <%NETOFF> выключить автоподстройку передачи <%AFCON> включить автоподстройку приёма <%AFCOFF> выключить автоподстройку приёма <%ATCON> включить регулировку усиления <%ATCOFF> выключить регулировку усиления <%RxCarrier> показать текущую частоту приема <%TxCarrier> показать текущую частоту передачи <%RxCarrier=1750> установить текущую частоту приема <%TxCarrier=1750> установить текущую частоту передачи <%AFCFrequency> показать частоту автоподстройку приема <%TONE> передать одиночный тон <%BPF=0> установить один из фильтров 0, 1, 2 или 3 <%BPFTaps=64,80,128,256> установить ширину dsp-фильтров <%Notch=ONOFF> включить-выкл notch-фильтр <%Notch=1750> установить частоту notch-фильтра <%NotchTaps=128> установить ширину notch-фильтра <%NotchWidth=1> <%BAUD> показать текущую скорость работы <%BAUD=31.25> установить скорость <%AFCWidth=50> <%AFCLevel=12> <%ATCSpeed=0> <%ATCLevel=15> <%ATCPPM> <%PTT=COM1> установить номер порта для управления ptt <%Radio=COM2> установить номер порта для обмена с трансивером <%RadioOut=\$000000000F> <%RadioCarrierKHz> <%RadioKHz> <%RadioKHz=YAESU-HF,14073.000> <%RadioMode> <%RadioMode=CI-V,LSB> <%PTTON> нажать ptt <%PTTOFF> отпустить ptt <%FFTScale> <%FFTScale=2> <%FFTWidth=1000> <%SyncWidth=14> <%ShowCH=1,ONOFF> <%SetCHSpeed=1,31.25> <%SetCHMode=1,GMSK> <%ClearCHW=1> <%QSOON> обозначить начало qso <%QSOOFF> обозначить конец qso <%FREQ=7> установить частоту <%BAND=40m> установить диапазон <%HisCall=<%Capture>> установить позывной корреспондента <%HisRST=599> установить рапорт корреспондента <%MyRST=599> установить установить мой рапорт <%Note=<%VARITYPE>> <%RefRXW> <%EditFile=memo.txt, 0> открыть файл (имя, только чтение) <%SendFile=test.txt> передать файл <%EditMacro=2> редактировать макрос с указанным номером <%EditMacro=OnStart> <%EditMacro=AS(CW)> <%EditMacro=MacroTxt.txt> <%MacroText=MacroTxt.txt> <%SaveMacro=Macros.mac> сохранить все макросы <%LoadMacro=Macros.mac> загрузить все макросы <%HEX2DEC=ABCD> <%CHAR=A> <%CHARX=A> <%CODE=82A0> <%SP> добавить пробел <%CR> добавить символ CR <%BS> добавить символ перевода строки <%TAB> добавить символ табуляции <%SkipCR> <%DisableCR> <%EnableCR> <%DisableTAB> <%EnableTAB> <%DisableSP> <%EnableSP> <%Skip$=3,<%HisCall>> <%MSkip$=3,<%Note>> <%Find$=xx,ABCxxVVV> <%StrLen=<%HisCall>> <%MStrLen=<%Note>> <%ONOFF=<%Cond=IsSQ>> <%RepeatText=3,<%RepeatText=33,RY><%CR>> <%IDLE> передавать idle сигнал <%DIDDLE=LTR> <%UOS=ON> <%RTTYWaitC=0> <%RTTYWaitD=0> <%RTTYWordOut=ON> <%TxShift=170.0> установить разнос тонов передачи <%RxShift=170.0> установить разнос тонов приёма <%ToUpper=<%HisName>> <%ToLower=<%HisCall> de <%MyCall>> <%IME=ON> контроль IME (on, off, onoff) <%RepeatTX=3000> повторить предачу через указанное кол-во ms <%Repeat=10000> повторить передачу макроса через указанное кол-во ms <%OnTimer=<%WaterMsg=4,<%AFCFrequency>Hz>> <%Page=1> <%AutoReturn> <%MoveTop> <%MoveEnd> <%PopupTXW> <%DupeText> <%SeekNext> <%SeekPrev> <%SeekTop> <%DigitalLevel=16384> <%OutputVolume> <%InputVolume> <%Setup> <%SetupLog> <%SetupRadio> <%Calibration> открыть окно для калибровки звуковой карты <%BaseClock> <%Clock> <%Clock=11025.00> <%TxOffset> <%TxOffset=0.00> <%DemodulatorClock> <%FFTClock> <%FFTSize> <%WaterNoise> <%WaterNoise=35,65> <%WaterLevels> <%WaterLevels=10,60,134,192,220,240> <%WaterColors> <%WaterColors=0,FF0000,FFFFFF,FF,FFFF00,FF0000,FFFF00,FFFF,80FF,FF,FF,FF> <%SpectrumColors> показать цвет водопада <%SpectrumColors=0,FF00,FFFFFF,808080,FFFF00,FF0000> установить цвет водопада <%RxColors> показать цвет rx окна <%RxColors=FFFFFF,0,FF0000,FF,E0E0E0> <%TxColors> показать цвет tx окна <%TxColors=FFFFFF,0,FF0000,FF,FFFFFF> <%SoundName> показать имя звуковой карты <%SoundDevice=MONO,-1> <%Suspend> <%Resume> <%Wait=1000> ожидание в ms <%Execute=notepad.exe <%Folder>memo.txt> <%Shell=<%Folder>emmvari.txt> <%Exit> выйти из программы <%ShutDown> <%YesNo=String> <%YesNoCancel=String> <%OkCancel=String> <%Error=Macro ERROR> <%Warning=Macro WARNING> <%Message=Macro message> <%WaterMsg=4,Metric=<%MetricMFSK>> <%Repeat=1000> <%RxStatus=Status> <%TableCount=AAA,BBB,CCC> <%TableStr=1,AAA,BBB,CCC> <%Table=<%BAUD>,20.0,31.25,45.0> <%Menu=A,B,C,D> <%MenuB="<%Table=<%BAUD>,20.0,31.25,45.45,62.5>",20.0,31.25,45.45,62.5> <%Menu> <%Input=Input strings> <%Input$> <%Click$> <%CLICK$> <%vvv> <%KeyStroke=41> <%KeyDown=12> <%KeyStroke=<%CHARX=V>> <%KeyUp=12> <%KeyUp=12> <%DoMacro=2> <%DoEvent=OnMode> <%Events> <%ButtonName=1,Clear> <%ButtonContents=1,<%ClearTXW>> <%PlayBack=ON> <%PlayBack=10> <%PlayBackSpeed=5> <%PlayBackButtons=60,30,15> <%PlaySound=sound.mmv> <%PlaySound> <%RecordSound=sound.mmv> <%RecordSound> <%QuickRecordSound> <%StopPlayRecord> <%SoundTime> <%Slider=CW speed,<%CWSpeed>,10,60,1,10> <%FileDialog=Text file,Text Files(*.txt)|*.txt|,Default,txt,> <%CPUBENCHMARK> <%RANDOM=<%PTIME>> <%RANDOM> <%String=Name> <%CallProc=Name> <%DebugProc=Name> <%Format=%.3f,<%BAUD>> <%Inv=<%Cond=IsSQ>> <%Floor=<%BAUD>> <%Log=10> вычислить логарифм указанного числа <%Exp=2.302585092994046> <%Sqrt=10> <%Pow=10,2> <%Sin=0.5> вычислить синус указанного числа <%Cos=0.5> вычислить косинус указанного числа <%Tan=0.5> вычислить тангенс указанного числа <%ArcTan=0.5> вычислить арктангенс указанного числа <%Cond=IsSQ> <%ListSpeed=20.0,31.25,45.45,62.5,93.75,125.0,250.0> <%ListCarrier=500,800,1000,1200,1500,1750,2000,2210> <%ListLogFreq=1.8,3.5,7,10,14,18,21,24,28,50,144,430,1200> <%SetCaptureLimit> <%ClearCaptureLimit> <%Font> <%Font=,14,> <%SetFocus> <%Folder> <%AddMenu=E&X,Caption&1,OnCaption1Click> <%InsertMenu=&H,&P,Caption&1, OnCaption1Click> <%ShowMenu=&F, ONOFF> <%EnableMenu=&F, ONOFF> <%ShortCut=&V, &C, &1, Ctrl+1> <%CheckMenu=&H, &P, ONOFF> <%DeleteMenu=&X> <%DoMenu=&V,&C,&1> <%DoButton=FFT> <%ShowHTML=home> <%SendMessage=PSKGNRFUNC,0,1> <%Memory> статус памяти (загрузка в %, всего в Мб, свободно в Мб.) <%BuffSize=4096> установить минимальный размер буфера для макроса <%EOF> символ конца макросаКак видите, здесь есть всё что только можно придумать, но и это еще не все! Теперь смотрите список Condition command, они применяются для создания сложных скриптов:
#if IsCall #if IsName #if IsHisRST #if IsMyRST #if IsQTH #if IsNote #if IsLocal #if IsQSO #if IsDupe #if IsAFC #if IsNET #if IsTX #if IsPTT #if IsSQ #if IsTone #if IsTXEmpty #if IsRXScroll #if IsRepeat #if IsIME #if IsPlaying #if IsFileSending #if IsRecording #if IsFile(test.txt) #if IsDefined(Name) #if IsMBCS(<%HisName>) #if IsAlpha(<%MyNR>) | #if IsNumber(<%MyNR>) #if IsUOS #if IsRadioLSB #if IsCaptureText(CQ) #if IsOnTimer #if IsIdle #if IsEnglish #if IsMfskCenter #if IsMfskMetricSq #if Is1stCR #if IsPlayBack #if IsCodeMM #if IsCall(<%CLICK$>) #if IsRST(<%CLICK$>) #if IsMenu(&H, &U) #if IsMenuEnabled(&H, &U) #if IsMenuChecked(&H, &U) #if IsMenuVisible(&H, &U) #if IsButton(QSO) #if IsButtonEnabled(QSO) #if IsButtonDown(QSO) #if ValFreq>=144 #if ValBaud==31.25 #if ValCarrierRX<1500 #if ValCarrierTX<1500 #if ValTimeLocal<1200 #if ValTimeUTC>=0900 | #if ValDateLocal>=0801 #if ValDateUTC<0401 #if ValScope #if ValMacro(<%VER>)>=0.37 #if ValMenu #if StrCall==JA3QRZ #if StrMode==GMSK #if StrBand==40m #if StrHisRST==599 #if StrMyRST==599 #if StrNote==??? #if StrEntity==JA #if StrContinent==AS #if StrVARITYPE==JA #if StrPLATFORM==XP #if StrMacro(<%VER>)==0.37 #else #endif #macro <%TX> #proc Name #endp конец процедуры #repeat 3 #define Name Strings #DELETE Name #DELETEALL #exit выход из макроса #comment строка с коментарием |
Полезные макросы и дополнения от RN9AAA
Виктор rn9aaa много
экспериментирует с программой mmvari, он прислал полезные и интересные скрипты,
расширяющие возможности управления программой и демонстрирующие примеры
использования ее скриптов.
Управление добротностью полосового DSP-фильтра
Внимание установка
добротности 512 не документированна но работает! Интересно то, что повышение
добротности не всегда оправданно, так что пробуйте разные варианты и
определитесь сами. <%DisableCR>
#macro <%Menu=16,32,64,80,96,112,128,256,512>
#if ValMenu
#define _cLine <%Format=%d,<%Input$>>
<%BPF=0><%BPFTaps=_cLine>
#endif
<%EOF>
Меню для управления DSP-фильтром
В этом макросе, я хотел показать
возможность совместной работы BPF и Notch фильтров, в режиме rtty смоделированна
более прогрессивная хар-ка с двумя узкими полосами, за счет взаимодействия двух
фильтров. В режиме bpsk-Narrow, в заваисимости от положения курсора, эмулируется
фильт нижних частот или же верхних, в дополнение к полосовому фильтру. Это дает
прирост в отношении сигнал-шум и позволяет более устойчиво работать системе ATC
и AFC, на предельно малом сигнале (пробуйте раные режимы). Для активации
переключения, необходимо в меню еще раз нажать на bpsk-Narrow. Для полного
отключения данного макроса, обязательно нажмите stop! <%DisableCR>
<%SquelchLevel=0><%AFCON>
#macro <%Menu=rtty-U-Smart,rtty-L-Smart,bpsk-Narrow,mfsk-U-DX,mfsk-L-DX, -, Stop>
#if ValMenu == 1
#macro <%OnTimer=<%MODE=rtty-U><%Notch=<%AFCFrequency>>><%NotchTaps=512><%NotchWidth=40>
#elseif ValMenu == 2
#macro <%OnTimer=<%MODE=rtty-L><%Notch=<%AFCFrequency>>><%NotchTaps=512><%NotchWidth=40>
#elseif ValMenu == 3
<%MODE=bpsk><%BPF=0><%BPFTaps=256><%NotchTaps=512><%NotchWidth=400>
#if <%AFCFrequency> >= 1450
#macro <%OnTimer=<%Notch=<%Format=%f,<%AFCFrequency>-433>>>
#else
#macro <%OnTimer=<%Notch=<%Format=%f,<%AFCFrequency>+433>>>
#endif
#elseif ValMenu == 4
#macro <%OnTimer=<%MODE=mfsk-U><%Notch=OFF><%BPF=0><%BPFTaps=96>>
#elseif ValMenu == 5
#macro <%OnTimer=<%MODE=mfsk-L><%Notch=OFF><%BPF=0><%BPFTaps=96>>
#elseif ValMenu == 6
#macro <%OnTimer=><%Notch=OFF>
#endif
<%EOF>
Установка порога чуствительности 'водопада'
Своего рода это
подавитель визуальных помех, но не стоит ставить большие значения т.к. вы можете
не увидить сигнал, он окажется за порогом отображения. С помощью этого макроса я
устанавливаю уровень сигнала с приемника на зв.карту, для моего харда
(AC97-ALC201A) величина равна 38-42дб, при этом, прием самых слабых сигналов
оптимален. Внимание, порог индикации не документированны, автор предлагает
только 35 и 65дб! <%DisableCR>
#macro <%Menu=16,25,35,45,55,65,75>
#if ValMenu
#define _cLine <%Format=%d,<%Input$>>
<%WaterNoise=_cLine>
#macro <%OnTimer=<%WaterMsg=4,УРОВЕНЬ <%WaterNoise>dB>>
#endif
<%EOF>
Определение страны по позывному
Скрип облегчает определение страны
по позывному. Имеет два режима Auto Info Call автоматический анализ принятой
информации и поиск в ней позывных, и ручной режим Manual info Call, вы сами
выбираете позывной с помощью клика мышки. <%DisableCR>
#comment made rn9aaa 2004.11.06
#macro <%Menu=Auto Info Call,Manual info Call,-, Stop>
#if ValMenu == 1
#macro <%OnTimer=<%WaterMsg=4,<%Capture>><%WaterMsg=3,<%EntityName=<%Capture>> ** <%Continent=<%Capture>>>>
#elseif ValMenu == 2
#macro <%OnTimer=<%WaterMsg=3,<%EntityName=<%HisCall>> ** <%Continent=<%HisCall>>>>
#elseif ValMenu == 3
#macro <%OnTimer=>
#endif
<%EOF>
Изменение разноса между частотами
Часто в режиме RTTY(FSK-W)
операторы используют нестандартные разносы частот, для быстрой настройки на
такие сигналы, я предлагаю следующий скрипт (примечание: стандарт для RTTY HAM
170HZ). <%DisableCR><%DisableTAB>
#comment made rn9aaa 2004.11.06
#define _tTitle Shift RTTY and FSK-W
#define _tCommand TxShift
#define _tRange "10,450,1"
#macro <%Menu=_tTitle>
#if ValMenu
#define _strArg <%TableStr=<%Menu>,_tTitle>,<%TableStr=<%Menu>,_tCommand>,<%TableStr=<%Menu>,_tRange>
<%CallProc=Slider, _strArg>
#endif
#proc Slider @Title, @Command, @Min, @Max, @Step, @NumScales
<%DisableCR>
#macro <%Slider=@Title, <%@Command>, @Min, @Max, @Step, @NumScales>
#if StrMacro(<%Input$>)
<%@Command=<%Input$>> <%RxShift=<%Input$>>
#endif
#endp
<%EOF>
Изменения в файле ARRL.DX
Скачайте себе и положите в директорию с
программой MMVARI, новый
файл ARRL.DX , он расширен и дополнен, базой данных по российским и
украинским префиксам. Теперь, пользоваться программой стало еще удобнее!
Заключение
MMVARI использует продвинутый алгоритм, который
позволяет вести качественный прием слабых сигналов и по этому показателю она
выигрывает у других программ, аналогичного назначения. Скорость обмена
регулируется во всех цифровых видах. Программа пока официально не выпущена, но
даже бета версии работаю очень хорошо. Скачать программу, можно с японского сайта автора, размер
архива примерно 700Кб. С другими программами JE3HHT, вы можете познакомится на
сайте mmhamsoft.ham-radio.ch.