Thank You for the reply, the printer is USB-native, so it hat an USB-interface.
We already use javax.comm fpr parallel and serial connections with success.
But the Problem is solved. I just talked to Star and they told me that TSP 143
is not natively supporting ESC-POS. Therefore javax.usb was talking to the
printer, but the printer simply ignored my messages
-----Ursprüngliche Nachricht-----
Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im Auftrag von Dan Streetman
Gesendet: Dienstag, 19. Februar 2008 15:37
An: Daniel Strobl
Cc: javax-usb-devel@lists.sourceforge.net
Betreff: Re: [javax-usb-devel] Star POS linux USB
Is this printer really a RS232 device that has a USB<->RS232 converter
inside it or attached to it? If so, you should use javax.comm to talk
to it, not javax.usb. What device node do you tell cups to print on?
On Feb 19, 2008 3:12 AM, Daniel Strobl <[EMAIL PROTECTED]> wrote:
> Hello,
>
> I need to translate a printer driver from parallel to USB. I have a Star TSP
> 143, which supports ESCPOS. I have been using RXTX to talk to the printer
> over /dev/lp0.
>
> My code already retrieves the status of the printer, which tells me if it is
> out of paper and forth.
>
> But I am not able to get the printer to print. Therefore I have sniffed the
> USB port once when printing with CUPS. And once when talking to it via
> javax.usb.
>
> The difference between CUPS and javax.usb is the interrupt-events when
> printing with CUPS. It seems to me that the kernel usblp-Modules does use
> interrupts to send data to the printer.
>
> Is the a way to tell javax.usb to use interrupts or am I doing something
> wrong in general?
>
>
> The Code:
>
> public class USBTest implements UsbPipeListener, UsbDeviceListener {
>
> public static final byte PRN_CLASS = 0x07;
> public static final byte PRN_SUBCLASS_BOOT_INTERFACE = 0x01;
> public static final byte PROTOCOL_PRN = 0x02;
>
> public static void main(String argv[]) throws
> UnsupportedEncodingException, UsbDisconnectedException, UsbException,
> UsbNotActiveException, UsbNotOpenException, IllegalArgumentException,
> InterruptedException
> {
> UsbHub virtualRootUsbHub =
> ShowTopology.getVirtualRootUsbHub();
> List<InterfaceWithDeviceBag> usbInterfaces =
> FindUsbInterface.getUsbInterfacesWithInterfaceClass(virtualRootUsbHub,
> PRN_CLASS);
> for (InterfaceWithDeviceBag
> bag:usbInterfaces) {
> UsbInterface usbInterface =
> bag.interf;
>
> UsbInterfaceDescriptor desc =
> usbInterface.getUsbInterfaceDescriptor();
>
> if
> (PRN_SUBCLASS_BOOT_INTERFACE == desc.bInterfaceSubClass() && PROTOCOL_PRN ==
> desc.bInterfaceProtocol()) {
>
> System.err.println("Drucker gefunden:
> "+bag.device.getManufacturerString()+bag.device.getProductString());
> }
> testPrint(bag.interf,
> bag.device);
> }
> }
>
> public static void testPrint(UsbInterface usbInterface,
> UsbDevice usbDevice) throws UsbNotActiveException, UsbNotOpenException,
> IllegalArgumentException, UsbDisconnectedException, UsbException,
> InterruptedException
> {
> UnicodeTranslator trans=new
> UnicodeTranslatorInt();
> usbDevice.addUsbDeviceListener(new
> USBTest());
>
> try {
> usbInterface.claim(new
> UsbInterfacePolicy() {
> public
> boolean forceClaim(UsbInterface usbinterface) {
>
> return true;
> }
> });
> } catch ( UsbException uE ) {
> System.out.println("Could not
> claim interface to USB printer (remove module usblp)!!! : " +
> uE.getMessage());
> return;
> }
>
> List usbEndpoints =
> usbInterface.getUsbEndpoints();
>
> UsbEndpoint usbEndpoint_in = null;
> UsbEndpoint usbEndpoint_out = null;
>
> for (int i=0; i<usbEndpoints.size(); i++) {
> UsbEndpoint usbEndpoint_tmp =
> (UsbEndpoint)usbEndpoints.get(i);
>
>
>
> if(UsbConst.ENDPOINT_DIRECTION_IN == usbEndpoint_tmp.getDirection())
>
> usbEndpoint_in=usbEndpoint_tmp;
> else
> if(UsbConst.ENDPOINT_DIRECTION_OUT == usbEndpoint_tmp.getDirection())
>
> usbEndpoint_out=usbEndpoint_tmp;
>
> System.err.println("endpoint
> no "+i);
>
> }
> if(usbEndpoint_in==null){
> System.err.println("No USB IN
> Endpoint");
> return;
> }
> if(usbEndpoint_out==null){
> System.err.println("No USB
> OUT Endpoint");
> return;
> }
>
>
> UsbPipe usbPipe_out =
> usbEndpoint_out.getUsbPipe();
> UsbPipe usbPipe_in =
> usbEndpoint_in.getUsbPipe();
>
> try {
> usbPipe_out.open();
> usbPipe_in.open();
> System.err.println("hatkein
> papier?:"+isPrinterError(usbPipe_in));
>
>
> usbPipe_in.addUsbPipeListener(new USBTest());
>
> //usbPipe_out.addUsbPipeListener(new USBTest());
> } catch ( UsbException uE ) {
>
> System.out.println("Could not
> open out endpoint to communicate with USB Printer : " + uE.getMessage());
> try { usbInterface.release();
> }
> catch ( UsbException uE2 ) {
> }
> return;
> }
>
> // INIT
> UsbIrp irp=usbPipe_out.createUsbIrp();
>
> irp.setData(joinArray(StarComConstants.INIT_PRINTER,new
> byte[]{0x1b,'U','0'}));
> usbPipe_out.syncSubmit(irp);
>
> System.err.println("after init");
> byte[] bytesToRead = new byte[64];
> UsbIrp irpRead = usbPipe_in.createUsbIrp();
> irpRead.setData(bytesToRead);
> usbPipe_in.asyncSubmit(irpRead);
> irpRead.waitUntilComplete(1000);
> for(int i=0;i<10;i++){
>
> System.err.println(bytesToRead[i]);
> }
>
> // PAPER
> irp=usbPipe_out.createUsbIrp();
>
> irp.setData(joinArray(StarComConstants.SELECT_PRINTER,StarComConstants.SET_
> PAPERWIDTH_80MM));
> usbPipe_out.syncSubmit(irp);
>
>
> System.err.println("after set paper");
> bytesToRead = new byte[64];
> irpRead = usbPipe_in.createUsbIrp();
> irpRead.setData(bytesToRead);
> usbPipe_in.asyncSubmit(irpRead);
> irpRead.waitUntilComplete(1000);
> for(int i=0;i<10;i++){
>
> System.err.println(bytesToRead[i]);
> }
>
>
> // drucke was !!
> irp=usbPipe_out.createUsbIrp();
> irp.setData(joinArray(
> joinArray(
>
> joinArray(StarComConstants.IGNORE_SEQ_CMD,
> ESCPOS.CHAR_FONT_3), ESCPOS.CHAR_SIZE_3),"please
> print\n\n\n\n\n\n\n\n\n\n".getBytes())
> );
>
> usbPipe_out.syncSubmit(irp);
>
> System.err.println("after drucke du sau");
> bytesToRead = new byte[64];
> IrpRead = usbPipe_in.createUsbIrp();
> irpRead.setData(bytesToRead);
> usbPipe_in.asyncSubmit(irpRead);
> irpRead.waitUntilComplete(1000);
> for(int i=0;i<10;i++){
>
> System.err.println(bytesToRead[i]);
> }
>
> Thread.sleep(1000);
>
> try {
> usbPipe_out.close();
> usbPipe_in.close();
> usbInterface.release();
> } catch ( UsbException uE ) {
> uE.printStackTrace();
> }
>
> }
>
> private static boolean isPrinterError(UsbPipe pipe) throws
> IllegalArgumentException, UsbDisconnectedException, UsbException{
> UsbControlIrp getUsageIrp =
> pipe.createUsbControlIrp((byte)(UsbConst.REQUESTTYPE_DIRECTION_IN |
> UsbConst.REQUESTTYPE_TYPE_STANDARD |
> UsbConst.REQUESTTYPE_RECIPIENT_INTERFACE)
> , (byte)0x01,
> (short)0,(short)0 );
>
> byte[] data = new byte[256];
> getUsageIrp.setData(data);
>
> pipe.syncSubmit(getUsageIrp);
>
> if(getUsageIrp.getActualLength()>=3){
>
> if(getUsageIrp.getData()[2]!=0){
> return true;
> }
> }
> if(getUsageIrp.getActualLength()>=6){
>
> if(getUsageIrp.getData()[2]!=0){
> return true;
> }
> }
> return false;
> }
>
> private static byte[] joinArray(byte[] a1,byte[] a2){
> byte[] r=new byte[a1.length+a2.length];
> int i=0;
> for(i=0;i<a1.length;i++){
> r[i]=a1[i];
> }
> for(int j=0;j<a2.length;j++){
> r[i+j]=a2[j];
> }
> return r;
> }
>
> public void dataEventOccurred(UsbPipeDataEvent
> usbpipedataevent) {
> System.err.println("data
> "+usbpipedataevent.getData());
> }
> public void errorEventOccurred(UsbPipeErrorEvent
> usbpipeerrorevent) {
> System.err.println("error
> "+usbpipeerrorevent.getUsbPipe().getUsbEndpoint().getDirection());
> }
> public void dataEventOccurred(UsbDeviceDataEvent
> usbdevicedataevent) {
> System.err.println("dataevent device");
> }
> public void errorEventOccurred(UsbDeviceErrorEvent
> usbdeviceerrorevent) {
> System.err.println("errorevent device");
> }
> public void usbDeviceDetached(UsbDeviceEvent usbdeviceevent)
> {
> System.err.println("device detached device");
> }
> }
>
>
> Sniff CUPS:
>
> …
> f7eb5ec0 297629823 C Bi:007:01 0 9 = 23060000 00000000 00 f7eb5ec0 297629864
> S Bi:007:01 -115 8192 < f7eb5ec0 297630823 C Bi:007:01 0 9 = 23060000
> 00000000 00 f7eb5ec0 297630863 S Bi:007:01 -115 8192 < f7eb5ec0 297631825 C
> Bi:007:01 0 9 = 23060000 00000000 00 f7eb5ec0 297631867 S Bi:007:01 -115
> 8192 < f7eb5ec0 297632822 C Bi:007:01 0 9 = 23060000 00000000 00 f7eb5ec0
> 297632862 S Bi:007:01 -115 8192 < f7eb5ec0 297633823 C Bi:007:01 0 9 =
> 23060000 00000000 00 f7eb5ec0 297633864 S Bi:007:01 -115 8192 < f7eb5ec0
> 297634822 C Bi:007:01 0 9 = 23060000 00000000 00 f7eb5ec0 297634864 S
> Bi:007:01 -115 8192 < f7eb5ec0 297635823 C Bi:007:01 0 9 = 23060000 00000000
> 00 f7eb5ec0 297635864 S Bi:007:01 -115 8192 < f7eb5ec0 297636823 C Bi:007:01
> 0 9 = 23060000 00000000 00 f7eb5ec0 297637290 S Bi:007:01 -115 8192 <
> df8cd240 297637370 S Bo:007:02 -115 8192 = 1b401b1e 41001b2a 72521b2a
> 72411b2a 72513000 1b2a7250 30001b2a 72543200 f7eb5ec0 297637824 C Bi:007:01
> 0 9 = 23060000 00000000 00 df8cd240 297733849 C Bo:007:02 0 8192 > f7eb5ec0
> 297734012 S Bi:007:01 -115 8192 < df8cd240 297734134 S Bo:007:02 -115 8192 =
> 20625000 c0000000 00000000 00000000 00000000 00000000 00000000 00000000
> f7eb5ec0 297734841 C Bi:007:01 0 9 = 23060000 00000000 00 df8cd240 297771843
> C Bo:007:02 0 8192 > f7eb5ec0 297771918 S Bi:007:01 -115 8192 < df8cd240
> 297772040 S Bo:007:02 -115 8192 = 44440000 00000000 00000dde dfffffdf
> ffffffff ffffffff fffffefe ec000000 f7eb5ec0 297772841 C Bi:007:01 0 9 =
> 23060000 00000000 00 df8cd240 297809844 C Bo:007:02 0 8192 > f7eb5ec0
> 297809925 S Bi:007:01 -115 8192 < df8cd240 297810045 S Bo:007:02 -115 8192 =
> c0000600 00000000 00000000 00000480 00000000 00000000 04800000 00000000
> f7eb5ec0 297810840 C Bi:007:01 0 9 = 23060000 00000000 00 df8cd240 297847843
> C Bo:007:02 0 8192 > f7eb5ec0 297847916 S Bi:007:01 -115 8192 < df8cd240
> 297848028 S Bo:007:02 -115 8192 = 00000000 00000000 00000000 00000000
> 00000000 00000000 00000000 00000000 f7eb5ec0 297848839 C Bi:007:01 0 9 =
> 23060000 00000000 00 df8cd240 297885843 C Bo:007:02 0 8192 > f7eb5ec0
> 297885873 S Bi:007:01 -115 8192 < df8cd240 297885929 S Bo:007:02 -115 8192 =
> 10000000 00000000 00000007 9ee10e49 ee072e3b 7edc0000 00000000 0000002a
> f7eb5ec0 297886840 C Bi:007:01 0 9 = 23060000 00000000 00 df8cd240 297923842
> C Bo:007:02 0 8192 > f7eb5ec0 297923872 S Bi:007:01 -115 8192 < df8cd240
> 297923929 S Bo:007:02 -115 8192 = 00000000 00000000 00000000 00000000
> 00000000 00000000 000000d0 00000030 f7eb5ec0 297924839 C Bi:007:01 0 9 =
> 23060000 00000000 00 df8cd240 297961809 C Bo:007:02 0 8192 > f7eb5ec0
> 297961839 S Bi:007:01 -115 8192 < df8cd240 297961896 S Bo:007:02 -115 8192 =
> 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> f7eb5ec0 297962840 C Bi:007:01 0 9 = 23060000 00000000 00 df8cd240 297999829
> C Bo:007:02 0 8192 > f7eb5ec0 297999899 S Bi:007:01 -115 8192 < df8cd240
> 297999954 S Bo:007:02 -115 8192 = 00000000 00000000 00000000 00000000
> 00000000 00000000 3ffffff0 20625000 f7eb5ec0 298000825 C Bi:007:01 0 9 =
> 23060000 00000000 00 df8cd240 298037847 C Bo:007:02 0 8192 > f7eb5ec0
> 298037915 S Bi:007:01 -115 8192 < df8cd240 298037975 S Bo:007:02 -115 1930 =
> 00000000 00000044 40000000 00000000 02220000 00000000 00001030 00000000
> f7eb5ec0 298038842 C Bi:007:01 0 9 = 23060000 00000000 00 df8cd240 298046804
> C Bo:007:02 0 1930 > f7eb5ec0 298046834 S Bi:007:01 -115 8192 < f7eb5ec0
> 298047840 C Bi:007:01 -2 0
>
> Sniff my program:
>
> cde0c340 416027332 S Ci:001:00 s 80 08 0000 0000 0001 1 < cde0c340 416027350
> C Ci:001:00 0 1 = 01 cde0c340 416028088 S Ci:004:00 s 80 08 0000 0000 0001 1
> < cde0c340 416029341 C Ci:004:00 0 1 = 01 cde0c340 416029441 S Ci:007:00 s
> 80 08 0000 0000 0001 1 < cde0c340 416030336 C Ci:007:00 0 1 = 01 cde0cec0
> 420587767 S Ci:001:00 s 80 06 0300 0000 0100 256 < cde0cec0 420587772 C
> Ci:001:00 0 4 = 04030904 cde0cec0 420588010 S Ci:001:00 s 80 06 0303 0409
> 0100 256 < cde0cec0 420588014 C Ci:001:00 0 57 = 38034c00 69006e00 75007800
> 20003200 2e003600 2e003100 38002d00 34002d00 cde0c3c0 420588624 S Ci:004:00
> s 80 06 0300 0000 0100 256 < cde0c3c0 420591317 C Ci:004:00 0 4 = 04030904
> cde0c3c0 420592017 S Ci:004:00 s 80 06 0301 0409 0100 256 < cde0c3c0
> 420593316 C Ci:004:00 0 50 = 06033300 4d002e03 33004d00 20004500 58002000
> 49004900 20005500 53004200 e33aba40 420642687 S Ci:007:00 s 80 06 0300 0000
> 0100 256 < e33aba40 420645317 C Ci:007:00 0 4 = 04030904 e33aba40 420649041
> S Ci:007:00 s 80 06 0301 0409 0100 256 < e33aba40 420650315 C Ci:007:00 0 10
> = 0a035300 54004100 5200 e33aba40 420652871 S Ci:007:00 s 80 06 0302 0409
> 0100 256 < e33aba40 420654315 C Ci:007:00 0 24 = 18035300 74006100 72002000
> 54005300 50003100 34003300 f7eb5ec0 420659650 S Co:007:00 s 01 0b 0000 0000
> 0000 0 f7eb5ec0 420660317 C Co:007:00 0 0 f7eb5ec0 420663332 S Bo:007:02
> -115 5 = 1b401b55 30 f7eb5ec0 420664317 C Bo:007:02 0 5 > f7eb5ec0 420670248
> S Bi:007:01 -115 64 < f7eb5ec0 420671318 C Bi:007:01 0 9 = 23060000 00000000
> 00 f7eb5ec0 420675113 S Bo:007:02 -115 7 = 1b3d011b 1e4100 f7eb5ec0
> 420675316 C Bo:007:02 0 7 > f7eb5ec0 420681094 S Bi:007:01 -115 64 <
> f7eb5ec0 420681315 C Bi:007:01 0 9 = 23060000 00000000 00 f7eb5ec0 420685515
> S Bo:007:02 -115 24 = 1b421b4d 311d2131 66736473 64660a0a 0a0a0a0a 0a0a0a0a
> f7eb5ec0 420686315 C Bo:007:02 0 24 > f7eb5ec0 420689250 S Bi:007:01 -115 64
> < f7eb5ec0 420690316 C Bi:007:01 0 9 = 23060000 00000000 00 df9c09c0
> 421751372 S Co:007:00 s 01 0b 0000 0000 0000 0 df9c09c0 421753315 C
> Co:007:00 0 0
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> javax-usb-devel mailing list
> javax-usb-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/javax-usb-devel
>
>
BEGIN:VCARD
VERSION:2.1
X-MS-SIGNATURE:YES
N:Strobl;Daniel
FN:Daniel Strobl
ORG:DaPhi Daniel Strobl & Philipp Krey GbR
TITLE;CHARSET=Windows-1252:Geschäftsleitung
TEL;WORK;VOICE:+49 (030) 2936319 - 21
ADR;WORK;PREF;CHARSET=Windows-1252:;;Boxhagener Straße 119;Berlin;;10245;Deutschland
LABEL;WORK;PREF;CHARSET=Windows-1252;ENCODING=QUOTED-PRINTABLE:Boxhagener Stra=DFe 119=0D=0A=
10245 Berlin
X-MS-OL-DEFAULT-POSTAL-ADDRESS:2
EMAIL;PREF;INTERNET:[EMAIL PROTECTED]
PHOTO;TYPE=JPEG;ENCODING=BASE64:
/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQY
GBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYa
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAAR
CAAXAEgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD6porC8Q+KLHQr2ws7lZ5bu+fZBFCoJY5A
6kgDkjvXJL45vrXx9qlpq0D2mkWlmZjEyK7rjaQ+VznO7GM45FAHpVFchP4+0y20ay1a5tb+
LTbt/LjnKIRnnqAxI6Ht2q83iywfxA2i2UVze3yRec6wKu1FwDyzMB/Ev5igDoaK8x1/4jGe
HSZfDgkG/UVtrlJovmxx8ncc56g54rpdS8Z2VjqU+mXcV1ZXot3nieeHfG4VCxIKtzgA8ZHT
HWgDodQu47GzkuJslUH3VGSxPAA9ySBWTFrxtp5YNZjW3mCrJGkIaUlTnjgZJGOSOKz9G1b/
AISHT/Dty0scqzzSSuUiMQJjDADaWYjDY7npXQzQTR286w/vZZ5DlnOAgPHT0AA4HU/UmuKp
KrKbdN2UfK99L+vVW+Z1wVOMEpq7l52trb06O/yLUMqTQpLEwaN1DKw6EHkGisLQInh1GaC2
vLi40+1iEH70qR5gxwuAPuqMH3PtRW9Cq6sOZqxjWpqnPlTubF5ZWt8ipe20FwqnIEsYcA+o
zQljaIxZLWBSU8skRgZT+79PaiitjIhXR9MW3eBdOsxA/wB6MQLtb6jGDVK28LaPb6td6jHZ
RefcxLDIpAKbVxgBeg6D8qKKANGHTrKGGOKGzto4o38xEWJQFb+8Bjg+9TSQQyuryxRu6AhW
ZQSAeuPrRRQBRvdNzFaf2b5NtJaPuhXZ+7wQQVIGOCD2qJrLUrwbL68jhgP3o7RSrN7Fycgf
QA+9FFYSw8JNt3131eptGvKKSXTyNO2t4rWBIbeNY4kGFVRgCiiitkklZGTbbuz/2Q==
X-MS-OL-DESIGN;CHARSET=utf-8:<card xmlns="http://schemas.microsoft.com/office/outlook/12/electronicbusinesscards" ver="1.0" layout="top" bgcolor="ffffff"><img xmlns="" align="tright" area="21" use="photo"/><fld xmlns="" prop="name" align="left" dir="ltr" style="b" color="000000" size="10"/><fld xmlns="" prop="title" align="left" dir="ltr" color="000000" size="7"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="org" align="left" dir="ltr" color="000000" size="8"/><fld xmlns="" prop="addrwork" align="left" dir="ltr" color="000000" size="8"/><fld xmlns="" prop="telwork" align="left" dir="ltr" color="000000" size="8"/><fld xmlns="" prop="email" align="left" dir="ltr" color="000000" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/><fld xmlns="" prop="blank" size="8"/></card>
REV:20070608T131231Z
END:VCARD
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
javax-usb-devel mailing list
javax-usb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/javax-usb-devel