memcpy((void*)&discovered[devices].info.network.interface_netmask,(void*)&interface_netmask,sizeof(interface_netmask));
discovered[devices].info.network.interface_length=sizeof(interface_addr);
strcpy(discovered[devices].info.network.interface_name,interface_name);
- //
- // some devices report TCP capability here
- //
discovered[devices].use_tcp=0;
fprintf(stderr,"discovery: found device=%d software_version=%d status=%d address=%s (%02X:%02X:%02X:%02X:%02X:%02X) on %s\n",
discovered[devices].device,
void old_discovery() {
struct ifaddrs *addrs,*ifa;
- fprintf(stderr,"old_discovery\n");
+fprintf(stderr,"old_discovery\n");
getifaddrs(&addrs);
ifa = addrs;
while (ifa) {
ifa = ifa->ifa_next;
}
freeifaddrs(addrs);
- // To one additional "discover" for a fixed TCP address
+
+ // Do one additional "discover" for a fixed TCP address
discover(NULL);
+ fprintf(stderr, "discovery found %d devices\n",devices);
+
int i;
for(i=0;i<devices;i++) {
fprintf(stderr,"discovery: found device=%d software_version=%d status=%d address=%s (%02X:%02X:%02X:%02X:%02X:%02X) on %s\n",
static int running;
static long ep4_sequence;
-static uint32_t last_seq_num=-1;
+static uint32_t last_seq_num=-0xffffffff;
static int suppress_ozy_packet = 0;
static int current_rx=0;
tmp=socket(AF_INET, SOCK_STREAM, 0);
if (tmp < 0) {
perror("tcp_socket: create socket failed for TCP socket");
+ exit(-1);
}
int optval = 1;
if(setsockopt(tmp, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval))<0) {
bytes_read=recvfrom(data_socket,buffer,sizeof(buffer),0,(struct sockaddr*)&addr,&length);
if(bytes_read < 0 && errno != EAGAIN) perror("old_protocol recvfrom UDP:");
} else {
- // no Socket available, wait a While
- usleep(100000);
- bytes_read=0;
+ // This should absolutely not happen.
+ fprintf(stderr,"Neither TCP nor UDP socket available, exiting!\n");
+ exit(-1);
}
if(bytes_read >= 0 || errno != EAGAIN) break;
}
sleep(1);
// start the data flowing
- metis_start_stop(0x01);
+ metis_start_stop(1);
}
static void metis_start_stop(int command) {
//
// Stop the sending of TX/audio packets (1032-byte-length) and wait a while
// Then, send the start/stop buffer with a length of 1032
- // Note: we should never arrive here sending a start signal
//
suppress_ozy_packet=1;
usleep(100000);
if (tcp_socket >= 0) {
if (length != 1032) {
fprintf(stderr,"PROGRAMMING ERROR: TCP LENGTH != 1032\n");
+ exit(-1);
}
if(sendto(tcp_socket,buffer,length,0,NULL, 0) != length) {
perror("sendto socket failed for TCP metis_send_data\n");
}
- } else {
+ } else if (data_socket >= 0{
if(sendto(data_socket,buffer,length,0,(struct sockaddr*)&data_addr,sizeof(data_addr))!=length) {
perror("sendto socket failed for UDP metis_send_data\n");
}
+ } else {
+ // This should absolutely not happen.
+ fprintf(stderr,"Neither TCP nor UDP socket available, exiting!\n");
+ exit(-1);
}
}
init_analyzer(rx);
SetEXTANBSamplerate (rx->id, sample_rate);
SetEXTNOBSamplerate (rx->id, sample_rate);
- fprintf(stderr,"receiver_change_sample_rate: id=%d rate=%d buffer_size=%d output_samples=%d\n",rx->id, rx->sample_rate, rx->buffer_size, rx->output_samples);
+fprintf(stderr,"receiver_change_sample_rate: id=%d rate=%d buffer_size=%d output_samples=%d\n",rx->id, rx->sample_rate, rx->buffer_size, rx->output_samples);
SetChannelState(rx->id,1,0);
}