mirror of
https://github.com/n5ac/mmtty.git
synced 2025-12-06 04:12:03 +01:00
- Changed version id to 1.70A - Added logic in Option.cpp to filter enumerated input and output devices to remove FlexRadio DAX special and reserved devices not used for audio (IQ & RESERVED) - Updated About dialog display including minor change to the form to extend size and avoid clipping of text fields - Cosmetic change to add "FlexRadio" as a CAT option to the "Kenwood, Elecraft" string - Updated .gitignore by adding mmtty.exe and files build using C++Builder.
563 lines
17 KiB
C++
563 lines
17 KiB
C++
//Copyright+LGPL
|
||
|
||
//-----------------------------------------------------------------------------------------------------------------------------------------------
|
||
// Copyright 2000-2013 Makoto Mori, Nobuyuki Oba, Dave Bernstein
|
||
//-----------------------------------------------------------------------------------------------------------------------------------------------
|
||
// This file is part of MMTTY.
|
||
|
||
// MMTTY is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License
|
||
// as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||
|
||
// MMTTY is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||
|
||
// You should have received a copy of the GNU Lesser General Public License along with MMTTY. If not, see
|
||
// <http://www.gnu.org/licenses/>.
|
||
//-----------------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
|
||
|
||
//---------------------------------------------------------------------
|
||
#include <vcl.h>
|
||
#pragma hdrstop
|
||
|
||
#include "RadioSet.h"
|
||
#include "Main.h"
|
||
//---------------------------------------------------------------------
|
||
#pragma resource "*.dfm"
|
||
|
||
//Define Maker groups; index is used by IsCompatible to select the correct Maker based on PollType (RADIO_POLLx)
|
||
LPCSTR __MK[]={
|
||
"Yaesu FT 1000D, 1000MP, 920", //AA6YQ 1.66 cosmetic, MakerIndex=0
|
||
"Yaesu FT 9000, 2000, 950, 450", //AA6YQ 1.66 , MakerIndex=1
|
||
"Yaesu FT 736, 817, 847, 857, 897", //AA6YQ 1.66 cosmetic, MakerIndex=2
|
||
"Icom xx=addr 01-7F", // , MakerIndex=3
|
||
"Ten-Tec Omni VI xx=addr 00-64", // , MakerIndex=4
|
||
"Kenwood, Elecraft, FlexRadio ", // , MakerIndex=5
|
||
"JRC JST-245", // , MakerIndex=6
|
||
"Clear", // , MakerIndex=6
|
||
NULL, // , MakerIndex=8
|
||
};
|
||
LPCSTR __MT[][3]={
|
||
{"", "\\$000000000F", "\\$000000010F\\w10" },
|
||
{"", "TX0;", "TX1;\\w10" }, //AA6YQ 1.66
|
||
{"\\$0000000000", "\\$0000000088", "\\$0000000008\\w10" },
|
||
{"", "\\$FEFExxE01C0000FD", "\\$FEFExxE01C0001FD\\w10" },
|
||
{"", "\\$FEFExxE01602FD", "\\$FEFExxE01601FD\\w10" },
|
||
{"", "RX;", "TX;\\w10" },
|
||
{"", "H1\\rX0\\rH0\\r", "H1\\rX1\\rH0\\r\\w10" },
|
||
{"", "", "" },
|
||
};
|
||
|
||
#define MAKER_UNKNOWN 6
|
||
|
||
typedef struct {
|
||
LPCSTR pKey;
|
||
int r;
|
||
}POLLDEF;
|
||
|
||
//Define a VFO group for each Maker Index
|
||
|
||
const POLLDEF __VT0[]={
|
||
{ "NONE", 0 },
|
||
{ "FT-1000D", RADIO_POLLFT1000D },
|
||
{ "FT-1000MP", RADIO_POLLYAESUHF },
|
||
{ "FT-920", RADIO_POLLFT920 },
|
||
{ NULL, 0 },
|
||
};
|
||
|
||
const POLLDEF __VT1[]={
|
||
{ "NONE", 0 },
|
||
{ "FT-9000", RADIO_POLLFT9000 }, //1.66B AA6YQ
|
||
{ "FT-2000", RADIO_POLLFT2000 }, //1.66B AA6YQ
|
||
{ "FT-950", RADIO_POLLFT950 }, //1.66B AA6YQ
|
||
{ "FT-450", RADIO_POLLFT450 }, //1.66B AA6YQ
|
||
{ NULL, 0 },
|
||
};
|
||
|
||
const POLLDEF __VT2[]={
|
||
{ "NONE", 0 },
|
||
{ "FT-817, 847, 857, 897", RADIO_POLLYAESUVU },
|
||
{ NULL, 0 },
|
||
};
|
||
const POLLDEF __VT3[]={
|
||
{ "NONE", 0 },
|
||
{ "Icom CI-V", RADIO_POLLICOM },
|
||
{ "Icom CI-V (no inquiry)", RADIO_POLLICOMN },
|
||
{ NULL, 0 },
|
||
};
|
||
const POLLDEF __VT4[]={
|
||
{ "NONE", 0 },
|
||
{ "Ten-Tec Omni VI", RADIO_POLLOMNIVI },
|
||
{ "Ten-Tec Omni VI (no inquiry)", RADIO_POLLOMNIVIN },
|
||
{ NULL, 0 },
|
||
};
|
||
const POLLDEF __VT5[]={
|
||
{ "NONE", 0 },
|
||
{ "Kenwood, Elecraft, FlexRadio", RADIO_POLLKENWOOD },
|
||
{ "Kenwood, Elecraft (use auto info)", RADIO_POLLKENWOODN },
|
||
{ NULL, 0 },
|
||
};
|
||
const POLLDEF __VT6[]={
|
||
{ "NONE", 0 },
|
||
{ "JST245", RADIO_POLLJST245 },
|
||
{ "JST245 (use auto info)", RADIO_POLLJST245N },
|
||
{ NULL, 0 },
|
||
};
|
||
|
||
|
||
|
||
const POLLDEF __VTUNKNOWN[]={
|
||
{ "NONE", 0 },
|
||
{ "YAESU FT-1000MP", RADIO_POLLYAESUHF },
|
||
{ "YAESU FT-1000D", RADIO_POLLFT1000D },
|
||
{ "YAESU FT-920", RADIO_POLLFT920 },
|
||
{ "YAESU FT-847", RADIO_POLLYAESUVU },
|
||
{ "ICOM CI-V", RADIO_POLLICOM },
|
||
{ "ICOM CI-V (no inquiry)", RADIO_POLLICOMN },
|
||
{ "Ten-Tec Omni VI", RADIO_POLLOMNIVI },
|
||
{ "Ten-Tec Omni VI (no inquiry)", RADIO_POLLOMNIVIN },
|
||
{ "KENWOOD", RADIO_POLLKENWOOD },
|
||
{ "KENWOOD (use auto info)", RADIO_POLLKENWOODN },
|
||
{ "JST245", RADIO_POLLJST245 },
|
||
{ "JST245 (use auto info)", RADIO_POLLJST245N },
|
||
{ "YAESU FT-9000", RADIO_POLLFT9000 }, //1.66B AA6YQ
|
||
{ "YAESU FT-2000", RADIO_POLLFT2000 }, //1.66B AA6YQ
|
||
{ "YAESU FT-950", RADIO_POLLFT950 }, //1.66B AA6YQ
|
||
{ "YAESU FT-450", RADIO_POLLFT450 }, //1.66B AA6YQ
|
||
{ NULL, 0 },
|
||
};
|
||
const POLLDEF *__VL[]={
|
||
__VT0, __VT1, __VT2, __VT3, __VT4, __VT5, __VT6, __VTUNKNOWN, NULL,
|
||
};
|
||
//---------------------------------------------------------------------
|
||
__fastcall TRADIOSetDlg::TRADIOSetDlg(TComponent* AOwner)
|
||
: TForm(AOwner)
|
||
{
|
||
FormStyle = ((TForm *)AOwner)->FormStyle;
|
||
Font->Name = ((TForm *)AOwner)->Font->Name;
|
||
Font->Charset = ((TForm *)AOwner)->Font->Charset;
|
||
if( Font->Charset != SHIFTJIS_CHARSET ){
|
||
CancelBtn->Caption = "Cancel";
|
||
}
|
||
int i;
|
||
for( i = 0; __MK[i] != NULL; i++ ){
|
||
Maker->Items->Add(__MK[i]);
|
||
}
|
||
m_InitWidth = CmdInit->Width;
|
||
m_PollType = 0;
|
||
m_Maker = 0;
|
||
m_MMList.QueryList("MMR");
|
||
for( int i = 0; i < m_MMList.GetCount(); i++ ){
|
||
PortName->Items->Insert(1, m_MMList.GetItemName(i));
|
||
}
|
||
PortName->DropDownCount = PortName->Items->Count;
|
||
m_DisEvent = 0;
|
||
}
|
||
//---------------------------------------------------------------------
|
||
void __fastcall TRADIOSetDlg::UpdateUI(void)
|
||
{
|
||
int f;
|
||
if( !strcmpi(AnsiString(PortName->Text).c_str(), "PSKGNR")|| //JA7UDE 0428
|
||
!strcmpi(AnsiString(PortName->Text).c_str(), "WD5GNR")|| //JA7UDE 0428
|
||
!strcmpi(AnsiString(PortName->Text).c_str(), "LOGGER") ){ //JA7UDE 0428
|
||
GCmd->Visible = FALSE;
|
||
if( !strcmpi(AnsiString(PortName->Text).c_str(), "LOGGER") ){ //JA7UDE 0428
|
||
GGNR->Visible = FALSE;
|
||
// LTNX->Caption = "Thanks to Bob Furzer (K4CY) who is releasing the fine programs.";
|
||
}
|
||
else {
|
||
GGNR->Visible = TRUE;
|
||
// LTNX->Caption = "Thanks to Al Williams (WD5GNR) who is releasing the fine programs.";
|
||
}
|
||
LGNR->Visible = OpenGNR->Checked;
|
||
CmdGNR->Visible = OpenGNR->Checked;
|
||
RefBtn->Visible = OpenGNR->Checked;
|
||
LPTT->Visible = OpenGNR->Checked;
|
||
Maker->Visible = FALSE;
|
||
LoadBtn->Visible = FALSE;
|
||
SaveBtn->Visible = FALSE;
|
||
f = FALSE;
|
||
}
|
||
else {
|
||
GGNR->Visible = FALSE;
|
||
GCmd->Visible = TRUE;
|
||
Maker->Visible = TRUE;
|
||
LoadBtn->Visible = TRUE;
|
||
SaveBtn->Visible = TRUE;
|
||
f = IsXX();
|
||
Lxx->Visible = f;
|
||
Cmdxx->Visible = f;
|
||
AddrScan->Visible = f && m_PollType;
|
||
if( f ){
|
||
CmdInit->Width = m_InitWidth;
|
||
}
|
||
else {
|
||
CmdInit->Width = CmdRx->Width;
|
||
}
|
||
f = (m_MMList.IndexOf(AnsiString(PortName->Text).c_str()) < 0) ? TRUE : FALSE; //JA7UDE 0428
|
||
}
|
||
Label2->Enabled = f;
|
||
Baud->Enabled = f;
|
||
BitLen->Enabled = f;
|
||
Stop->Enabled = f;
|
||
Parity->Enabled = f;
|
||
GB3->Enabled = f;
|
||
flwXON->Enabled = f;
|
||
flwCTS->Enabled = f && (!CBPTT->Checked);
|
||
CBPTT->Enabled = f;
|
||
Label3->Enabled = f;
|
||
ByteWait->Enabled = f;
|
||
Label8->Enabled = f;
|
||
|
||
SBHelp->Visible = !JanHelp.IsEmpty();
|
||
}
|
||
//---------------------------------------------------------------------
|
||
int __fastcall TRADIOSetDlg::Execute(void)
|
||
{
|
||
PortName->Text = RADIO.StrPort;
|
||
Baud->Text = RADIO.BaudRate;
|
||
BitLen->ItemIndex = RADIO.BitLen;
|
||
Parity->ItemIndex = RADIO.Parity;
|
||
Stop->ItemIndex = RADIO.Stop;
|
||
flwXON->Checked = RADIO.flwXON;
|
||
flwCTS->Checked = RADIO.flwCTS;
|
||
CBPTT->Checked = RADIO.usePTT;
|
||
|
||
ByteWait->Text = int(RADIO.ByteWait);
|
||
|
||
char bf[32];
|
||
sprintf( bf, "%02X", RADIO.Cmdxx);
|
||
Cmdxx->Text = bf;
|
||
CmdInit->Text = RADIO.CmdInit;
|
||
CmdRx->Text = RADIO.CmdRx;
|
||
CmdTx->Text = RADIO.CmdTx;
|
||
|
||
CmdGNR->Text = RADIO.cmdGNR;
|
||
OpenGNR->Checked = RADIO.openGNR;
|
||
m_PollType = RADIO.PollType;
|
||
PollInt->Text = (RADIO.PollInterval + 5)/10.0;
|
||
FreqOffset->ItemIndex = RADIO.PollOffset;
|
||
AddrScan->Checked = RADIO.PollScan;
|
||
SetMaker();
|
||
UpdateUI();
|
||
if( ShowModal() == IDOK ){
|
||
StrCopy(RADIO.StrPort, AnsiString(PortName->Text).c_str(), 31); //JA7UDE 0428
|
||
int dd;
|
||
if( sscanf(AnsiString(Baud->Text).c_str(), "%u", &dd) == 1 ){ //JA7UDE 0428
|
||
RADIO.BaudRate = dd;
|
||
}
|
||
RADIO.BitLen = BitLen->ItemIndex;
|
||
RADIO.Parity = Parity->ItemIndex;
|
||
RADIO.Stop = Stop->ItemIndex;
|
||
RADIO.flwXON = flwXON->Checked;
|
||
RADIO.flwCTS = flwCTS->Checked;
|
||
RADIO.usePTT = CBPTT->Checked;
|
||
if( sscanf(AnsiString(ByteWait->Text).c_str(), "%u", &dd) == 1 ){ //JA7UDE 0428
|
||
if( (dd >= 0) && (dd <= 1000) ){
|
||
RADIO.ByteWait = dd;
|
||
}
|
||
}
|
||
if( sscanf(AnsiString(Cmdxx->Text).c_str(), "%X", &dd) == 1 ){ //JA7UDE 0428
|
||
RADIO.Cmdxx = dd & 0x000000ff;
|
||
}
|
||
RADIO.CmdInit = CmdInit->Text;
|
||
RADIO.CmdRx = CmdRx->Text;
|
||
RADIO.CmdTx = CmdTx->Text;
|
||
|
||
RADIO.cmdGNR = CmdGNR->Text;
|
||
RADIO.openGNR = OpenGNR->Checked;
|
||
|
||
RADIO.PollType = m_PollType;
|
||
double d;
|
||
if( sscanf(AnsiString(PollInt->Text).c_str(), "%lf", &d) == 1 ){ //JA7UDE 0428
|
||
if( d >= 0.5 ){
|
||
RADIO.PollInterval = int((d * 10.0) - 5);
|
||
if( RADIO.PollInterval < 0 ) RADIO.PollInterval = 0;
|
||
}
|
||
}
|
||
RADIO.PollOffset = FreqOffset->ItemIndex;
|
||
RADIO.PollScan = AddrScan->Checked;
|
||
RADIO.change = 1;
|
||
return TRUE;
|
||
}
|
||
else {
|
||
return FALSE;
|
||
}
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
void __fastcall TRADIOSetDlg::LoadBtnClick(TObject *Sender)
|
||
{
|
||
//
|
||
TOpenDialog *pBox = MmttyWd->OpenDialog;
|
||
pBox->Options >> ofCreatePrompt;
|
||
pBox->Options << ofFileMustExist;
|
||
if(Font->Charset != SHIFTJIS_CHARSET){
|
||
pBox->Title = "Open command file";
|
||
pBox->Filter = "Command files(*.rcm)|*.rcm|";
|
||
}
|
||
else {
|
||
pBox->Title = "<EFBFBD>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD><68><EFBFBD>`<60>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD><4A>";
|
||
pBox->Filter = "<EFBFBD>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD><68><EFBFBD>`<60>t<EFBFBD>@<40>C<EFBFBD><43>(*.rcm)|*.rcm|";
|
||
}
|
||
pBox->FileName = "";
|
||
pBox->DefaultExt = "rcm";
|
||
pBox->InitialDir = BgnDir;
|
||
NormalWindow(this);
|
||
if( pBox->Execute() == TRUE ){
|
||
CWaitCursor w;
|
||
TMemIniFile *pIniFile = new TMemIniFile(pBox->FileName);
|
||
CmdInit->Text = pIniFile->ReadString("RADIO", "CmdInit", CmdInit->Text);
|
||
CmdRx->Text = pIniFile->ReadString("RADIO", "CmdRx", CmdRx->Text);
|
||
CmdTx->Text = pIniFile->ReadString("RADIO", "CmdTx", CmdTx->Text);
|
||
Cmdxx->Text = pIniFile->ReadString("RADIO", "Cmdxx", Cmdxx->Text);
|
||
m_PollType = pIniFile->ReadInteger("RADIO", "PollType", 0);
|
||
FreqOffset->ItemIndex = pIniFile->ReadInteger("RADIO", "PollOffset", 5);
|
||
PollInt->Text = (pIniFile->ReadInteger("RADIO", "PollInterval", 0) + 5)/10.0;
|
||
AddrScan->Checked = 0;
|
||
delete pIniFile;
|
||
SetMaker();
|
||
UpdateUI();
|
||
}
|
||
TopWindow(this);
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
void __fastcall TRADIOSetDlg::SaveBtnClick(TObject *Sender)
|
||
{
|
||
TSaveDialog *pBox = MmttyWd->SaveDialog;
|
||
if( (Font->Charset != SHIFTJIS_CHARSET) ){
|
||
pBox->Title = "Save command file";
|
||
pBox->Filter = "Command files(*.rcm)|*.rcm|";
|
||
}
|
||
else {
|
||
pBox->Title = "<EFBFBD>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD><68><EFBFBD>`<60>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>̍쐬";
|
||
pBox->Filter = "<EFBFBD>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD><68><EFBFBD>`<60>t<EFBFBD>@<40>C<EFBFBD><43>(*.rcm)|*.rcm|";
|
||
}
|
||
pBox->FileName = "MyRIG.rcm";
|
||
pBox->DefaultExt = "rcm";
|
||
pBox->InitialDir = BgnDir;
|
||
NormalWindow(this);
|
||
if( pBox->Execute() == TRUE ){
|
||
CWaitCursor w;
|
||
TMemIniFile *pIniFile = new TMemIniFile(pBox->FileName);
|
||
pIniFile->WriteString("RADIO", "CmdInit", CmdInit->Text);
|
||
pIniFile->WriteString("RADIO", "CmdRx", CmdRx->Text);
|
||
pIniFile->WriteString("RADIO", "CmdTx", CmdTx->Text);
|
||
pIniFile->WriteString("RADIO", "Cmdxx", Cmdxx->Text);
|
||
pIniFile->WriteInteger("RADIO", "PollType", m_PollType);
|
||
pIniFile->WriteInteger("RADIO", "PollOffset", FreqOffset->ItemIndex);
|
||
double d;
|
||
int dd = 5;
|
||
if( sscanf(AnsiString(PollInt->Text).c_str(), "%lf", &d) == 1 ){ //JA7UDE 0428
|
||
if( d >= 0.5 ){
|
||
dd = int((d * 10.0) - 5);
|
||
if( dd < 0 ) dd = 0;
|
||
}
|
||
}
|
||
pIniFile->WriteInteger("RADIO", "PollInterval", dd);
|
||
pIniFile->UpdateFile();
|
||
delete pIniFile;
|
||
}
|
||
TopWindow(this);
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
int __fastcall TRADIOSetDlg::IsXX(void)
|
||
{
|
||
if( strstr(AnsiString(Maker->Text).c_str(), "xx") != NULL ) return 1; //JA7UDE 0428
|
||
if( m_PollType == RADIO_POLLICOM ) return 1;
|
||
if( m_PollType == RADIO_POLLICOMN ) return 1;
|
||
if( m_PollType == RADIO_POLLOMNIVI ) return 1;
|
||
if( m_PollType == RADIO_POLLOMNIVIN ) return 1;
|
||
return 0;
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
int __fastcall TRADIOSetDlg::IsCompatible(int PollType, int MakerIndex)
|
||
{
|
||
|
||
if (MakerIndex == 5) { //MakerIndex 5 is Kenwood
|
||
if (PollType == 0){
|
||
return 1;
|
||
}
|
||
else if (PollType == RADIO_POLLKENWOOD) {
|
||
return 1;
|
||
}
|
||
else if (PollType == RADIO_POLLKENWOODN) {
|
||
return 1;
|
||
}
|
||
else {
|
||
return 0;
|
||
}
|
||
}
|
||
else if (MakerIndex == 1) { //MakerIndex 1 is Yaesu FT-9000 et al
|
||
if (PollType == 0){
|
||
return 1;
|
||
}
|
||
else if (PollType == RADIO_POLLFT9000) {
|
||
return 1;
|
||
}
|
||
else if (PollType == RADIO_POLLFT2000) {
|
||
return 1;
|
||
}
|
||
else if (PollType == RADIO_POLLFT950) {
|
||
return 1;
|
||
}
|
||
else if (PollType == RADIO_POLLFT450) {
|
||
return 1;
|
||
}
|
||
else {
|
||
return 0;
|
||
}
|
||
|
||
}
|
||
else {
|
||
return 1;
|
||
}
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
int __fastcall TRADIOSetDlg::IsSame(LPCSTR t, LPCSTR v)
|
||
{
|
||
for( ; *v && *t; v++, t++ ){
|
||
if( (*v=='x')&&(*(v+1)=='x') ){
|
||
t++;
|
||
v++;
|
||
}
|
||
else if( (*t == '\\')&&(*(t+1) == 'w') ){
|
||
return 1;
|
||
}
|
||
else if( (*v == '\\')&&(*(v+1) == 'w') ){
|
||
return 1;
|
||
}
|
||
else if( *t != *v ){
|
||
return 0;
|
||
}
|
||
}
|
||
return *t != *v ? 0 : 1;
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
int __fastcall TRADIOSetDlg::GetVFOType(LPCSTR pKey)
|
||
{
|
||
for( int i = 0; __VL[i] != NULL; i++ ){
|
||
const POLLDEF *p = __VL[i];
|
||
for( ; p->pKey != NULL; p++ ){
|
||
if( !strcmp(p->pKey, pKey) ) return p->r;
|
||
}
|
||
}
|
||
return 0;
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
LPCSTR __fastcall TRADIOSetDlg::GetVFOName(int r)
|
||
{
|
||
for( int i = 0; __VL[i] != NULL; i++ ){
|
||
const POLLDEF *p = __VL[i];
|
||
for( ; p->pKey != NULL; p++ ){
|
||
if( p->r == r ) return p->pKey;
|
||
}
|
||
}
|
||
return "NONE";
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
void __fastcall TRADIOSetDlg::SetVFOList(void)
|
||
{
|
||
m_DisEvent++;
|
||
const POLLDEF *p = __VL[m_Maker];
|
||
VFOType->Items->Clear();
|
||
for( ; p->pKey != NULL; p++ ){
|
||
VFOType->Items->Add(p->pKey);
|
||
}
|
||
VFOType->Text = GetVFOName(m_PollType);
|
||
m_DisEvent--;
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
void __fastcall TRADIOSetDlg::SetMaker(void)
|
||
{
|
||
int i;
|
||
|
||
for( i = 0; __MK[i] != NULL; i++ ){
|
||
if( IsSame(AnsiString(CmdRx->Text).c_str(), __MT[i][1]) && IsSame(AnsiString(CmdTx->Text).c_str(), __MT[i][2]) && IsCompatible (m_PollType,i)){ //AA6YQ 1.66//JA7UDE 0428
|
||
m_DisEvent++;
|
||
Maker->Text = __MK[i];
|
||
m_DisEvent--;
|
||
m_Maker = i;
|
||
SetVFOList();
|
||
return;
|
||
}
|
||
}
|
||
m_Maker = MAKER_UNKNOWN;
|
||
m_DisEvent++;
|
||
Maker->Text = "Unknown";
|
||
SetVFOList();
|
||
m_DisEvent--;
|
||
}
|
||
|
||
void __fastcall TRADIOSetDlg::MakerChange(TObject *Sender)
|
||
{
|
||
if( m_DisEvent ) return;
|
||
|
||
m_PollType = 0;
|
||
VFOType->Text = "NONE";
|
||
PollInt->Text = "1";
|
||
AddrScan->Checked = 0;
|
||
for( int i = 0; __MK[i] != NULL; i++ ){
|
||
if( Maker->Text == __MK[i] ){
|
||
CmdInit->Text = __MT[i][0];
|
||
CmdRx->Text = __MT[i][1];
|
||
CmdTx->Text = __MT[i][2];
|
||
m_Maker = i;
|
||
if( m_Maker == 3 ){ // Ten-Tec Omni-VI
|
||
Cmdxx->Text = "04";
|
||
}
|
||
SetVFOList();
|
||
break;
|
||
}
|
||
}
|
||
UpdateUI();
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
void __fastcall TRADIOSetDlg::PortNameChange(TObject *Sender)
|
||
{
|
||
if( m_DisEvent ) return;
|
||
|
||
UpdateUI();
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
void __fastcall TRADIOSetDlg::RefBtnClick(TObject *Sender)
|
||
{
|
||
TOpenDialog *pBox = MmttyWd->OpenDialog;
|
||
pBox->Options >> ofCreatePrompt;
|
||
pBox->Options << ofFileMustExist;
|
||
if(Font->Charset != SHIFTJIS_CHARSET){
|
||
pBox->Title = "Program file";
|
||
pBox->Filter = "Program files(*.exe;*.lnk)|*.exe;*.lnk|";
|
||
}
|
||
else {
|
||
pBox->Title = "<EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43>";
|
||
pBox->Filter = "<EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43>(*.exe;*.lnk)|*.exe;*.lnk|";
|
||
}
|
||
pBox->FileName = CmdGNR->Text.c_str();
|
||
pBox->DefaultExt = "exe";
|
||
char bf[256];
|
||
SetDirName(bf, AnsiString(CmdGNR->Text).c_str()); //JA7UDE 0428
|
||
pBox->InitialDir = bf;
|
||
NormalWindow(this);
|
||
if( pBox->Execute() == TRUE ){
|
||
CmdGNR->Text = pBox->FileName.c_str();
|
||
}
|
||
TopWindow(this);
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
void __fastcall TRADIOSetDlg::VFOTypeChange(TObject *Sender)
|
||
{
|
||
if( m_DisEvent ) return;
|
||
|
||
m_PollType = GetVFOType(AnsiString(VFOType->Text).c_str()); //JA7UDE 0428
|
||
|
||
UpdateUI();
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
void __fastcall TRADIOSetDlg::SBHelpClick(TObject *Sender)
|
||
{
|
||
ShowHtmlHelp("radiocommand.htm");
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
|