### Navigazione

- indice
- moduli |
- successivo |
- precedente |
- pywws 13.12.dev1118 documentazione »
- Programmi Python e moduli »

# pywws.device_pyusb

Interfaccia di basso livello USB della stazione meteo tramite PyUSB.

## Introduzione

Questo modulo gestisce la comunicazione di livello basso con la stazione meteo tramite la libreria PyUSB. Un modulo alternativo utilizza la libreria, pywws.device_cython_hidapi. La scelta di quale modulo utilizzare dipende da quali librerie sono disponibili per il computer.

Gli utenti delle recenti versioni di Mac OS non hanno altra scelta. Il sistema operativo rende molto difficile accedere direttamente, ai dispositivi HID (come la stazione meteorologica) così la libreria `hidapi` deve essere usata. `cython-hidapi` è un’interfaccia Python per quella libreria.

Gli utenti di OpenWRT e simili piattaforme Linux embedded probabilmente non sono in grado di installare `cython-hidapi`, così sono costretti ad usare `libusb` e la sua interfaccia Python `PyUSB`.

## Installazione

Alcuni di questi software potrebbero essere già installati sulla vostra macchina, quindi controllare prima di scaricare i sorgenti e compilarli da te.

1. Installazione di libusb e PyUSB.

   Questi dovrebbero essere disponibili come pacchetti per sistema operativo, ma i loro nomi possono variare. Ad esempio, su Ubuntu Linux:

       sudo apt-get install libusb-0.1 python-usb

   Su alcuni sistemi embedded di linux:

       ipkg install libusb py25-usb

## Collaudo

Eseguire `TestWeatherStation.py` con un livello di dettaglio maggiore così segnala quale modulo USB di accesso al dispositivo viene usato:

    python TestWeatherStation.py -vv
    18:28:09:pywws.WeatherStation.CUSBDrive:using pywws.device_pyusb
    0000 55 aa ff ff ff ff ff ff ff ff ff ff ff ff ff ff 05 20 01 41 11 00 00 00 81 00 00 0f 05 00 e0 51
    0020 03 27 ce 27 00 00 00 00 00 00 00 12 02 14 18 27 41 23 c8 00 00 00 46 2d 2c 01 64 80 c8 00 00 00
    0040 64 00 64 80 a0 28 80 25 a0 28 80 25 03 36 00 05 6b 00 00 0a 00 f4 01 12 00 00 00 00 00 00 00 00
    0060 00 00 49 0a 63 12 05 01 7f 00 36 01 60 80 36 01 60 80 bc 00 7b 80 95 28 12 26 6c 28 25 26 c8 01
    0080 1d 02 d8 00 de 00 ff 00 ff 00 ff 00 00 11 10 06 01 29 12 02 01 19 32 11 09 09 05 18 12 01 22 13
    00a0 14 11 11 04 15 04 11 12 17 05 12 11 09 02 15 26 12 02 11 07 05 11 09 02 15 26 12 02 11 07 05 11
    00c0 09 10 09 12 12 02 02 12 38 12 02 07 19 00 11 12 16 03 27 12 02 03 11 00 11 12 16 03 27 11 12 26
    00e0 21 32 11 12 26 21 32 12 02 06 19 57 12 02 06 19 57 12 02 06 19 57 12 02 06 19 57 12 02 06 19 57

## API

Classi

`USBDevice`(idVendor, idProduct) | Basso livello di accesso al dispositivo USB tramite libreria PyUSB.

class `pywws.device_pyusb.``USBDevice`(idVendor, idProduct)

  Basso livello di accesso al dispositivo USB tramite libreria PyUSB.

  Parametri: | idVendor (int) – the USB “vendor ID” number, per esempio 0x1941. idProduct (int) – the USB “product ID” number, per esempio 0x8021.

  `read_data`(size)

    Riceve i dati dalla stazione meteo.

    Se la lettura non riesce per qualche motivo, `IOError` l’eccezione è restituita.

    Parametri: | size (int) – il numero di byte da leggere.
    Ritorna: | i dati ricevuti.
    Tipo di ritorno:
    | elenco(int)

  `write_data`(buf)

    Inviare dati al dispositivo.

    Se la lettura non riesce per qualche motivo, `IOError` l’eccezione è restituita.

    Parametri: | buf (list(int)) – i dati da inviare.
    Ritorna: | eseguito con successo.
    Tipo di ritorno:
    | bool

### Navigazione

- indice
- moduli |
- successivo |
- precedente |
- pywws 13.12.dev1118 documentazione »
- Programmi Python e moduli »