From: Dobrica Pavlinusic Date: Fri, 6 Aug 2010 22:18:03 +0000 (+0200) Subject: move usbreset.c to examples and include it in pod X-Git-Tag: RFID-Biblio-0.02~32 X-Git-Url: http://git.rot13.org/?p=Biblio-RFID.git;a=commitdiff_plain;h=7f804f9d96f40c9e9edc9e48e52b8b164ca99df2 move usbreset.c to examples and include it in pod --- diff --git a/docs/usbreset.c b/docs/usbreset.c deleted file mode 100644 index 03d1787..0000000 --- a/docs/usbreset.c +++ /dev/null @@ -1,76 +0,0 @@ -/* usbreset -- send a USB port reset to a USB device */ - -/* - -http://marc.info/?l=linux-usb-users&m=116827193506484&w=2 - -and needs mounted usbfs filesystem - - sudo mount -t usbfs none /proc/bus/usb - -There is a way to suspend a USB device. In order to use it, -you must have a kernel with CONFIG_PM_SYSFS_DEPRECATED turned on. To -suspend a device, do (as root): - - echo -n 2 >/sys/bus/usb/devices/.../power/state - -where the "..." is the ID for your device. To unsuspend, do the same -thing but with a "0" instead of the "2" above. - -Note that this mechanism is slated to be removed from the kernel within -the next year. Hopefully some other mechanism will take its place. - -> To reset a -> device? - -Here's a program to do it. You invoke it as either - - usbreset /proc/bus/usb/BBB/DDD -or - usbreset /dev/usbB.D - -depending on how your system is set up, where BBB and DDD are the bus and -device address numbers. - -Alan Stern - -*/ - -#include -#include -#include -#include -#include - -#include - - -int main(int argc, char **argv) -{ - const char *filename; - int fd; - int rc; - - if (argc != 2) { - fprintf(stderr, "Usage: usbreset device-filename\n"); - return 1; - } - filename = argv[1]; - - fd = open(filename, O_WRONLY); - if (fd < 0) { - perror("Error opening output file"); - return 1; - } - - printf("Resetting USB device %s\n", filename); - rc = ioctl(fd, USBDEVFS_RESET, 0); - if (rc < 0) { - perror("Error in ioctl"); - return 1; - } - printf("Reset successful\n"); - - close(fd); - return 0; -} diff --git a/examples/usbreset.c b/examples/usbreset.c new file mode 100644 index 0000000..03d1787 --- /dev/null +++ b/examples/usbreset.c @@ -0,0 +1,76 @@ +/* usbreset -- send a USB port reset to a USB device */ + +/* + +http://marc.info/?l=linux-usb-users&m=116827193506484&w=2 + +and needs mounted usbfs filesystem + + sudo mount -t usbfs none /proc/bus/usb + +There is a way to suspend a USB device. In order to use it, +you must have a kernel with CONFIG_PM_SYSFS_DEPRECATED turned on. To +suspend a device, do (as root): + + echo -n 2 >/sys/bus/usb/devices/.../power/state + +where the "..." is the ID for your device. To unsuspend, do the same +thing but with a "0" instead of the "2" above. + +Note that this mechanism is slated to be removed from the kernel within +the next year. Hopefully some other mechanism will take its place. + +> To reset a +> device? + +Here's a program to do it. You invoke it as either + + usbreset /proc/bus/usb/BBB/DDD +or + usbreset /dev/usbB.D + +depending on how your system is set up, where BBB and DDD are the bus and +device address numbers. + +Alan Stern + +*/ + +#include +#include +#include +#include +#include + +#include + + +int main(int argc, char **argv) +{ + const char *filename; + int fd; + int rc; + + if (argc != 2) { + fprintf(stderr, "Usage: usbreset device-filename\n"); + return 1; + } + filename = argv[1]; + + fd = open(filename, O_WRONLY); + if (fd < 0) { + perror("Error opening output file"); + return 1; + } + + printf("Resetting USB device %s\n", filename); + rc = ioctl(fd, USBDEVFS_RESET, 0); + if (rc < 0) { + perror("Error in ioctl"); + return 1; + } + printf("Reset successful\n"); + + close(fd); + return 0; +} diff --git a/lib/RFID/Biblio/Reader/librfid.pm b/lib/RFID/Biblio/Reader/librfid.pm index 2077ca8..57ba7c4 100644 --- a/lib/RFID/Biblio/Reader/librfid.pm +++ b/lib/RFID/Biblio/Reader/librfid.pm @@ -18,13 +18,18 @@ This is wrapper around C from L -Due to limitation of C only C and -C is supported. +Due to limitation of L only +L and +L is supported. However, this code might provide template for integration with any command-line utilities for different RFID readers. -Currently tested with only with Omnikey CardMan 5321 +Currently tested with only with Omnikey CardMan 5321 which +has problems. After a while it stops responding to commands +by C so I provided small C program to reset it: + +C =cut