static int lock_button=0;
static int previous_lock_button=0;
+static int running=1;
+
static void afFunctionAlert(int gpio, int level, uint32_t tick) {
afFunction=(level==0);
}
}
void gpio_close() {
-// if(strcmp(unameData.nodename,"raspberrypi")==0) {
-#ifdef raspberrypi
- gpioTerminate();
-#endif
-// }
-// if(strcmp(unameData.nodename,"odroid")==0) {
+ running=0;
#ifdef odroid
FILE *fp;
fp = popen("echo 97 > /sys/class/gpio/unexport\n", "r");
fp = popen("echo 108 > /sys/class/gpio/unexport\n", "r");
pclose(fp);
#endif
-// }
}
int vfo_encoder_get_pos() {
static void* rotary_encoder_thread(void *arg) {
int pos;
- while(1) {
+ running=1;
+ while(running) {
int function_button=function_get_state();
if(function_button!=previous_function_button) {
}
}
-// if(strcmp(unameData.nodename,"raspberrypi")==0) {
#ifdef raspberrypi
- gpioDelay(100000); // 10 per second
+ if(running) gpioDelay(100000); // 10 per second
#endif
-// } else if(strcmp(unameData.nodename,"odroid")==0) {
#ifdef odroid
- usleep(100000);
+ if(runnig) usleep(100000);
#endif
-// }
}
+#ifdef raspberrypi
+ gpioTerminate();
+#endif
}
#endif
}
static void start_cb(GtkWidget *widget, gpointer data) {
- selected_device=(int)data;
-fprintf(stderr,"start_cb: %d\n",selected_device);
+fprintf(stderr,"start_cb: %p\n",data);
+ radio=(DISCOVERED *)data;
start=1;
gtk_widget_destroy(discovery_dialog);
}
gtk_grid_set_column_homogeneous(GTK_GRID(grid),TRUE);
int i;
+ char version[16];
char text[128];
for(i=0;i<devices;i++) {
d=&discovered[i];
-fprintf(stderr,"protocol=%d name=%s\n",d->protocol,d->name);
+fprintf(stderr,"%p protocol=%d name=%s\n",d,d->protocol,d->name);
+ if(d->protocol==ORIGINAL_PROTOCOL) {
+ sprintf(version,"%d.%d",
+ d->software_version/10,
+ d->software_version%10);
+ } else {
+ sprintf(version,"%d.%d.%d",
+ d->software_version/100,
+ (d->software_version%100)/10,
+ d->software_version%10);
+ }
switch(d->protocol) {
case ORIGINAL_PROTOCOL:
case NEW_PROTOCOL:
- sprintf(text,"%s (%s %d.%d) %s (%02X:%02X:%02X:%02X:%02X:%02X) on %s\n",
+ sprintf(text,"%s (%s %s) %s (%02X:%02X:%02X:%02X:%02X:%02X) on %s\n",
d->name,
d->protocol==ORIGINAL_PROTOCOL?"old":"new",
- //d->protocol==ORIGINAL_PROTOCOL?d->software_version/10:d->software_version/100,
- //d->protocol==ORIGINAL_PROTOCOL?d->software_version%10:d->software_version%100,
- d->software_version/10,
- d->software_version%10,
+ version,
inet_ntoa(d->info.network.address.sin_addr),
d->info.network.mac_address[0],
d->info.network.mac_address[1],
#ifdef LIMESDR
case LIMESDR_PROTOCOL:
/*
- sprintf(text,"%s (%s %d.%d.%d)\n",
+ sprintf(text,"%s (%s %s)\n",
d->name,
"lime",
- d->software_version/100,
- (d->software_version%100)/10,
- d->software_version%10);
+ version);
*/
sprintf(text,"%s\n",
d->name);
gtk_widget_override_font(start_button, pango_font_description_from_string("Arial 18"));
gtk_widget_show(start_button);
gtk_grid_attach(GTK_GRID(grid),start_button,3,i,1,1);
- g_signal_connect(start_button,"pressed",G_CALLBACK(start_cb),(gpointer *)i);
+ g_signal_connect(start_button,"pressed",G_CALLBACK(start_cb),(gpointer)d);
// if not available then cannot start it
if(d->status!=STATE_AVAILABLE) {
_exit(0);
}
- gtk_widget_destroy(discovery_dialog);
+ if(!start) {
+ gtk_widget_destroy(discovery_dialog);
+ }
#ifdef GPIO
if(result==GTK_RESPONSE_YES) {
configure_gpio(splash_window);
splash_status("Initializing wdsp ...");
- radio=&d[selected_device];
+fprintf(stderr,"selected radio=%p device=%d\n",radio,radio->device);
+
protocol=radio->protocol;
device=radio->device;
-fprintf(stderr,"radio: %p\n",radio);
switch(radio->protocol) {
case ORIGINAL_PROTOCOL:
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);
- fprintf(stderr,"new_discover: found protocol=%d device=%d software_version=%d status=%d address=%s (%02X:%02X:%02X:%02X:%02X:%02X) on %s\n",
+ fprintf(stderr,"new_discover: found %d protocol=%d device=%d software_version=%d status=%d address=%s (%02X:%02X:%02X:%02X:%02X:%02X) on %s\n",
+ devices,
discovered[devices].protocol,
discovered[devices].device,
discovered[devices].software_version,
CAIRO_FONT_SLANT_NORMAL,
CAIRO_FONT_WEIGHT_BOLD);
+ char version[16];
char text[128];
- switch(discovered->protocol) {
+ if(radio->protocol==ORIGINAL_PROTOCOL) {
+ sprintf(version,"%d.%d",
+ radio->software_version/10,
+ radio->software_version%10);
+ } else {
+ sprintf(version,"%d.%d.%d",
+ radio->software_version/100,
+ (radio->software_version%100)/10,
+ radio->software_version%10);
+ }
+
+ switch(radio->protocol) {
case ORIGINAL_PROTOCOL:
case NEW_PROTOCOL:
- sprintf(text,"%s (%s %d.%d) %s",
- discovered->name,
- discovered->protocol==ORIGINAL_PROTOCOL?"old":"new",
- discovered->software_version/10,
- discovered->software_version%10,
- inet_ntoa(discovered->info.network.address.sin_addr));
+ sprintf(text,"%s (%s %s) %s",
+ radio->name,
+ radio->protocol==ORIGINAL_PROTOCOL?"old":"new",
+ version,
+ inet_ntoa(radio->info.network.address.sin_addr));
break;
#ifdef LIMESDR
case LIMESDR_PROTOCOL:
sprintf(text,"%s\n",
- discovered->name);
+ radio->name);
break;
#endif
}