Something.
authorviric@mandarina
Fri, 21 Nov 2008 23:22:59 +0100
changeset 0 bd9387ece36f
child 1 fdce143cc82c
Something.
Makefile
bus
pce.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile	Fri Nov 21 23:22:59 2008 +0100
@@ -0,0 +1,2 @@
+pce: pce.c
+	gcc -g -o pce -lusb pce.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bus	Fri Nov 21 23:22:59 2008 +0100
@@ -0,0 +1,92 @@
+f7ad70c0 2039193527 C Ii:001:01 0 1 = 04
+f7ad70c0 2039193540 S Ii:001:01 -115 2 <
+e904ebc0 2039193563 S Ci:001:00 s a3 00 0000 0002 0004 4 <
+e904ebc0 2039193568 C Ci:001:00 0 4 = 01010100
+e904ebc0 2039193570 S Co:001:00 s 23 01 0010 0002 0000 0
+e904ebc0 2039193573 C Co:001:00 0 0
+e904ebc0 2039193575 S Ci:001:00 s a3 00 0000 0002 0004 4 <
+e904ebc0 2039193579 C Ci:001:00 0 4 = 01010000
+e904ebc0 2039225347 S Ci:001:00 s a3 00 0000 0002 0004 4 <
+e904ebc0 2039225354 C Ci:001:00 0 4 = 01010000
+e904ebc0 2039257348 S Ci:001:00 s a3 00 0000 0002 0004 4 <
+e904ebc0 2039257356 C Ci:001:00 0 4 = 01010000
+e904ebc0 2039289351 S Ci:001:00 s a3 00 0000 0002 0004 4 <
+e904ebc0 2039289358 C Ci:001:00 0 4 = 01010000
+e904ebc0 2039321355 S Ci:001:00 s a3 00 0000 0002 0004 4 <
+e904ebc0 2039321363 C Ci:001:00 0 4 = 01010000
+e904ebc0 2039321377 S Co:001:00 s 23 03 0004 0002 0000 0
+e904ebc0 2039321380 C Co:001:00 0 0
+e904ebc0 2039377356 S Ci:001:00 s a3 00 0000 0002 0004 4 <
+e904ebc0 2039377377 C Ci:001:00 0 4 = 03010000
+e904ebc0 2039433360 S Co:001:00 s 23 01 0014 0002 0000 0
+e904ebc0 2039433365 C Co:001:00 0 0
+e904ebc0 2039433383 S Ci:000:00 s 80 06 0100 0000 0040 64 <
+e904ebc0 2039438500 C Ci:000:00 0 18 = 12010002 00000040 c4100300 00000000 0001
+e904ebc0 2039438517 S Co:001:00 s 23 03 0004 0002 0000 0
+e904ebc0 2039438523 C Co:001:00 0 0
+f7ad70c0 2039445363 C Ii:001:01 0 1 = 04
+f7ad70c0 2039445368 S Ii:001:01 -115 2 <
+e904ebc0 2039493365 S Ci:001:00 s a3 00 0000 0002 0004 4 <
+e904ebc0 2039493386 C Ci:001:00 0 4 = 03010000
+e904ebc0 2039549366 S Co:001:00 s 23 01 0014 0002 0000 0
+e904ebc0 2039549372 C Co:001:00 0 0
+e904ebc0 2039549377 S Co:000:00 s 00 05 0006 0000 0000 0
+e904ebc0 2039551496 C Co:000:00 0 0
+e904ebc0 2039569368 S Ci:006:00 s 80 06 0100 0000 0012 18 <
+e904ebc0 2039573485 C Ci:006:00 0 18 = 12010002 00000040 c4100300 00000000 0001
+e904ebc0 2039573503 S Ci:006:00 s 80 06 0600 0000 000a 10 <
+e904ebc0 2039577481 C Ci:006:00 -75 10 = 09022000 01010080 0f09
+e904ebc0 2039577500 S Ci:006:00 s 80 06 0200 0000 0009 9 <
+e904ebc0 2039582481 C Ci:006:00 0 9 = 09022000 01010080 0f
+e904ebc0 2039582496 S Ci:006:00 s 80 06 0200 0000 0020 32 <
+e904ebc0 2039588478 C Ci:006:00 0 32 = 09022000 01010080 0f090400 00020000 00000705 81024000 05070502 02400005
+e904eac0 2039588598 S Co:006:00 s 00 09 0001 0000 0000 0
+e904eac0 2039590485 C Co:006:00 0 0
+e904e9c0 2039590657 S Ci:001:00 s a3 00 0000 0002 0004 4 <
+e904e9c0 2039590665 C Ci:001:00 0 4 = 03010000
+e904e0c0 2049800679 S Ci:006:00 s 80 06 0100 0000 0012 18 <
+e904e0c0 2049802830 C Ci:006:00 0 18 = 12010002 00000040 c4100300 00000000 0001
+e904e0c0 2049802914 S Ci:006:00 s 80 06 0200 0000 0009 9 <
+e904e0c0 2049804824 C Ci:006:00 0 9 = 09022000 01010080 0f
+e904e0c0 2049804886 S Ci:006:00 s 80 06 0200 0000 0020 32 <
+e904e0c0 2049807825 C Ci:006:00 0 32 = 09022000 01010080 0f090400 00020000 00000705 81024000 05070502 02400005
+e54a6c40 2100487509 S Ci:006:00 s 80 06 0100 0000 0040 64 <
+e54a6c40 2100490630 C Ci:006:00 0 18 = 12010002 00000040 c4100300 00000000 0001
+e54a6c40 2100566826 S Ci:006:00 s 80 06 0100 0000 0012 18 <
+e54a6c40 2100568628 C Ci:006:00 0 18 = 12010002 00000040 c4100300 00000000 0001
+e54a6c40 2100573957 S Ci:006:00 s 80 06 0200 0000 0009 9 <
+e54a6c40 2100575627 C Ci:006:00 0 9 = 09022000 01010080 0f
+e54a6c40 2100581016 S Ci:006:00 s 80 06 0200 0000 00ff 255 <
+e54a6c40 2100584614 C Ci:006:00 0 32 = 09022000 01010080 0f090400 00020000 00000705 81024000 05070502 02400005
+e54a6c40 2100589650 S Ci:006:00 s 80 06 0600 0000 000a 10 <
+e54a6c40 2100592612 C Ci:006:00 -75 10 = e4fe7d80 edd39400 401c
+e54a6c40 2100607900 S Ci:006:00 s 80 06 0100 0000 0012 18 <
+e54a6c40 2100610608 C Ci:006:00 0 18 = 12010002 00000040 c4100300 00000000 0001
+e54a6c40 2100615019 S Ci:006:00 s 80 06 0200 0000 0009 9 <
+e54a6c40 2100616617 C Ci:006:00 0 9 = 09022000 01010080 0f
+e54a6c40 2100622062 S Ci:006:00 s 80 06 0200 0000 0020 32 <
+e54a6c40 2100624618 C Ci:006:00 0 32 = 09022000 01010080 0f090400 00020000 00000705 81024000 05070502 02400005
+e54a66c0 2151122131 S Bo:006:02 -115 3 = 001001
+e54a66c0 2151123474 C Bo:006:02 0 3 >
+e54a66c0 2151125266 S Bi:006:01 -115 3 <
+e54a66c0 2151140478 C Bi:006:01 0 3 = 02e414
+e54a66c0 2151144219 S Bi:006:01 -115 64 <
+e54a66c0 2151147438 C Bi:006:01 0 64 = d2000000 d0070000 39050000 3c000000 d8070000 00000000 0000f041 0b15001c
+e54a66c0 2151158696 S Bo:006:02 -115 3 = 000040
+e54a66c0 2151159494 C Bo:006:02 0 3 >
+e54a66c0 2151161679 S Bi:006:01 -115 3 <
+e54a66c0 2151162482 C Bi:006:01 0 3 = 020000
+e54a66c0 2151164769 S Bi:006:01 -115 4096 <
+e54a66c0 2152192274 C Bi:006:01 0 4096 = d8004902 da002f02 d7002d02 d4002f02 d1003402 ce003802 cc003c02 ca003c02
+e54a66c0 2152196169 S Bo:006:02 -115 3 = 000114
+e54a66c0 2152197268 C Bo:006:02 0 3 >
+e54a66c0 2152202282 S Bi:006:01 -115 3 <
+e54a66c0 2152203268 C Bi:006:01 0 3 = 020000
+e54a66c0 2152206040 S Bi:006:01 -115 1280 <
+e54a66c0 2152572205 C Bi:006:01 0 1280 = e3000102 e3000102 e3000102 e3000102 e3000102 e2000102 e2000102 e2000102
+c809af40 2455856264 S Bo:006:02 -115 3 = 014000
+c809af40 2455858152 C Bo:006:02 0 3 >
+c809af40 2455861029 S Bo:006:02 -115 64 = ce000000 d0070000 00000000 3c000000 d8070000 00000000 0000f041 0b151629
+c809af40 2455861145 C Bo:006:02 0 64 >
+c809af40 2455865010 S Bi:006:01 -115 1 <
+c809af40 2455872151 C Bi:006:01 0 1 = ff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pce.c	Fri Nov 21 23:22:59 2008 +0100
@@ -0,0 +1,71 @@
+#include <usb.h>
+#include <stdio.h>
+#include <assert.h>
+
+const int vendor=0x10c4;
+const int product=0x0003;
+
+usb_dev_handle *handle;
+struct usb_device *device;
+
+int connect()
+{
+    struct usb_bus *bus;
+    bus = usb_get_busses();
+
+    while (bus != 0)
+    {
+        struct usb_device *dev;
+        dev = bus->devices;
+        while(dev != 0)
+        {
+            if (dev->descriptor.idVendor == vendor
+                && dev->descriptor.idProduct == product)
+            {
+                handle = usb_open(dev);
+                device = dev;
+                return 0;
+            }
+            dev = dev->next;
+        }
+        bus = bus->next;
+    }
+
+    handle = 0;
+    return -1;
+}
+
+int main()
+{
+    int res;
+
+    usb_init();
+
+    usb_find_busses();
+    usb_find_devices();
+    
+    connect();
+    if (handle == 0)
+    {
+        fprintf(stderr, "Cannot find the PCE-HT71\n");
+        return -1;
+    }
+
+    res = usb_set_configuration(handle,
+        device->config->bConfigurationValue);
+    assert(res == 0 && "set_configuration");
+
+    res = usb_claim_interface(handle,
+        device->config->interface->altsetting->bInterfaceNumber);
+    assert(res == 0 && "claim_interface");
+
+    res = usb_control_msg(handle, 128, 6, 0x100, 0, "hola", 64, 1000);
+    assert(res == 0 && "control_msg");
+
+    res = usb_release_interface(handle,
+        device->config->interface->altsetting->bInterfaceNumber);
+    assert(res == 0 && "release_interface");
+    usb_close(handle);
+    handle = 0;
+    return 0;
+}