NAME

RPi::Serial - Basic read/write interface to a serial port

SYNOPSIS

    use RPi::Serial;

    my $dev  = "/dev/ttyAMA0";
    my $baud = 115200;
    
    my $ser = RPi::Serial->new($dev, $baud);

    $ser->putc(5);
    $ser->puts("hello, world!");

    my $char = $ser->getc;

    my $num_bytes = 12;
    my $str  = $ser->gets($num_bytes);

    $ser->flush;

    my $bytes_available = $ser->avail;

    $ser->close;

DESCRIPTION

Provides basic read and write functionality on the Raspberry Pi's GPIO serial interface (GPIO pins 14 and 15).

WARNING

In order to use GPIO pins 14 and 15 as a serial interface on the Raspberry Pi, you need to disable the built-in Bluetooth adaptor. This distribution will not operate correctly without this being done.

To disable Bluetooth on the Pi, edit the /boot/config.txt, and add the following line:

    dtoverlay=pi3-disable-bt-overlay

Save the file, then reboot the Pi.

METHODS

new($device, $baud);

Opens the specified serial port at the specified baud rate, and returns a new RPi::Serial object.

Parameters:

    $device

Mandatory, String: The serial device to open (eg: "/dev/ttyAMA0".

    $baud

Mandatory, Integer: A valud baud rate to use.

close

Closes an already open serial device.

avail

Returns the number of bytes waiting to be read if any.

flush

Flush any data currently in the serial buffer.

fd

Returns the ioctl file descriptor for the current serial object.

getc

Retrieve a single character from the serial port.

gets($num_bytes)

Read a specified number of bytes into a string.

Parameters:

    $num_bytes

Mandatory, Integer; The number of bytes to read. If this number is larger than what is available to be read, a 10 second timeout will briefly hand your application.

putc($char)

Writes a single character to the serial device.

Parameters:

    $char

Mandatory, Unsigned Char: The character to write to the port.

puts($string)

Write a character string to the serial device.

Parameters:

    $string

Mandatory, String: Whatever you want to write to the serial line.

AUTHOR

Steve Bertrand, <steveb at cpan.org>

LICENSE AND COPYRIGHT

Copyright 2018 Steve Bertrand.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.