WMR200: que faut-il pour develloper le plugin ?

Une question, un bug ?
Répondre
hubione
Membre
Messages : 33
Inscription : dim. mars 09, 2008 9:26 pm

Re: WMR200: que faut-il pour develloper le plugin ?

Message par hubione »

je veux bien m'y coller, mais l'interface HID, j'ai rien trouvé de transcendant pour y accéder, t'as pas un bout de code en stock?
si j'avais au moins les primitives get/send sur un "port" hid, ca irait, mais là, google veut pas m'aider.

Hub
lesommer35
Membre
Messages : 86
Inscription : mer. janv. 03, 2007 3:10 pm
Localisation : Montauban de Bretagne (35)
Contact :

Re: WMR200: que faut-il pour develloper le plugin ?

Message par lesommer35 »

Cela faisait un moment que je n'étais pas revenu sur le forum.
J'ai une WMR100 depuis 1 an 1/2 et j'ai du bidouiller quelque chose pour me passer de Virtual Weather Station et utiliser GraphWeather. J'avais franchement abandonné l'espoir d'avoir un jour un plugin GW pour ma station.
Mais avec ces 2 pages : http://www.dg1sfj.de/hardware/hw_wmr100_protokoll.html et http://www.lvr.com/hidpage.htm, cela me redonne espoir.
Une question, quelle est l'API des plugins ? Certes, je ne suis pas encore là et je vais d'abord m'assurer que je décode bien toutes les infos de la station mais c'est juste pour anticiper.
La météo à Montauban de Bretagne (35) : http://lesommer.free.fr/meteo/
Station Oregon Scientific WMR 100
Avatar de l’utilisateur
TiToine
Site Admin
Messages : 3356
Inscription : lun. mars 20, 2006 11:16 am
Localisation : Montréal
Contact :

Re: WMR200: que faut-il pour develloper le plugin ?

Message par TiToine »

lesommer35 a écrit :Cela faisait un moment que je n'étais pas revenu sur le forum.
J'ai une WMR100 depuis 1 an 1/2 et j'ai du bidouiller quelque chose pour me passer de Virtual Weather Station et utiliser GraphWeather. J'avais franchement abandonné l'espoir d'avoir un jour un plugin GW pour ma station.
Mais avec ces 2 pages : http://www.dg1sfj.de/hardware/hw_wmr100_protokoll.html et http://www.lvr.com/hidpage.htm, cela me redonne espoir.
Une question, quelle est l'API des plugins ? Certes, je ne suis pas encore là et je vais d'abord m'assurer que je décode bien toutes les infos de la station mais c'est juste pour anticiper.
Pour les plugins, il y a juste une interface à implémenter en C++, une dizaine de méthode en tout.

class CInterface
{
public:
CInterface(){};
virtual ~CInterface(void){};

virtual LPCSTR GetPluginInfo()=0;
virtual void SetCalibration(const CCalibration& Calibration)=0;
virtual BOOL SetSources(LPCSTR Sources)=0;
virtual void SetAltitude(float Altitude)=0;
virtual BOOL GetRange(ULONG& FirstTimestamp,ULONG& LastTimestamp)=0;
virtual BOOL GetRecords(ULONG Start,ULONG Stop,DATA* pData)=0;
virtual BOOL GetLastRecord(DATA* pData)=0;
virtual void DisplayOptions()=0;
virtual LPCSTR GetLastErrorDesc()=0;
virtual DWORD GetLastErrorCode()=0;
virtual DWORD GetPluginType()=0;
virtual void GetBaseProbes(BOOL* pBaseProbes)=0;

};
hubione
Membre
Messages : 33
Inscription : dim. mars 09, 2008 9:26 pm

Re: WMR200: que faut-il pour develloper le plugin ?

Message par hubione »

pour la WMR100, c'est plus facile je pense, c'est un port série.

la WMR200, c'est effectivement du HID, avec de la programmation évènementielle que je n'ai jamais fait, donc ca va être chaud pour moi. Faut juste que je me plonge vraiment.
Je vais essayer aussi de contacter le gars de WD pour lui demander s'il peut m'aider.

Hub
lesommer35
Membre
Messages : 86
Inscription : mer. janv. 03, 2007 3:10 pm
Localisation : Montauban de Bretagne (35)
Contact :

Re: WMR200: que faut-il pour develloper le plugin ?

Message par lesommer35 »

La WMR100 c'est aussi du HID.
J'ai commencé quelque chose et ça marche plutôt bien 8)
La météo à Montauban de Bretagne (35) : http://lesommer.free.fr/meteo/
Station Oregon Scientific WMR 100
hubione
Membre
Messages : 33
Inscription : dim. mars 09, 2008 9:26 pm

Re: WMR200: que faut-il pour develloper le plugin ?

Message par hubione »

ah bon, c'est de l'USB?
alors ca m'interesse beaucoup ton affaire, le protocole des 2 modèles semble très proche.
Si tu as un truc que tu souhaites me faire tester, n'hésite pas.

hub très interessé
lesommer35
Membre
Messages : 86
Inscription : mer. janv. 03, 2007 3:10 pm
Localisation : Montauban de Bretagne (35)
Contact :

Re: WMR200: que faut-il pour develloper le plugin ?

Message par lesommer35 »

Alors, j'avance doucement.
J'arrive à lire le port USB et j'obtiens les messages décrits <<ICI>>
Par contre, j'ai quelques soucis. J'ai des valeurs parasites qui viennent s'intercaler sans que je sache pourquoi et donc 1 fois sur 2 je n'arrive pas à décoder les messages correctement.
La météo à Montauban de Bretagne (35) : http://lesommer.free.fr/meteo/
Station Oregon Scientific WMR 100
windspots
Membre
Messages : 36
Inscription : lun. mars 31, 2008 9:56 pm

Re: WMR200: que faut-il pour develloper le plugin ?

Message par windspots »

Bonsoir,

Je suis le développeur de http://www.windspots.com et nous souhaitons utiliser la WMR200.
J'ai donc commencé le développement d'un driver... pour Unix.
Mais le protocole étant le même, je pense que nous pourrions partager nos expériences.

Je suis parti du postulat que la WMR200 ressemblait à la WMR100 mais ca n'a pas l'air d'être le cas. Pour le moment je tatonne avec le protocole.

Il semblerait qu'il faille envoyé une séquence d'initialisation
20 00 08 01 00 00 00 00
Puis des séquence "je suis prêt à recevoir"
(j'ai oublié la séquence sur mon bureau je la poste demain :lol: )

Ensuite on obtient des données du style
D7 10 1B 11 1F 03 08 (?température?)

E9 00 1f 3C 00 00 81 02 D6 0D 1B 11 (?barometre?)

08 00 E9 00 1F 3C 00 00 82 02 D3 10 (?vent?)

Voila ou j'en suis pour ce soir.

Au plaisir de vous lire
windspots
Membre
Messages : 36
Inscription : lun. mars 31, 2008 9:56 pm

Re: WMR200: que faut-il pour develloper le plugin ?

Message par windspots »

La séquence "prêt à recevoir":
21 09 00 02 00 00 08 00
lesommer35
Membre
Messages : 86
Inscription : mer. janv. 03, 2007 3:10 pm
Localisation : Montauban de Bretagne (35)
Contact :

Re: WMR200: que faut-il pour develloper le plugin ?

Message par lesommer35 »

@windspots
Merci pour ces infos, je vais tester tout cela
La météo à Montauban de Bretagne (35) : http://lesommer.free.fr/meteo/
Station Oregon Scientific WMR 100
hubione
Membre
Messages : 33
Inscription : dim. mars 09, 2008 9:26 pm

Re: WMR200: que faut-il pour develloper le plugin ?

Message par hubione »

est-ce que le code source du "driver" USB est diponible? j'aimerais participer, mais je n'ai pas été foutu de coder ne serait-ce qu'un petit bout de code qui accède à ce port.

Avec usbsnoop, j'ai capturé le dialogue entre la WMR et WD.

Hub
windspots
Membre
Messages : 36
Inscription : lun. mars 31, 2008 9:56 pm

Re: WMR200: que faut-il pour develloper le plugin ?

Message par windspots »

Je n'ai pas encore d'exemple qui fonctionne :cry:

mais pour devenir developpeur USB:
http://www.usb.org/developers/devclass_docs/Hut1_11.pdf
http://www.usb.org/developers/devclass_docs/HID1_11.pdf

http://www.lvr.com/hidpage.htm

Et pour la WMR200:
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0fde
idProduct 0xca01
bcdDevice 3.02
iManufacturer 0
iProduct 1 Universal Bridge
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 34
Report Descriptor: (length is 34)
Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
(null)
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Report Count, data= [ 0x08 ] 8
Item(Main ): Input, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage, data= [ 0x02 ] 2
(null)
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Report Count, data= [ 0x08 ] 8
Item(Main ): Output, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 1


Bienvenue 8)
windspots
Membre
Messages : 36
Inscription : lun. mars 31, 2008 9:56 pm

Re: WMR200: que faut-il pour develloper le plugin ?

Message par windspots »

Voici ce que j'ai trouvé pour ce soir (-> a émettre, <- données recues):

CLASS INTERFACE 20 00 08 01 00 00 00 00 ->
CONTROL TRANSFER 21 09 00 02 00 00 08 00 ->
Puis des boucles:
CLASS INTERFACE 01 D0 08 01 00 00 00 00 ->
CONTROL TRANSFER 21 09 00 02 00 00 08 00 ->
18 x INTERRUPT TRANSFER <-
windspots
Membre
Messages : 36
Inscription : lun. mars 31, 2008 9:56 pm

Re: WMR200: que faut-il pour develloper le plugin ?

Message par windspots »

J'ai enfin terminé une version pour linux qui "log" 20 données.

http://www.sdic.ch/public/downloads/wmr200.zip

La seule "chose" que j'ai trouvé c'est la date:
06 10 2e 0b 02 04 08 d3
TT CC MM HH DD MM YY XX
ce qui signifie
02/04/2008 11:46
Répondre