Czas wykorzystać prezentowane na blogu sposoby na wysyłkę komend CAT do portu szeregowego do czegoś sensownego. Pomysł był taki – podręczne menu „wyskakujące”, do szybkiej zmiany wybranych ustawień radia przy użyciu komend CAT.
Okienko ma być tzw. popup’em wyskakującym po naciśnięciu środkowego klawisza myszy (rolki) lub alternatywnie – kombinacji klawiszy: Ctrl + prawy klawisz myszy
Przykładowe funkcje zawarte w menu:
– Ustawianie mocy; Każdy użytkownik FTDX 3000 doceni ten pomysł na ustawianie RF Power w radiu – nigdy więcej ciągłego kręcenia gałką ☺:
– Szybka zmiana funkcji wskaźnika SWR/ALC:
I wiele innych, wg zapotrzebowania i dostępnych komend CAT
Zbudowanie prostego menu w AHK pokazane jest dość dobrze w przykładzie #2 w tym helpie, ale mam nadzieję, że prezentowany poniżej skrypt jest dość przejrzysty, a jego rozbudowa i dopasowanie do własnych celów nie powinno być trudne.
Procedura wysyłająca dane do portu była opisana w części dotyczącej komend CAT, samo wysyłanie danych do portu szeregowego – przy opisie SerialSend, a wymagania konfiguracyjne tutaj.
Gotowy skrypt poniżej.
A do pobrania jako ZIP – TUTAJ
Powodzenia!
SetWorkingDir %A_ScriptDir% ; RadioMenu - podręczne menu szybkich komend TRX ; opracowanie: SP6OPC www.radiohotkey.pl ; komendy CAT użyte w skrypcie -> FTDX 3000 ; ; Wywołanie menu: ; klik w środkowy klawisz myszy (rolka) lub ; kombinacja klawisza Ctrl + prawy klawisz myszy ; ; Program SerialSend.exe ze strony https://batchloaf.wordpress.com/serialsend/ ; umieść w tym samym katalogu na dysku, co prezentowany skrypt ; Procedura wysyłania dowolnego ciągu znaków do portu szeregowego ; z użyciem programiku SerialSend.exe: wyslij(portc, br, komenda) { RunWait %ComSpec% /c serialsend.exe /devnum %portc% /baudrate %br% %komenda%,,Hide } ; wpisz poniżej numer portu COM dla CAT i używany przez Ciebie baudrate port := 8 BR := 19200 ;definicja menu - zobacz https://www.autohotkey.com/docs/commands/Menu.htm Menu, SubmenuRadio, Add, SWR, MHRadio Menu, SubmenuRadio, Add, ALC, MHRadio Menu, SubmenuRadio, Add, Amper, MHRadio Menu, SubmenuRadio, Add, Volt, MHRadio Menu, SubmenuPower, Add, 100W, MHPower Menu, SubmenuPower, Add, 90W, MHPower Menu, SubmenuPower, Add, 75W, MHPower Menu, SubmenuPower, Add, 50W, MHPower Menu, SubmenuPower, Add, 30W, MHPower Menu, SubmenuPower, Add, 15W, MHPower Menu, SubmenuFilter, Add, Contour, MHFcont Menu, SubmenuFilter, Add, APF, MHFapf Menu, SubmenuFilter, Add, Normal, MHFnorm Menu, SubmenuFilter, Add ; separator Menu, SubmenuFilter, Add, 300Hz, MHF300 Menu, SubmenuFilter, Add, 600Hz, MHF600 Menu, SubmenuFilter, Add, 3kHz, MHF3k Menu, SubmenuFilter, Add, 6kHz, MHF6k Menu, SubmenuPreset, Add, CW Narrow+Contour, MHP1 Menu, SubmenuPreset, Add, CW Normal, MHP11 Menu, SubmenuPreset, Add, CW Wide, MHP12 ;główne Menu Menu, MyMenu, Add, PRESET, :SubmenuPreset Menu, MyMenu, Add, Radio, :SubmenuRadio Menu, MyMenu, Add, Filters,:SubmenuFilter Menu, MyMenu, Add, Power, :SubmenuPower Menu, MyMenu, Add Menu, MyMenu, Add, Cancel return ; poniżej obsługa MenuHandler ; metoda 1 ; wspólny MenuHandler i zmienna A_ThisMenuItem MHPower: switch A_ThisMenuItem { case "100W": wyslij(port,BR,"PC100;") case "90W": wyslij(port,BR,"PC090;") case "75W": wyslij(port,BR,"PC075;") case "50W": wyslij(port,BR,"PC050;") case "30W": wyslij(port,BR,"PC030;") case "15W": wyslij(port,BR,"PC015;") } return MHRadio: switch A_ThisMenuItem { case "SWR": wyslij(port,BR,"MS3;") case "ALC": wyslij(port,BR,"MS1;") case "Amper": wyslij(port,BR,"MS4;") case "Volt": wyslij(port,BR,"MS5;") } Return ; metoda 2 - dedykowane MenuHandler MHP1: wyslij(port,BR,"MD07;NA01;CO0001;RF04;") return MHP11: wyslij(port,BR,"MD07;NA00;CO0000;RF05;") return MHP12: wyslij(port,BR,"MD07;NA00;CO0000;RF03;") return MHFcont: wyslij(port,BR,"CO0001;") return MHFapf: wyslij(port,BR,"CO0002;") return MHFnorm: wyslij(port,BR,"CO0000;") return MHF300: wyslij(port,BR,"RF05;") return MHF600: wyslij(port,BR,"RF04;") return MHF3k: wyslij(port,BR,"RF03;") return MHF6k: wyslij(port,BR,"RF02;") return Cancel: ;nic nie rób, tylko ukryj menu Return ^RButton:: ; Ctrl + prawy myszy lub.. MButton:: ; rolka, inaczej środkowy klawisz myszy .. Menu, MyMenu, Show ; uruchomi nasze podręczne menu Return #Z::ExitApp ; kombinacja Win-Z zakończy działanie skryptu
Jeżeli nie pasuje Ci użyty w kodzie program serialsend.exe, skorzystaj z alternatywnej procedury wysyłającej dane do COM, opisanej przy okazji komend CAT