Apparaat :: Davis

Device :: Davis is een perl-extensie voor het communiceren met Davis-weerstations.
Download nu

Apparaat :: Davis Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Stan Sander
  • Uitgever website:
  • http://search.cpan.org/~stsander/Device-Davis-1.2.3/Davis.pm

Apparaat :: Davis Tags


Apparaat :: Davis Beschrijving

Device :: Davis is een Perl-uitbreiding voor de communicatie met Davis weerstations. Inrichting :: Davis is een Perl uitbreiding voor communicatie met Davis weer stations.SYNOPSIS gebruik Inrichting :: Davis; $ Fd = station_open ($ tty); put_string ($ fd, "$ string"); $ Char = get_char ($ fd); $ CRC = crc_accum ($ crc, $ data_byte); put_unsigned ($ fd, $ num), Davis is een Perl 5-module die de communicatie vergemakkelijkt met Davis weerstations. Deze module kan werken op de meeste Unix systemen, maar het werd ontwikkeld Linux.station_open () is van TTY waarbij de zender is aangesloten als argument en opent het TTY de juiste parameters voor communicatie. De baud rate die wordt gebruikt overeenkomt met de fabrieksinstellingen van de Vantage Pro, dat is 19200. Als u nodig hebt om een andere baud rate te gebruiken, moet u de Davis.xs bestand te wijzigen voordat het opstellen van de module.put_string () neemt een bestand descriptor (niet een perl filehandle) en de string te sturen als argumenten en stuurt de string naar het weerstation. Deze functie wordt het aantal bytes written.get_char (terug) draait bestandindicator als argument en retuns 1 byte weer station.crc_accum () een accumulator voor CRC berekening. Het neemt de vorige waarde van de CRC hij heeft opgebouwd ($ CRC) en de nieuwe data byte die moet worden toegevoegd aan de geaccumuleerde totaal. Zorg ervoor dat u $ crc initialiseren op 0 voordat u een nieuwe set gegevens bytes. De functie zal de nieuwe geaccumuleerde CRC-waarde terug te keren. Zodra je pas in de CRC-waarde ontvangen van de weerstation, moet u de functie weer een 0 als de CRC-controle doorstaan. Als je commando's sturen naar het station, moet de laatste waarde die wordt geretourneerd door de functie zijn wat u sturen naar het station als de CRC-waarde. Merk op dat het station verwacht dat de meest significante byte van de CRC eerste om te worden verzonden, dat is het tegenovergestelde van hoe reguliere data waarden worden sent.put_unsigned () is voor het verzenden van numerieke waarden naar het station. Het neemt de file descriptor en het karakter te sturen als argumenten. Het maakt het argument verzenden als één byte unsigned karakter. Het zal het aantal bytes written.EXAMPLES $ bytes = put_string terug ($ fd, "n"); $ Bytes = put_string ($ fd, "TESTn"); Het lezen van de resultaten van een LOOP 1 aanvraag: $ CRC = 0; while ($ index <100) {$ data = get_char ($ fd); de eerste byte geretourneerd door de zender in een loop 1 pakket een ack (0x06) en mag niet worden opgenomen in de crc if ($ index) {$ crc = crc_accum ($ crc $ data );}; $ data = sprintf ( "x" "$ data "); # converteren naar hex $ index ++; }; op dit punt de waarde van $ crc moet 0 als er geen transmissiefouten en u kunt doorgaan met het verwerken van de packetsending een opdracht of andere waarde die naar het station: we willen de waarde te berekenen voor de crc door het draaien van elke byte zullen we door crc_accum send () $ crc = crc_accum ($ crc 0xc6); $ crc = crc_accum ($ crc 0xce); $ crc = crc_accum ($ crc 0xa2); $ crc = crc_accum ($ crc 0x03); zeg laten we op dit punt dat de waarde van $ crc is e2b4 als we het verzenden van een commando naar het weerstation moeten we sturen e2b4 (meest significante byte eerst) naar het station $ msbyte = $ crc>> 8; # Voor ons voorbeeld gelijken E2 put_unsigned ($ fd, $ msbyte); $ Lsbyte = $ CRC> 24; # Voor ons voorbeeld gelijk b4 put_unsigned ($ fd, $ lsbyte); Vereisten: · Perl Vereisten: · Perl


Apparaat :: Davis Gerelateerde software