projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
libaltos: Map generic windows device names to actual names
[fw/altos]
/
libaltos
/
libaltos_windows.c
diff --git
a/libaltos/libaltos_windows.c
b/libaltos/libaltos_windows.c
index 2c3f41e11826cb199a5de41c466976235fab8ed9..0c1f6782fd58f167be01d53a112dede4d04a426f 100644
(file)
--- a/
libaltos/libaltos_windows.c
+++ b/
libaltos/libaltos_windows.c
@@
-3,7
+3,8
@@
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
@@
-130,6
+131,15
@@
altos_ftdi_list_start(void)
return list;
}
return list;
}
+static struct {
+ char *windows;
+ char *real;
+} name_map[] = {
+ { .windows = "AltusMetrum28", .real = "EasyMega" },
+ { .windows = "AltusMetrum2c", .real = "EasyMotor" },
+ { 0, 0 },
+};
+
PUBLIC int
altos_list_next(struct altos_list *list, struct altos_device *device)
{
PUBLIC int
altos_list_next(struct altos_list *list, struct altos_device *device)
{
@@
-147,6
+157,7
@@
altos_list_next(struct altos_list *list, struct altos_device *device)
DWORD friendlyname_len;
char instanceid[1024];
DWORD instanceid_len;
DWORD friendlyname_len;
char instanceid[1024];
DWORD instanceid_len;
+ int i;
dev_info_data.cbSize = sizeof (SP_DEVINFO_DATA);
while(SetupDiEnumDeviceInfo(list->dev_info, list->index,
dev_info_data.cbSize = sizeof (SP_DEVINFO_DATA);
while(SetupDiEnumDeviceInfo(list->dev_info, list->index,
@@
-229,6
+240,12
@@
altos_list_next(struct altos_list *list, struct altos_device *device)
altos_set_last_windows_error();
continue;
}
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);
+ break;
+ }
+
device->vendor = vid;
device->product = pid;
device->serial = serial;
device->vendor = vid;
device->product = pid;
device->serial = serial;
@@
-638,7
+655,7
@@
static void
ba2str(BTH_ADDR ba, char *str)
{
ba2str(BTH_ADDR ba, char *str)
{
- sprintf(str, "%02
x:%02x:%02x:%02x:%02x:%02x
",
+ sprintf(str, "%02
X:%02X:%02X:%02X:%02X:%02X
",
get_byte(ba, 0),
get_byte(ba, 1),
get_byte(ba, 2),
get_byte(ba, 0),
get_byte(ba, 1),
get_byte(ba, 2),
@@
-746,7
+763,7
@@
altos_bt_open(struct altos_bt_device *device)
memset(&sockaddr_bth, '\0', sizeof (sockaddr_bth));
sockaddr_bth.addressFamily = AF_BTH;
sockaddr_bth.btAddr = str2ba(device->addr);
memset(&sockaddr_bth, '\0', sizeof (sockaddr_bth));
sockaddr_bth.addressFamily = AF_BTH;
sockaddr_bth.btAddr = str2ba(device->addr);
- sockaddr_bth.port =
1
;
+ sockaddr_bth.port =
altos_bt_port(device)
;
ret = connect(file->socket, (SOCKADDR *) &sockaddr_bth, sizeof (sockaddr_bth));
ret = connect(file->socket, (SOCKADDR *) &sockaddr_bth, sizeof (sockaddr_bth));
@@
-754,8
+771,14
@@
altos_bt_open(struct altos_bt_device *device)
altos_set_last_winsock_error();
closesocket(file->socket);
free(file);
altos_set_last_winsock_error();
closesocket(file->socket);
free(file);
+ log_message("Connection attempted to address %s port %d\n", device->addr, sockaddr_bth.port);
return NULL;
}
return &file->file;
}
return NULL;
}
return &file->file;
}
+void
+altos_pause_one_second(void)
+{
+ Sleep(1000);
+}