Hello all,
here is the situation: a few months ago I wrote a Java Program to
configure a smart USB device by reading/writing a configuration file.
The Device (a spy camera commonly called the 808 #16) has an on-board
ARM processor and storage in the form of an SD card; its Firmware is
updated frequently (new functions constantly added) by writing a binary
file to the SD card. When the Device is connected to a computer, it
shows up as a removable-drive; the recorded videos/photos can then be
copied to the computer for viewing.
A recent Firmware update now allows direct communication with the Device
Firmware to get/set all parameters while keeping the removable-drive
function intact. No more need to use a configuration file.
Note: Installed libusb-win32 (v1.2.6.0) for my Device on my Windows test
computers.
Not knowing anything about USB communication in Java, I first wrote a
proof-of-concept USB polling thread (every 200 ms) to my Java Program
(with an interface to libusbx) that shows an Icon when Device is
connected and removes the Icon when Device is disconnected. That works
like a charm on 32/64 bit Linux, Mac OS X (not tested ppc yet), and
Windows. Basic deployment capabilities proven.
I then wrote a prototype program in C (actually stripped down xusb
example program and kept only the SCSI part) and wrote all required
functions (get, set, etc.). Everything works like a charm on my
development machine (32-bit Windows XP SP3) and on 64-bit Linux, without
changing anything to my prototype program. So far: great!
Until...
Deployment problems:
1-when I tried to run my C prototype program on an identical computer
(32-bit Windows XP SP3 with libusb-win32 (v1.2.6.0) installed), my
program always fails to connect to Device; same is true for the original
xusb.exe program. This is what I get:
[ 0.464646] [000004e4] libusbx: debug [] open 1.2
[ 0.464646] [000004e4] libusbx: debug [] could not open device:
LIBUSB_ERROR_ACCESS
[ 0.464646] [000004e4] libusbx: debug [] destroy device 2.1
[ 0.464646] [000004e4] libusbx: debug [] destroy device 1.1
[ 0.464646] [000004e4] libusbx: debug [] destroy device 1.2
[ 0.464646] [000004e4] libusbx: debug [] destroy device 2.3
[ 0.464646] [000004e4] libusbx: debug [] destroy device 2.2
Failed.
[ 0.464646] [000004e4] libusbx: debug []
[ 0.464646] [000004e4] libusbx: debug [] destroying default context
2-my Java Program is currently being used by well over 1600 people
world-wide. Installing libusb-win32 driver is not an option because:
a-it disables the default Windows removable-drive driver USBSTOR,
therefore making it impossible to access recorded Videos/Photos;
b-the competing program (32-bit Windows only) does not require User
to install anything to work correctly.
Question: how can libusbx piggy-back its communication to USB
devices over driver USBSTOR ?
Thank you for your help,
therau2000
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
_______________________________________________
libusbx-devel mailing list
libusbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusbx-devel