Rename multicast test routines and clean up things a bit

Now works on mingw32 and Linux
https://github.com/Hamlib/Hamlib/issues/695
pull/1289/head
Mike Black W9MDB 2023-05-07 23:23:01 -05:00
rodzic 6fa16ea77f
commit f55e7b8348
4 zmienionych plików z 31 dodań i 3 usunięć

Wyświetl plik

@ -236,15 +236,31 @@ void *multicast_thread(void *vrig)
multicast_status_changed(rig);
multicast_send_json(rig);
loopcount = 4;
freqsave = freq;
}
}
#ifdef _WIN32
WSACleanup();
#endif
return NULL;
}
int multicast_init(RIG *rig, char *addr, int port)
{
#ifdef _WIN32
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
{
fprintf(stderr, "WSAStartup failed: %d\n", WSAGetLastError());
return 1;
}
#endif
if (rig->state.multicast == NULL)
{
rig->state.multicast = calloc(1, sizeof(struct multicast_s));
@ -258,11 +274,16 @@ int multicast_init(RIG *rig, char *addr, int port)
if (port == 0) { port = RIG_MULTICAST_PORT; }
// Create a UDP socket
rig->state.multicast->sock = socket(AF_INET, SOCK_DGRAM, 0);
rig->state.multicast->sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if (rig->state.multicast->sock < 0)
{
#ifdef _WIN32
int err = WSAGetLastError();
rig_debug(RIG_DEBUG_ERR, "%s: socket: WSAGetLastError=%d\n", __func__, err);
#else
rig_debug(RIG_DEBUG_ERR, "%s: socket: %s\n", __func__, strerror(errno));
#endif
return -RIG_EIO;
}

Wyświetl plik

@ -14,7 +14,7 @@ endif
DISTCLEANFILES = rigctl.log rigctl.sum testbcd.log testbcd.sum
bin_PROGRAMS = rigctl rigctld rigmem rigsmtr rigswr rotctl rotctld rigctlcom rigctltcp rigctlsync ampctl ampctld multicastclient multicastserver $(TESTLIBUSB)
bin_PROGRAMS = rigctl rigctld rigmem rigsmtr rigswr rotctl rotctld rigctlcom rigctltcp rigctlsync ampctl ampctld rigtestmcast rigtestmcastrx $(TESTLIBUSB)
#check_PROGRAMS = dumpmem testrig testrigopen testrigcaps testtrn testbcd testfreq listrigs testloc rig_bench testcache cachetest cachetest2 testcookie testgrid testsecurity
check_PROGRAMS = dumpmem testrig testrigopen testrigcaps testtrn testbcd testfreq listrigs testloc rig_bench testcache cachetest cachetest2 testcookie testgrid hamlibmodels

Wyświetl plik

@ -7,7 +7,7 @@ int main(int argc, char *argv[])
{
RIG *rig;
rig_model_t myrig_model;
rig_set_debug_level(RIG_DEBUG_NONE);
rig_set_debug_level(RIG_DEBUG_WARN);
if (argc > 1) { myrig_model = atoi(argv[1]); }
else
@ -19,13 +19,20 @@ int main(int argc, char *argv[])
if (rig == NULL)
{
printf("Error in rig_init\n");
return 1;
}
#ifdef _WIN32
strncpy(rig->state.rigport.pathname, "COM37", HAMLIB_FILPATHLEN - 1);
#else
strncpy(rig->state.rigport.pathname, "/dev/ttyUSB0", HAMLIB_FILPATHLEN - 1);
#endif
rig->state.rigport.parm.serial.rate = 38400;
rig_open(rig);
multicast_init(rig, "224.0.0.1", 4532);
printf("threadid=%lld\n", (long long)rig->state.multicast->threadid);
pthread_join(rig->state.multicast->threadid, NULL);
pthread_exit(NULL);
return 0;