Roland Smith a écrit :
On Mon, Nov 23, 2009 at 02:57:27PM +0100, Olivier GARNIER wrote:
Hi,

I have an usb weather station (oregon wmr100).
It's an usb device only.
I want to be able to get data from it (T°, H°, wind, ...)
This machine probably only comes with windoze software? If you don't know the
protocol for data exchange used between the hard- and software it might be
difficult getting it to work on FreeBSD.
I've found some internet site witch speak about it. I've asked oregon, but they do not want to talk about it...
There seems to be a Linux program (WeatherD) that works with this
station. Maybe you can get that to work? Or you could try running the windows
softere under emulators/wine.
Yes, but i want to get back data and put it in a postgresql database, and i found no way to use it as i want.
I tried to use libusb to make a c software but it seems not to work (exemple witch are in /usr/ports/devel/libusb/work/...test/ do not work).
Can you elaborate a bit? This is too little info for anyone to help you.
If you plug the device in, do you see an ugen device being created? What does
dmesg report?
When I plug in and out the device that's what i see :
uhid0: <vendor 0x0fde Universal Bridge, class 0/0, rev 1.10/3.02, addr 2> on uhub0
uhid0: at uhub0 port 1 (addr 2) disconnected
uhid0: detached

# pkg_info | grep libusb
libusb-0.1.12_4     Library giving userland programs access to USB devices

# cd /usr/ports/devel/libusb/work/libusb-0.1.12/tests
#  ./descriptor_test
bus/device  idVendor/idProduct
# ./find_hubs
Class/SubClass/Protocol
#  ./find_mice
idVendor/idProduct/bcdDevice
# ./get_resolution
idVendor/idProduct/bcdDevice
# ./hub_strings
Class/SubClass/Protocol
#./id_test
bus/device  idVendor/idProduct/bcdDevice  Class/SubClass/Protocol
# ./testlibusb

As it does not work i tried this i named test.c :
#include <usb.h>
// discover devices
libusb_device **list;
libusb_device *found = NULL;
ssize_t cnt = libusb_get_device_list(NULL, &list);
ssize_t i = 0;
int err = 0;
if (cnt < 0)
 error();
for (i = 0; i < cnt; i++) {
 libusb_device *device = list[i];
 if (is_interesting(device)) {
   found = device;
   break;
 }
}
if (found) {
 libusb_device_handle *handle;
 err = libusb_open(found, &handle);
 if (err)
   error();
}
libusb_free_device_list(list, 1);

But it seems not to work
# make
gcc -g -Wall -c test.c
test.c:4: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token test.c:5: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
test.c:6: warning: implicit declaration of function 'libusb_get_device_list'
test.c:6: error: 'list' undeclared here (not in a function)
test.c:6: error: initializer element is not constant
test.c:9: error: expected identifier or '(' before 'if'
test.c:12: error: expected identifier or '(' before 'for'
test.c:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token test.c:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '++' token
test.c:20: error: expected identifier or '(' before 'if'
test.c:29: error: expected ')' before numeric constant
*** Error code 1


As it always not work, i look after something else.
I found this http://www.castro.aus.net/~maurice/usb/panic/panicbutton.tar.gz
When i modifie it a little this is what it give me :
# ./wmr100
-device: Trouve le device cherche : IDVendeur FDE, IDProduit : CA01, IDNom : Universal Bridge
-device: uhid0

so i know i can find the device (i expect i can also speak with it)
I don't know how i can use libusb ....


I've seen what's written on /usr/ports/UPDATING (20090309) so i reinstall libusb
The note you reference only affected what was then CURRENT, i.e. what is now
8.0-PRERELEASE. It shouldn't bother people on 7.x.

But it since doesn't work. libusb will not work with FreeBSD 7.0 ?
It works.

Roland

Thanks you,

Olivier


_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[email protected]"

Reply via email to