mirror of
https://git.code.sf.net/p/fldigi/flrig
synced 2026-08-13 17:28:24 -04:00
FT450/D
* fix mic gain control for FT450 and FT450D
- transceiver only returns 3 levels for mic gain.
This commit is contained in:
parent
4fe02df2ba
commit
9d812b3789
2 changed files with 28 additions and 24 deletions
|
|
@ -876,41 +876,42 @@ void RIG_FT450::set_xcvr_auto_off()
|
|||
sendCommand(cmd);
|
||||
}
|
||||
|
||||
// val 0 .. 100
|
||||
static int mg = 0;
|
||||
void RIG_FT450::set_mic_gain(int val)
|
||||
{
|
||||
cmd = "MG000;";
|
||||
val = (int)(val * 2.55); // convert to 0 .. 255
|
||||
for (int i = 3; i > 0; i--) {
|
||||
cmd[1+i] += val % 10;
|
||||
val /= 10;
|
||||
}
|
||||
if (val == 1) cmd = "MG000;";
|
||||
else if (val == 2) cmd = "MG128;";
|
||||
else cmd = "MG255;";
|
||||
mg = val;
|
||||
sendCommand(cmd);
|
||||
showresp(WARN, ASC, "SET mic", cmd, replystr);
|
||||
sett("set_mic_gain");
|
||||
}
|
||||
|
||||
int RIG_FT450::get_mic_gain()
|
||||
{
|
||||
cmd = rsp = "MG";
|
||||
cmd += ';';
|
||||
waitN(6, 100, "get mic", ASC);
|
||||
wait_char(';', 6, 100, "get mic", ASC);
|
||||
|
||||
rig_trace(2, "get_mic_gain()", replystr.c_str());
|
||||
gett("get_mic_gain");
|
||||
|
||||
size_t p = replystr.rfind(rsp);
|
||||
if (p == string::npos) return 0;
|
||||
if (p == string::npos) return mg;
|
||||
replystr[p+5] = 0;
|
||||
return atoi(&replystr[p+2]);;
|
||||
int val = atoi(&replystr[p+2]);
|
||||
if (val < 86) return 1;
|
||||
if (val < 127) return 2;
|
||||
return 3;
|
||||
}
|
||||
|
||||
void RIG_FT450::get_mic_min_max_step(int &min, int &max, int &step)
|
||||
{
|
||||
min = 0;
|
||||
max = 100;
|
||||
min = 1;
|
||||
max = 3;
|
||||
step = 1;
|
||||
}
|
||||
|
||||
void RIG_FT450::set_special(int v)
|
||||
}void RIG_FT450::set_special(int v)
|
||||
{
|
||||
if (v) cmd = "VR1;";
|
||||
else cmd = "VR0;";
|
||||
|
|
|
|||
|
|
@ -996,14 +996,14 @@ void RIG_FT450D::set_xcvr_auto_off()
|
|||
}
|
||||
|
||||
// val 0 .. 100
|
||||
static int mg = 0;
|
||||
void RIG_FT450D::set_mic_gain(int val)
|
||||
{
|
||||
cmd = "MG000;";
|
||||
val = (int)(val * 2.55); // convert to 0 .. 255
|
||||
for (int i = 3; i > 0; i--) {
|
||||
cmd[1+i] += val % 10;
|
||||
val /= 10;
|
||||
}
|
||||
if (val == 1) cmd = "MG000;";
|
||||
else if (val == 2) cmd = "MG128;";
|
||||
else cmd = "MG255;";
|
||||
mg = val;
|
||||
sendCommand(cmd);
|
||||
showresp(WARN, ASC, "SET mic", cmd, replystr);
|
||||
sett("set_mic_gain");
|
||||
|
|
@ -1018,15 +1018,18 @@ int RIG_FT450D::get_mic_gain()
|
|||
gett("get_mic_gain");
|
||||
|
||||
size_t p = replystr.rfind(rsp);
|
||||
if (p == string::npos) return 0;
|
||||
if (p == string::npos) return mg;
|
||||
replystr[p+5] = 0;
|
||||
return atoi(&replystr[p+2]);;
|
||||
int val = atoi(&replystr[p+2]);
|
||||
if (val < 86) return 1;
|
||||
if (val < 127) return 2;
|
||||
return 3;
|
||||
}
|
||||
|
||||
void RIG_FT450D::get_mic_min_max_step(int &min, int &max, int &step)
|
||||
{
|
||||
min = 0;
|
||||
max = 100;
|
||||
min = 1;
|
||||
max = 3;
|
||||
step = 1;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue