}
static struct {
- char *windows;
- char *real;
+ unsigned int vid, pid;
+ char *name;
} name_map[] = {
- { .windows = "AltusMetrum28", .real = "EasyMega" },
- { .windows = "AltusMetrum2c", .real = "EasyMotor" },
- { 0, 0 },
+ { .vid = 0xfffe, .pid = 0x000d, .name = "EasyTimer" },
+ { .vid = 0xfffe, .pid = 0x0028, .name = "EasyMega" },
+ { .vid = 0xfffe, .pid = 0x002c, .name = "EasyMotor" },
+ { .name = NULL },
};
PUBLIC int
altos_set_last_windows_error();
continue;
}
- for (i = 0; name_map[i].windows; i++)
- if (!strcmp(name_map[i].windows, friendlyname)) {
- strcpy(friendlyname, name_map[i].real);
+
+ char *space = friendlyname;
+ while (*space) {
+ if (*space == ' ') {
+ *space = '\0';
break;
}
+ space++;
+ }
+
+ for (i = 0; name_map[i].name; i++) {
+ if (name_map[i].vid == vid && name_map[i].pid == pid) {
+ strcpy(friendlyname, name_map[i].name);
+ break;
+ }
+ }
device->vendor = vid;
device->product = pid;
struct altos_file_windows *file;
SOCKADDR_BTH sockaddr_bth;
int ret;
+ int channel = 0;
file = calloc(1, sizeof (struct altos_file_windows));
if (!file) {
memset(&sockaddr_bth, '\0', sizeof (sockaddr_bth));
sockaddr_bth.addressFamily = AF_BTH;
sockaddr_bth.btAddr = str2ba(device->addr);
- sockaddr_bth.port = altos_bt_port(device);
+
+ channel = altos_bt_port(device);
+ if (channel == 0)
+ channel = BT_PORT_DEFAULT;
+
+ sockaddr_bth.port = channel;
ret = connect(file->socket, (SOCKADDR *) &sockaddr_bth, sizeof (sockaddr_bth));