FabGL
ESP32 VGA Controller and Graphics Library
fabgl::PS2ControllerClass Class Reference

The PS2 device controller class. More...

#include <ps2controller.h>

Public Member Functions

void begin (gpio_num_t port0_clkGPIO, gpio_num_t port0_datGPIO, gpio_num_t port1_clkGPIO=GPIO_NUM_39, gpio_num_t port1_datGPIO=GPIO_NUM_39)
 Initialize PS2 device controller. More...
 
int dataAvailable (int PS2Port)
 Get the number of scancodes available in the controller buffer. More...
 
int getData (int PS2Port)
 Get a scancode from the queue. More...
 
void injectInRXBuffer (int value, int PS2Port)
 Inject a byte into the RX buffer. More...
 
void sendData (uint8_t data, int PS2Port)
 Send a command to the device. More...
 

Detailed Description

The PS2 device controller class.

The PS2 controller uses ULP coprocessor and RTC slow memory to communicate with up to two PS2 devices.
The ULP coprocessor continuously monitor CLK and DATA lines for incoming data. Optionally can send commands to the PS2 devices.

Member Function Documentation

◆ begin()

void fabgl::PS2ControllerClass::begin ( gpio_num_t  port0_clkGPIO,
gpio_num_t  port0_datGPIO,
gpio_num_t  port1_clkGPIO = GPIO_NUM_39,
gpio_num_t  port1_datGPIO = GPIO_NUM_39 
)

Initialize PS2 device controller.

Initializes the PS2 controller assigning GPIOs to DAT and CLK lines.

Parameters
port0_clkGPIOThe GPIO number of Clock line for PS/2 port 0.
port0_datGPIOThe GPIO number of Data line for PS/2 port 0.
port1_clkGPIOThe GPIO number of Clock line for PS/2 port 1 (GPIO_NUM_39 to disable).
port1_datGPIOThe GPIO number of Data line for PS/2 port 1 (GPIO_NUM_39 to disable).

◆ dataAvailable()

int fabgl::PS2ControllerClass::dataAvailable ( int  PS2Port)

Get the number of scancodes available in the controller buffer.

Parameters
PS2PortPS2 port number (0 = port 0, 1 = port1).
Returns
The number of scancodes available to read.

◆ getData()

int fabgl::PS2ControllerClass::getData ( int  PS2Port)

Get a scancode from the queue.

Parameters
PS2PortPS2 port number (0 = port 0, 1 = port1).
Returns
The first scancode of the queue (-1 if no data is available).

◆ injectInRXBuffer()

void fabgl::PS2ControllerClass::injectInRXBuffer ( int  value,
int  PS2Port 
)

Inject a byte into the RX buffer.

Injects a byte as if it were actually sent by the device.

Parameters
valueByte to inject.
PS2PortPS2 port number (0 = port 0, 1 = port1).

◆ sendData()

void fabgl::PS2ControllerClass::sendData ( uint8_t  data,
int  PS2Port 
)

Send a command to the device.

Parameters
dataByte to send to the PS2 device.
PS2PortPS2 port number (0 = port 0, 1 = port1).

The documentation for this class was generated from the following files: