kopia lustrzana https://github.com/Hamlib/Hamlib
Fix icom_set_mode_with_data for IC7610 and IC7300
Fix max baud rate for IC7610 Bump IC7610 to BETA statuspull/179/head
rodzic
2098789118
commit
0d02109483
|
@ -166,15 +166,15 @@ const struct rig_caps ic7610_caps =
|
|||
.rig_model = RIG_MODEL_IC7610,
|
||||
.model_name = "IC-7610",
|
||||
.mfg_name = "Icom",
|
||||
.version = BACKEND_VER ".0",
|
||||
.version = BACKEND_VER ".1",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_UNTESTED,
|
||||
.status = RIG_STATUS_BETA,
|
||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||
.ptt_type = RIG_PTT_RIG,
|
||||
.dcd_type = RIG_DCD_RIG,
|
||||
.port_type = RIG_PORT_SERIAL,
|
||||
.serial_rate_min = 300,
|
||||
.serial_rate_max = 19200,
|
||||
.serial_rate_max = 115200,
|
||||
.serial_data_bits = 8,
|
||||
.serial_stop_bits = 1,
|
||||
.serial_parity = RIG_PARITY_NONE,
|
||||
|
@ -289,7 +289,7 @@ const struct rig_caps ic7610_caps =
|
|||
.priv = (void *)& ic7610_priv_caps,
|
||||
.rig_init = icom_init,
|
||||
.rig_cleanup = icom_cleanup,
|
||||
.rig_open = NULL,
|
||||
.rig_open = icom_rig_open,
|
||||
.rig_close = NULL,
|
||||
|
||||
.set_freq = icom_set_freq,
|
||||
|
|
27
icom/icom.c
27
icom/icom.c
|
@ -588,8 +588,6 @@ icom_rig_open(RIG *rig)
|
|||
int retval = RIG_OK;
|
||||
struct rig_state *rs = &rig->state;
|
||||
struct icom_priv_data *priv = (struct icom_priv_data *) rs->priv;
|
||||
struct icom_priv_caps *priv_caps =
|
||||
(struct icom_priv_caps *) rig->caps->priv;
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1148,12 +1146,14 @@ int icom_set_mode_with_data(RIG *rig, vfo_t vfo, rmode_t mode,
|
|||
pbwidth_t width)
|
||||
{
|
||||
int retval;
|
||||
unsigned char datamode;
|
||||
unsigned char datamode[2];
|
||||
unsigned char ackbuf[MAXFRAMELEN];
|
||||
int ack_len = sizeof(ackbuf);
|
||||
rmode_t icom_mode;
|
||||
unsigned char dm_sub_cmd = RIG_MODEL_IC7200 == rig->caps->rig_model ? 0x04 :
|
||||
S_MEM_DATA_MODE;
|
||||
int filter_byte = rig->caps->rig_model == RIG_MODEL_IC7300
|
||||
|| rig->caps->rig_model == RIG_MODEL_IC7610;
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
|
@ -1193,17 +1193,30 @@ int icom_set_mode_with_data(RIG *rig, vfo_t vfo, rmode_t mode,
|
|||
/* some rigs (e.g. IC-7700 & IC-7800)
|
||||
have D1/2/3 but we cannot know
|
||||
which to set so just set D1 */
|
||||
datamode = 0x01;
|
||||
datamode[0] = 0x01;
|
||||
break;
|
||||
|
||||
default:
|
||||
datamode = 0x00;
|
||||
datamode[0] = 0x00;
|
||||
break;
|
||||
}
|
||||
|
||||
retval =
|
||||
icom_transaction(rig, C_CTL_MEM, dm_sub_cmd, &datamode, 1, ackbuf,
|
||||
if (filter_byte) { // then we need the width byte too
|
||||
unsigned char md;
|
||||
signed char pd;
|
||||
retval = rig2icom_mode(rig, mode, width, &md, &pd);
|
||||
if (retval == RIG_OK) {
|
||||
datamode[1] = pd;
|
||||
retval =
|
||||
icom_transaction(rig, C_CTL_MEM, dm_sub_cmd, datamode, 2, ackbuf,
|
||||
&ack_len);
|
||||
}
|
||||
}
|
||||
else {
|
||||
retval =
|
||||
icom_transaction(rig, C_CTL_MEM, dm_sub_cmd, datamode, 1, ackbuf,
|
||||
&ack_len);
|
||||
}
|
||||
|
||||
if (retval != RIG_OK)
|
||||
{
|
||||
|
|
Ładowanie…
Reference in New Issue