kopia lustrzana https://github.com/Hamlib/Hamlib
Merge upstream changes and fix conflicts. Update NEWS.
commit
baea7e8c9a
5
NEWS
5
NEWS
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue