kopia lustrzana https://github.com/Hamlib/Hamlib
Slow freq events to 4 per second
rodzic
c74b3c10c6
commit
dc38d19449
|
@ -2663,7 +2663,7 @@ typedef unsigned int rig_comm_status_t;
|
|||
* that may be updated (ie. customized)
|
||||
*
|
||||
* It is NOT fine to move fields around as it can break share library offset
|
||||
* As of 2021-03-03 vfo_list is the last known item being reference externally
|
||||
* As of 2024-03-03 freq_event_elapsed is the last known item being reference externally
|
||||
* So any additions or changes to this structure must be at the end of the structure
|
||||
*/
|
||||
struct rig_state {
|
||||
|
@ -2849,6 +2849,7 @@ struct rig_state {
|
|||
char device_id[HAMLIB_RIGNAMSIZ];
|
||||
int dual_watch; /*!< Boolean DUAL_WATCH status */
|
||||
int post_ptt_delay; /*!< delay after PTT to allow for relays and such */
|
||||
struct timespec freq_event_elapsed;
|
||||
// New rig_state items go before this line ============================================
|
||||
};
|
||||
|
||||
|
|
20
src/event.c
20
src/event.c
|
@ -627,12 +627,22 @@ int rig_fire_freq_event(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
rig->state.use_cached_freq = 1;
|
||||
}
|
||||
|
||||
|
||||
network_publish_rig_transceive_data(rig);
|
||||
|
||||
if (rig->callbacks.freq_event)
|
||||
if (rig->state.freq_event_elapsed.tv_sec == 0)
|
||||
{
|
||||
rig->callbacks.freq_event(rig, vfo, freq, rig->callbacks.freq_arg);
|
||||
elapsed_ms(&rig->state.freq_event_elapsed, HAMLIB_ELAPSED_SET);
|
||||
}
|
||||
|
||||
double e = elapsed_ms(&rig->state.freq_event_elapsed, HAMLIB_ELAPSED_GET);
|
||||
|
||||
if (e >= 250) // throttle events to 4 per sec
|
||||
{
|
||||
elapsed_ms(&rig->state.freq_event_elapsed, HAMLIB_ELAPSED_SET);
|
||||
network_publish_rig_transceive_data(rig);
|
||||
|
||||
if (rig->callbacks.freq_event)
|
||||
{
|
||||
rig->callbacks.freq_event(rig, vfo, freq, rig->callbacks.freq_arg);
|
||||
}
|
||||
}
|
||||
|
||||
RETURNFUNC(0);
|
||||
|
|
Ładowanie…
Reference in New Issue