java - Migrating C code that talks to a USB glucometer device from Linux to Android -


post stackoverflow: android 2.2 usb sw support

i have bayer usb glucometer reverse engineered using usbsnoop tool in windows.

i found perl script convert usbsnoop output c code initiates data transfer usb device when executed.

when plug glucometer (x86) laptop, , run compiled c code on ubuntu, readings captured meter , printed shell. (these readings not viewable plugging usb meter laptop, i.e., cannot data need opening file.)

i want similar android. communication glucometer part of app running on phone running android 2.2.

does have suggestions on how this?

my complete c code on google docs, snippets posted below. key library use libusb.

i believe usb support not officially available until android 3.1, , although have seen mention of java libusb wrapper, dated 2009, , have not been able understand how use it.

so wanted know if there applications have used java libusb wrapper and/or if there more current solutions usb support on android 2.2.

i using motorola droid , have been able phone in usb host mode using hack.

thanks in advance help.

here snippets of c code works on ubuntu; compile using sh> gcc driver.c -o driver -lusb

usb_init(); usb_set_debug(255); usb_find_busses(); usb_find_devices();  ...  vendor = strtol(argv[1], &endptr, 16); product = strtol(argv[2], &endptr, 16); dev = find_device(vendor, product); assert(dev); devh = usb_open(dev);  ... // following code autogenerated using usbsnoop2libusb memcpy(buf, "\x00\x00\x00\x02\x52\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 0x0000040); ret = usb_interrupt_write(devh, 0x00000001, buf, 0x0000040, 1000); printf("137 interrupt write returned %d, bytes: ", ret); print_bytes(buf, ret); printf("\n"); usleep(3*1000); ret = usb_interrupt_read(devh, 0x00000081, buf, 0x0000040, 1000); printf("138 interrupt read returned %d, bytes: ", ret); print_bytes(buf, ret); printf("\n"); usleep(19*1000); memcpy(buf, "\x00\x00\x00\x02\x53\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 0x0000040); ret = usb_interrupt_write(devh, 0x00000001, buf, 0x0000040, 1000); printf("139 interrupt write returned %d, bytes: ", ret); print_bytes(buf, ret); printf("\n"); usleep(2*1000); ret = usb_interrupt_read(devh, 0x00000081, buf, 0x0000040, 1000); printf("140 interrupt read returned %d, bytes: ", ret); print_bytes(buf, ret); printf("\n"); 

i have diabetes , using glucometer deluxe software, java program on windows xp machine. software lacks many features such being able adjust vertical scale on graph of glucose versus time, fixed @ 600 high. background colors graph makes black , white laser printouts hard read. furthermore it's printout of readings verbose takes many many pages wasting paper, simple spreadsheet format better.

in general programming android done in java. seems me using jad java decompiler , http://en.wikipedia.org/wiki/jad_%28java_decompiler%29 , on provided glucometer deluxe software might way hack code. won't easy.

if works able improve java program pc's etc work on android.

cdh@cdhconsult.com


Comments

Popular posts from this blog

c# - SharpSVN - How to get the previous revision? -

c++ - Is it possible to compile a VST on linux? -

url - Querystring manipulation of email Address in PHP -