#include <stdlib.h>
#include <string.h>
+#define USB_VENDOR_FSF 0xfffe
+#define USB_VENDOR_ALTUSMETRUM USB_VENDOR_FSF
+#define USB_PRODUCT_ALTUSMETRUM 0x000a
+#define USB_PRODUCT_TELEMETRUM 0x000b
+#define USB_PRODUCT_TELEDONGLE 0x000c
+#define USB_PRODUCT_TELETERRA 0x000d
+#define USB_PRODUCT_TELEBT 0x000e
+#define USB_PRODUCT_ALTUSMETRUM_MIN 0x000a
+#define USB_PRODUCT_ALTUSMETRUM_MAX 0x0013
+
+#define USB_IS_ALTUSMETRUM(v,p) ((v) == USB_VENDOR_ALTUSMETRUM && \
+ (USB_PRODUCT_ALTUSMETRUM_MIN <= (p) && \
+ (p) <= USB_PRODUCT_ALTUSMETRUM_MAX))
+
+#define BLUETOOTH_PRODUCT_TELEBT "TeleBT"
+
#define USE_POLL
PUBLIC int
free(usbdevs);
}
+#if HAS_BLUETOOTH
struct altos_bt_list {
inquiry_info *ii;
int sock;
};
#define INQUIRY_MAX_RSP 255
-#define INQUIRY_LEN 8
struct altos_bt_list *
-altos_bt_list_start(void)
+altos_bt_list_start(int inquiry_time)
{
struct altos_bt_list *bt_list;
goto no_sock;
bt_list->num_rsp = hci_inquiry(bt_list->dev_id,
- INQUIRY_LEN,
+ inquiry_time,
INQUIRY_MAX_RSP,
NULL,
&bt_list->ii,
free(bt_list);
}
+void
+altos_bt_fill_in(char *name, char *addr, struct altos_bt_device *device)
+{
+ strncpy(device->name, name, sizeof (device->name));
+ device->name[sizeof(device->name)-1] = '\0';
+ strncpy(device->addr, addr, sizeof (device->addr));
+ device->addr[sizeof(device->addr)-1] = '\0';
+}
+
struct altos_file *
altos_bt_open(struct altos_bt_device *device)
{
perror("connect");
goto no_link;
}
+ sleep(1);
#ifdef USE_POLL
pipe(file->pipe);
no_file:
return NULL;
}
+#endif /* HAS_BLUETOOTH */
#endif
}
struct altos_list *
-altos_list_start(void)
+altos_list_start(int time)
{
struct altos_list *list = calloc (sizeof (struct altos_list), 1);
CFMutableDictionaryRef matching_dictionary = IOServiceMatching("IOUSBDevice");