Merge upstream changes and fix conflicts. Update NEWS.

pull/892/head
Mikael Nousiainen 2021-12-20 10:06:42 +02:00
commit baea7e8c9a
7 zmienionych plików z 64 dodań i 21 usunięć

5
NEWS
Wyświetl plik

@ -9,6 +9,11 @@ Please send Hamlib bug reports to hamlib-developer@lists.sourceforge.net
Version 4.x
* 202?-??-??
* Added JRC JST-145 and JST-245
* Asynchronous rig data output handling to support transceive and spectrum data. Mikael, OH3BHX
* Multicast UDP packet output for asynchronous data. Mikael, OH3BHX
* Rig state poll routine to serve commonly used data like frequency and mode from cache. Mikael, OH3BHX
* Deprecated: rigctl commands \set_trn (A) and \get_trn (a) as they never worked as intended
* Deprecated: field rig_caps.transceive and RIG_TRN_* macros
Version 4.4
* 2021-12-02

Wyświetl plik

@ -484,7 +484,8 @@ Set
.RI \(aq VFO \(aq.
.IP
VFO is a token: \(oqVFOA\(cq, \(oqVFOB\(cq, \(oqVFOC\(cq, \(oqcurrVFO\(cq,
\(oqVFO\(cq, \(oqMEM\(cq, \(oqMain\(cq, \(oqSub\(cq, \(oqTX\(cq, \(oqRX\(cq.
\(oqVFO\(cq, \(oqMEM\(cq, \(oqMain\(cq, \(oqSub\(cq, \(oqTX\(cq, \(oqRX\(cq,
\(oqMainA\(cq, \(oqMainB\(cq, \(oqMainC\(cq, \(oqSubA\(cq, \(oqSubB\(cq \(oqSubC\(cq.
.IP
In VFO mode (see
.B \-\-vfo

Wyświetl plik

@ -1131,8 +1131,8 @@ typedef uint64_t setting_t;
#define RIG_FUNC_TRANSCEIVE CONSTANT_64BIT_FLAG (42) /*!< \c TRANSCEIVE -- Send radio state changes automatically ON/OFF */
#define RIG_FUNC_SPECTRUM CONSTANT_64BIT_FLAG (43) /*!< \c SPECTRUM -- Spectrum scope data output ON/OFF */
#define RIG_FUNC_SPECTRUM_HOLD CONSTANT_64BIT_FLAG (44) /*!< \c SPECTRUM_HOLD -- Pause spectrum scope updates ON/OFF */
#define RIG_FUNC_BIT45 CONSTANT_64BIT_FLAG (45) /*!< \c available for future RIG_FUNC items */
#define RIG_FUNC_BIT46 CONSTANT_64BIT_FLAG (46) /*!< \c available for future RIG_FUNC items */
#define RIG_FUNC_SEND_MORSE CONSTANT_64BIT_FLAG (45) /*!< \c SEND_MORSE -- Send specified characters using CW */
#define RIG_FUNC_SEND_VOICE_MEM CONSTANT_64BIT_FLAG (46) /*!< \c SEND_VOICE_MEM -- Transmit in SSB message stored in memory */
#define RIG_FUNC_BIT47 CONSTANT_64BIT_FLAG (47) /*!< \c available for future RIG_FUNC items */
#define RIG_FUNC_BIT48 CONSTANT_64BIT_FLAG (48) /*!< \c available for future RIG_FUNC items */
#define RIG_FUNC_BIT49 CONSTANT_64BIT_FLAG (49) /*!< \c available for future RIG_FUNC items */
@ -2081,6 +2081,7 @@ enum rig_function_e {
RIG_FUNCTION_SEND_MORSE,
RIG_FUNCTION_STOP_MORSE,
RIG_FUNCTION_WAIT_MORSE,
RIG_FUNCTION_SEND_VOICE_MEM,
RIG_FUNCTION_SET_BANK,
RIG_FUNCTION_SET_MEM,
RIG_FUNCTION_GET_MEM,

Wyświetl plik

@ -55,7 +55,7 @@ int ic7300_get_clock(RIG *rig, int *year, int *month, int *day,
#define IC7300_OTHER_TX_MODES (RIG_MODE_FM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_RTTYR)
#define IC7300_AM_TX_MODES (RIG_MODE_AM|RIG_MODE_PKTAM)
#define IC7300_FUNCS (RIG_FUNC_NB|RIG_FUNC_COMP|RIG_FUNC_VOX|RIG_FUNC_TONE|RIG_FUNC_TSQL|RIG_FUNC_SBKIN|RIG_FUNC_FBKIN|RIG_FUNC_NR|RIG_FUNC_MON|RIG_FUNC_MN|RIG_FUNC_ANF|RIG_FUNC_LOCK|RIG_FUNC_RIT|RIG_FUNC_XIT|RIG_FUNC_SCOPE|RIG_FUNC_TUNER|RIG_FUNC_TRANSCEIVE|RIG_FUNC_SPECTRUM|RIG_FUNC_SPECTRUM_HOLD)
#define IC7300_FUNCS (RIG_FUNC_NB|RIG_FUNC_COMP|RIG_FUNC_VOX|RIG_FUNC_TONE|RIG_FUNC_TSQL|RIG_FUNC_SBKIN|RIG_FUNC_FBKIN|RIG_FUNC_NR|RIG_FUNC_MON|RIG_FUNC_MN|RIG_FUNC_ANF|RIG_FUNC_LOCK|RIG_FUNC_RIT|RIG_FUNC_XIT|RIG_FUNC_SCOPE|RIG_FUNC_TUNER|RIG_FUNC_TRANSCEIVE|RIG_FUNC_SPECTRUM|RIG_FUNC_SPECTRUM_HOLD|RIG_FUNC_SEND_MORSE|RIG_FUNC_SEND_VOICE_MEM)
#define IC7300_LEVELS (RIG_LEVEL_PREAMP|RIG_LEVEL_ATT|RIG_LEVEL_AGC|RIG_LEVEL_COMP|RIG_LEVEL_BKINDL|RIG_LEVEL_NR|RIG_LEVEL_PBT_IN|RIG_LEVEL_PBT_OUT|RIG_LEVEL_CWPITCH|RIG_LEVEL_RFPOWER|RIG_LEVEL_MICGAIN|RIG_LEVEL_KEYSPD|RIG_LEVEL_NOTCHF_RAW|RIG_LEVEL_SQL|RIG_LEVEL_RAWSTR|RIG_LEVEL_STRENGTH|RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_VOXGAIN|RIG_LEVEL_ANTIVOX|RIG_LEVEL_VOXDELAY|RIG_LEVEL_SWR|RIG_LEVEL_ALC|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_RFPOWER_METER_WATTS|RIG_LEVEL_COMP_METER|RIG_LEVEL_VD_METER|RIG_LEVEL_ID_METER|RIG_LEVEL_MONITOR_GAIN|RIG_LEVEL_NB|RIG_LEVEL_SPECTRUM_MODE|RIG_LEVEL_SPECTRUM_SPAN|RIG_LEVEL_SPECTRUM_SPEED|RIG_LEVEL_SPECTRUM_REF|RIG_LEVEL_SPECTRUM_AVG|RIG_LEVEL_SPECTRUM_EDGE_LOW|RIG_LEVEL_SPECTRUM_EDGE_HIGH)
@ -149,7 +149,7 @@ int ic7300_get_clock(RIG *rig, int *year, int *month, int *day,
*/
#define IC9700_VFOS (RIG_VFO_A|RIG_VFO_B|RIG_VFO_MAIN|RIG_VFO_SUB|RIG_VFO_MEM|RIG_VFO_MAIN_A|RIG_VFO_MAIN_B|RIG_VFO_SUB_A|RIG_VFO_SUB_B)
#define IC9700_PARMS (RIG_PARM_ANN|RIG_PARM_BACKLIGHT|RIG_PARM_TIME|RIG_PARM_BEEP|RIG_PARM_SCREENSAVER)
#define IC9700_FUNCS (RIG_FUNC_NB|RIG_FUNC_COMP|RIG_FUNC_VOX|RIG_FUNC_TONE|RIG_FUNC_TSQL|RIG_FUNC_SBKIN|RIG_FUNC_FBKIN|RIG_FUNC_NR|RIG_FUNC_MON|RIG_FUNC_MN|RIG_FUNC_ANF|RIG_FUNC_LOCK|RIG_FUNC_RIT|RIG_FUNC_SCOPE|RIG_FUNC_SATMODE|RIG_FUNC_AFC|RIG_FUNC_TRANSCEIVE|RIG_FUNC_SPECTRUM|RIG_FUNC_SPECTRUM_HOLD)
#define IC9700_FUNCS (RIG_FUNC_NB|RIG_FUNC_COMP|RIG_FUNC_VOX|RIG_FUNC_TONE|RIG_FUNC_TSQL|RIG_FUNC_SBKIN|RIG_FUNC_FBKIN|RIG_FUNC_NR|RIG_FUNC_MON|RIG_FUNC_MN|RIG_FUNC_ANF|RIG_FUNC_LOCK|RIG_FUNC_RIT|RIG_FUNC_SCOPE|RIG_FUNC_SATMODE|RIG_FUNC_AFC|RIG_FUNC_TRANSCEIVE|RIG_FUNC_SPECTRUM|RIG_FUNC_SPECTRUM_HOLD|RIG_FUNC_SEND_MORSE|RIG_FUNC_SEND_VOICE_MEM)
#define IC9700_LEVELS (RIG_LEVEL_PREAMP|RIG_LEVEL_ATT|RIG_LEVEL_AGC|RIG_LEVEL_COMP|RIG_LEVEL_BKINDL|RIG_LEVEL_NR|RIG_LEVEL_PBT_IN|RIG_LEVEL_PBT_OUT|RIG_LEVEL_CWPITCH|RIG_LEVEL_RFPOWER|RIG_LEVEL_MICGAIN|RIG_LEVEL_KEYSPD|RIG_LEVEL_NOTCHF_RAW|RIG_LEVEL_SQL|RIG_LEVEL_RAWSTR|RIG_LEVEL_STRENGTH|RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_VOXGAIN|RIG_LEVEL_ANTIVOX|RIG_LEVEL_VOXDELAY|RIG_LEVEL_SWR|RIG_LEVEL_ALC|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_RFPOWER_METER_WATTS|RIG_LEVEL_COMP_METER|RIG_LEVEL_VD_METER|RIG_LEVEL_ID_METER|RIG_LEVEL_MONITOR_GAIN|RIG_LEVEL_NB|RIG_LEVEL_SPECTRUM_MODE|RIG_LEVEL_SPECTRUM_SPAN|RIG_LEVEL_SPECTRUM_SPEED|RIG_LEVEL_SPECTRUM_REF|RIG_LEVEL_SPECTRUM_AVG|RIG_LEVEL_SPECTRUM_EDGE_LOW|RIG_LEVEL_SPECTRUM_EDGE_HIGH)
#define IC9700_VFO_OPS (RIG_OP_CPY|RIG_OP_XCHG|RIG_OP_FROM_VFO|RIG_OP_TO_VFO|RIG_OP_MCL)
#define IC9700_SCAN_OPS (RIG_SCAN_STOP|RIG_SCAN_MEM|RIG_SCAN_PROG|RIG_SCAN_SLCT)

Wyświetl plik

@ -67,8 +67,7 @@
* Otherwise, you'll get a nice seg fault. You've been warned!
* TODO: error case handling
*/
int jrc_transaction(RIG *rig, const char *cmd, int cmd_len, char *data,
int *data_len)
int jrc_transaction(RIG *rig, const char *cmd, int cmd_len, char *data, int *data_len)
{
int retval;
struct rig_state *rs;

Wyświetl plik

@ -82,7 +82,7 @@ const struct rig_caps jst145_caps =
RIG_MODEL(RIG_MODEL_JST145),
.model_name = "JST-145",
.mfg_name = "JRC",
.version = BACKEND_VER ".2",
.version = BACKEND_VER ".3",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -182,7 +182,7 @@ const struct rig_caps jst245_caps =
RIG_MODEL(RIG_MODEL_JST245),
.model_name = "JST-245",
.mfg_name = "JRC",
.version = BACKEND_VER ".2",
.version = BACKEND_VER ".3",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -309,11 +309,11 @@ static int jst145_open(RIG *rig)
return retval;
}
jst145_get_freq(rig, RIG_VFO_A, &freq);
rig_get_freq(rig, RIG_VFO_A, &freq);
priv->freqA = freq;
jst145_get_freq(rig, RIG_VFO_B, &freq);
rig_get_freq(rig, RIG_VFO_B, &freq);
priv->freqB = freq;
jst145_get_mode(rig, RIG_VFO_A, &mode, &width);
rig_get_mode(rig, RIG_VFO_A, &mode, &width);
priv->mode = mode;
return retval;
}
@ -338,12 +338,17 @@ static int jst145_get_vfo(RIG *rig, vfo_t *vfo)
int channel_size = sizeof(channel);
int retval;
ptt_t ptt;
int retry = 1;
jst145_get_ptt(rig, RIG_VFO_A, &ptt); // set priv->ptt to current transmit status
jst145_get_ptt(rig, RIG_VFO_A,
&ptt); // set priv->ptt to current transmit status
rig->state.cache.ptt = ptt;
ptt_retry:
if (ptt) // can't get vfo while transmitting
{
*vfo = RIG_VFO_A;
*vfo = rig->state.current_vfo;
return RIG_OK;
}
@ -353,6 +358,8 @@ static int jst145_get_vfo(RIG *rig, vfo_t *vfo)
if (retval != RIG_OK)
{
if (retry-- > 0) { goto ptt_retry; }
rig_debug(RIG_DEBUG_ERR, "%s: jrc_transaction error: %s\n", __func__,
rigerror(retval));
return retval;
@ -366,7 +373,9 @@ static int jst145_get_vfo(RIG *rig, vfo_t *vfo)
static int jst145_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
{
char freqbuf[MAX_LEN];
int retval;
struct jst145_priv_data *priv = rig->state.priv;
vfo_t save_vfo = rig->state.current_vfo;
snprintf(freqbuf, sizeof(freqbuf), "F%08u%c\r", (unsigned)(freq),
vfo == RIG_VFO_A ? 'A' : 'B');
@ -380,7 +389,21 @@ static int jst145_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
priv->freqA = freq;
}
return write_block(&rig->state.rigport, (unsigned char *) freqbuf, strlen(freqbuf));
retval = write_block(&rig->state.rigport, (unsigned char *) freqbuf, strlen(freqbuf));
if (retval != RIG_OK)
{
rig_debug(RIG_DEBUG_ERR, "%s: write_block: %s\n", __func__,
rigerror(retval));
return retval;
}
if (vfo != save_vfo)
{
retval = rig_set_vfo(rig, save_vfo);
}
return retval;
}
@ -391,14 +414,16 @@ static int jst145_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
int freqbuf_size = sizeof(freqbuf);
int retval;
int n;
vfo_t save_vfo = rig->state.current_vfo;
struct jst145_priv_data *priv = rig->state.priv;
//struct jst145_priv_data *priv = rig->state.priv;
if (!priv->ptt) // can't get freq while transmitting
rig_debug(RIG_DEBUG_VERBOSE, "%s: vfo=%s curr_vfo=%s\n", __func__,
rig_strvfo(vfo), rig_strvfo(save_vfo));
if (save_vfo != vfo)
{
jst145_set_vfo(rig, vfo);
//*freq = vfo == RIG_VFO_B ? priv->freqB : priv->freqA;
//return RIG_OK;
rig_set_vfo(rig, vfo);
}
snprintf(cmd, sizeof(cmd), "I\r");
@ -413,8 +438,14 @@ static int jst145_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
n = sscanf(freqbuf, "I%*c%*c%*c%8lf", freq);
if (n != 1) { retval = -RIG_EPROTO; }
if (save_vfo != vfo)
{
rig_set_vfo(rig, save_vfo);
}
return retval;
}
@ -571,7 +602,8 @@ static int jst145_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt)
if (pttstatus[1] == '1') { *ptt = RIG_PTT_ON; }
else { *ptt = RIG_PTT_OFF; }
priv->ptt = *ptt;
priv->ptt = rig->state.cache.ptt = *ptt;
return RIG_OK;
}

Wyświetl plik

@ -723,6 +723,8 @@ static const struct
{ RIG_FUNC_TRANSCEIVE, "TRANSCEIVE" },
{ RIG_FUNC_SPECTRUM, "SPECTRUM" },
{ RIG_FUNC_SPECTRUM_HOLD, "SPECTRUM_HOLD" },
{ RIG_FUNC_SEND_MORSE, "SEND_MORSE" },
{ RIG_FUNC_SEND_VOICE_MEM, "SEND_VOICE_MEM" },
{ RIG_FUNC_NONE, "" },
};
@ -2353,6 +2355,9 @@ void *HAMLIB_API rig_get_function_ptr(rig_model_t rig_model,
case RIG_FUNCTION_WAIT_MORSE:
return caps->wait_morse;
case RIG_FUNCTION_SEND_VOICE_MEM:
return caps->send_voice_mem;
case RIG_FUNCTION_SET_BANK:
return caps->set_bank;