### Navigation

- index
- modules |
- suivant |
- précédent |
- documentation pywws 13.09_r1069 »
- Programmes et des modules Python »

# pywws.device_ctypes_hidapi

Interface USB de bas niveau de la station météo, utilisant ctype pour accéder hidapi.

## Introduction

Ce module gère la communication de bas niveau avec la station météo via la bibliothèque ctypes et la librairie hidapi . Les modules alternatifs, pywws.device_cython_hidapi and pywws.device_pyusb, utilisent différentes bibliothèques. Le choix du module à utiliser dépend de la disponibilité des bibliothèques selon votre ordinateur.

Les utilisateurs de versions récentes de Mac OS n’ont ont moins de choix. Le système d’exploitation rend très difficile l’accès direct aux périphériques HID (comme la station météo), de sorte que la bibliothèque `hidapi` doit être utilisée.

Les utilisateurs de OpenWRT et plateformes embarquées Linux similaires ne seront probablement pas en mesure d’installer `ctypes` ou `cython-hidapi` et sont donc contraints d’utiliser `libusb` et son interface Python `PyUSB`.

## Installation

Certains de ces logiciels peuvent être déjà installés sur votre machine, il faut vérifier avant de télécharger les sources et les compiler vous-même.

1. Installation de hidapi.

   Créez une copie locale du dépôt git, placez vous dans ce nouveau répertoire, puis suivez les instructions du fichier `README.txt`:

       git clone https://github.com/signal11/hidapi.git
       cd hidapi
       more README.txt

2. Installation ctypes.

   Ceux-ci devraient être disponibles sous forme de paquets pour votre système d’exploitation. Par exemple:

       sudo zypper install python-ctypes

## Vérification

Exécute `TestWeatherStation.py` avec un niveau de message accru de sorte qu’il indique quel module d’accès au dispositif USB est utilisé:

    python TestWeatherStation.py -vv
    18:10:27:pywws.WeatherStation.CUSBDrive:using pywws.device_ctypes_hidapi
    0000 55 aa ff ff ff ff ff ff ff ff ff ff ff ff ff ff 05 20 01 51 11 00 00 00 81 00 00 07 01 00 d0 56
    0020 61 1c 61 1c 00 00 00 00 00 00 00 12 02 14 18 09 41 23 c8 00 32 80 47 2d 2c 01 2c 81 5e 01 1e 80
    0040 a0 00 c8 80 a0 28 80 25 a0 28 80 25 03 36 00 05 6b 00 00 0a 00 f4 01 18 00 00 00 00 00 00 00 00
    0060 00 00 54 1c 63 0a 2f 01 71 00 7a 01 59 80 7a 01 59 80 e4 00 f5 ff 69 54 00 00 fe ff 00 00 b3 01
    0080 0c 02 d0 ff d3 ff 5a 24 d2 24 dc 17 00 11 09 06 15 40 10 03 07 22 18 10 08 11 08 30 11 03 07 12
    00a0 36 08 07 24 17 17 11 02 28 10 10 09 06 30 14 29 12 02 11 06 57 09 06 30 14 29 12 02 11 06 57 08
    00c0 08 31 14 30 12 02 14 18 04 12 02 01 10 12 11 09 13 17 19 11 08 21 16 53 11 09 13 17 19 12 01 18
    00e0 07 17 10 02 22 11 06 11 11 06 13 12 11 11 06 13 12 11 11 10 11 38 11 11 10 11 38 10 02 22 14 43

## API

Fonctions

`find_library`(name) |

Classes

`USBDevice`(vendor_id, product_id) | Accès de bas niveau au périphérique USB via la bibliothèque hidapi.

class `pywws.device_ctypes_hidapi.``USBDevice`(vendor_id, product_id)

  Accès de bas niveau au périphérique USB via la bibliothèque hidapi.

  Paramètres: | idVendor (int) – the USB “vendor ID” number, for example 0x1941. idProduct (int) – the USB “product ID” number, for example 0x8021.

  `read_data`(size)

    Reçoit des données de l’appareil.

    Si la lecture échoue pour une raison quelconque, une exception `IOError` est levée.

    Paramètres: | size (int) – the number of bytes to read.
    Retourne: | the data received.
    Type retourné: | list(int)

  `write_data`(buf)

    Envoyer donnée au service

    Paramètres: | buf (list(int)) – the data to send.
    Retourne: | success status.
    Type retourné: | bool

### Navigation

- index
- modules |
- suivant |
- précédent |
- documentation pywws 13.09_r1069 »
- Programmes et des modules Python »