kopia lustrzana https://github.com/Hamlib/Hamlib
rodzic
5b4654024a
commit
a00326161c
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net7.0</TargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -282,7 +282,7 @@ static int multicast_send_json(RIG *rig)
|
||||||
|
|
||||||
void *multicast_thread(void *vrig)
|
void *multicast_thread(void *vrig)
|
||||||
{
|
{
|
||||||
int retval;
|
//int retval;
|
||||||
RIG *rig = (RIG *)vrig;
|
RIG *rig = (RIG *)vrig;
|
||||||
rig_debug(RIG_DEBUG_TRACE, "%s: multicast_thread started\n", __func__);
|
rig_debug(RIG_DEBUG_TRACE, "%s: multicast_thread started\n", __func__);
|
||||||
|
|
||||||
|
@ -293,8 +293,14 @@ void *multicast_thread(void *vrig)
|
||||||
|
|
||||||
freq_t freqA, freqAsave = 0;
|
freq_t freqA, freqAsave = 0;
|
||||||
freq_t freqB, freqBsave = 0;
|
freq_t freqB, freqBsave = 0;
|
||||||
|
mode_t modeA, modeAsave = 0;
|
||||||
|
mode_t modeB, modeBsave = 0;
|
||||||
|
ptt_t ptt, pttsave = 0;
|
||||||
|
rig->state.multicast->runflag = 1;
|
||||||
|
|
||||||
while (rig->state.multicast->runflag)
|
while (rig->state.multicast->runflag)
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
if ((retval = rig_get_freq(rig, RIG_VFO_A, &freqA)) != RIG_OK)
|
if ((retval = rig_get_freq(rig, RIG_VFO_A, &freqA)) != RIG_OK)
|
||||||
{
|
{
|
||||||
rig_debug(RIG_DEBUG_ERR, "%s: rig_get_freqA:%s\n", __func__, rigerror(retval));
|
rig_debug(RIG_DEBUG_ERR, "%s: rig_get_freqA:%s\n", __func__, rigerror(retval));
|
||||||
|
@ -309,17 +315,37 @@ void *multicast_thread(void *vrig)
|
||||||
{
|
{
|
||||||
freqB = rig->state.cache.freqMainB;
|
freqB = rig->state.cache.freqMainB;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
freqA = rig->state.cache.freqMainA;
|
||||||
|
freqB = rig->state.cache.freqMainB;
|
||||||
|
modeA = rig->state.cache.modeMainA;
|
||||||
|
modeB = rig->state.cache.modeMainB;
|
||||||
|
ptt = rig->state.cache.ptt;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (freqA != freqAsave || freqB != freqBsave || loopcount-- <= 0)
|
if (freqA != freqAsave
|
||||||
|
|| freqB != freqBsave
|
||||||
|
|| modeA != modeAsave
|
||||||
|
|| modeB != modeBsave
|
||||||
|
|| ptt != pttsave
|
||||||
|
|| loopcount-- <= 0)
|
||||||
{
|
{
|
||||||
multicast_status_changed(rig);
|
if (loopcount <= 0)
|
||||||
|
rig_debug(RIG_DEBUG_CACHE, "%s: sending multicast packet timeout\n", __func__);
|
||||||
|
else rig_debug(RIG_DEBUG_ERR, "%s: sending multicast packet due to change\n", __func__);
|
||||||
|
// multicast_status_changed(rig);
|
||||||
multicast_send_json(rig);
|
multicast_send_json(rig);
|
||||||
loopcount = 8;
|
loopcount = 8;
|
||||||
freqAsave = freqA;
|
freqAsave = freqA;
|
||||||
freqBsave = freqB;
|
freqBsave = freqB;
|
||||||
|
modeAsave = modeA;
|
||||||
|
modeBsave = modeB;
|
||||||
|
pttsave = ptt;
|
||||||
|
loopcount = 8;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
//rig_debug(RIG_DEBUG_VERBOSE, "%s: loop\n", __func__);
|
||||||
hl_usleep(100 * 1000);
|
hl_usleep(100 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -354,6 +380,7 @@ static char *GetWinsockLastError(char *errorBuffer, DWORD errorBufferSize)
|
||||||
|
|
||||||
int multicast_init(RIG *rig, char *addr, int port)
|
int multicast_init(RIG *rig, char *addr, int port)
|
||||||
{
|
{
|
||||||
|
if (rig->state.multicast && rig->state.multicast->multicast_running) return RIG_OK;
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
WSADATA wsaData;
|
WSADATA wsaData;
|
||||||
|
|
||||||
|
@ -453,7 +480,7 @@ int multicast_init(RIG *rig, char *addr, int port)
|
||||||
rig->state.multicast->dest_addr.sin_addr.s_addr = inet_addr(addr);
|
rig->state.multicast->dest_addr.sin_addr.s_addr = inet_addr(addr);
|
||||||
rig->state.multicast->dest_addr.sin_port = htons(port);
|
rig->state.multicast->dest_addr.sin_port = htons(port);
|
||||||
|
|
||||||
#if 0
|
#if 1
|
||||||
rig->state.multicast->runflag = 1;
|
rig->state.multicast->runflag = 1;
|
||||||
pthread_create(&rig->state.multicast->threadid, NULL, multicast_thread,
|
pthread_create(&rig->state.multicast->threadid, NULL, multicast_thread,
|
||||||
(void *)rig);
|
(void *)rig);
|
||||||
|
|
|
@ -902,6 +902,8 @@ void *multicast_publisher(void *arg)
|
||||||
dest_addr.sin_addr.s_addr = inet_addr(args->multicast_addr);
|
dest_addr.sin_addr.s_addr = inet_addr(args->multicast_addr);
|
||||||
dest_addr.sin_port = htons(args->multicast_port);
|
dest_addr.sin_port = htons(args->multicast_port);
|
||||||
|
|
||||||
|
rs->multicast_publisher_run = 1;
|
||||||
|
|
||||||
while (rs->multicast_publisher_run)
|
while (rs->multicast_publisher_run)
|
||||||
{
|
{
|
||||||
result = multicast_publisher_read_packet(args, &packet_type, &spectrum_line,
|
result = multicast_publisher_read_packet(args, &packet_type, &spectrum_line,
|
||||||
|
|
|
@ -1486,6 +1486,7 @@ int HAMLIB_API rig_open(RIG *rig)
|
||||||
memcpy(&rs->pttport_deprecated, &rs->pttport, sizeof(hamlib_port_t_deprecated));
|
memcpy(&rs->pttport_deprecated, &rs->pttport, sizeof(hamlib_port_t_deprecated));
|
||||||
memcpy(&rs->dcdport_deprecated, &rs->dcdport, sizeof(hamlib_port_t_deprecated));
|
memcpy(&rs->dcdport_deprecated, &rs->dcdport, sizeof(hamlib_port_t_deprecated));
|
||||||
rig_flush_force(&rs->rigport, 1);
|
rig_flush_force(&rs->rigport, 1);
|
||||||
|
if (rig->caps->rig_model != RIG_MODEL_NETRIGCTL) multicast_init(rig, "224.0.0.1", 4532);
|
||||||
RETURNFUNC2(RIG_OK);
|
RETURNFUNC2(RIG_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue