|
Serial Wombat Arduino Library
|
A class for the Serial Wombat 8B or SW18AB chips which allows sending NEC IR Commands. More...
#include <SerialWombatIRTx.h>


Public Member Functions | |
| SerialWombatIRTx (SerialWombatChip &serialWombat) | |
| Constructor for the SerialWombatIRTx class. | |
| int16_t | begin (uint8_t pin, uint16_t address, uint8_t irMode=0) |
| int16_t | enableSW8b38KHzWP6 () |
| Causes pin WP6 on the Serial Wombat 8B to generate a 38kHz carrier wave. | |
| int | sendMessage (uint8_t command, int32_t address=-1, uint8_t repeat=0) |
| Write a byte to the SerialWombatIRTx for Transmit as a command using the prior specified address. | |
| virtual int | available () |
| This function exists to satisfy stream requirements, and always returns 0. | |
| virtual int | read () |
| This function exists to satisfy stream requirements, and always returns -1. | |
| virtual void | flush () |
| Discard all received bytes. Does nothing, exists to satisfy stream requirements. | |
| virtual int | peek () |
| This function exists to satisfy stream requirements, and always returns -1. | |
| virtual size_t | write (uint8_t data) |
| Write a byte to the SerialWombatIRTx for Transmit as a command using the prior specified address. | |
| virtual size_t | write (const uint8_t *buffer, size_t size) |
| Write bytes to the SerialWombatUART for Transmit. | |
| virtual int | availableForWrite () |
| Queries the SerialWombatUART for the amount of free TX queue space. | |
| virtual size_t | readBytes (char *buffer, size_t length) |
| This function exists to satisfy stream requirements, and always returns 0. | |
| virtual void | setTimeout (long timeout_mS) |
| This function exists to satisfy stream requirements. | |
Public Member Functions inherited from SerialWombatPin | |
| SerialWombatPin (SerialWombatChip &serialWombatChip) | |
| Instantiates a Serial Wombat Pin. | |
| SerialWombatPin (SerialWombatChip &serialWombatChip, uint8_t pin) | |
| Instantiates a Serial Wombat Pin. | |
| uint16_t | readPublicData () |
| Read the 16 Bit public data associated with this pin. | |
| void | pinMode (uint8_t mode, bool pullDown=false, bool openDrain=false) |
| Set pin to INPUT or OUTPUT, with options for pull Ups and open Drain settings. | |
| void | digitalWrite (uint8_t val) |
| Set output pin High or Low. | |
| int | digitalRead () |
| Reads the state of the Pin. | |
| uint16_t | writePublicData (uint16_t value) |
| Write a 16 bit value to this pin. | |
| uint8_t | pin () |
| Returns the current SW pin number. Used primarily for virtual calls by derived classes. | |
| uint8_t | swPinModeNumber () |
| Returns the Mode number. Used primarily by derived classes to populate packet data. | |
| int16_t | initPacketNoResponse (uint8_t packetNumber, uint8_t param0=0x55, uint8_t param1=0x55, uint8_t param2=0x55, uint8_t param3=0x55, uint8_t param4=0x55) |
| int16_t | initPacketNoResponse (uint8_t packetNumber, uint16_t param0=0x55, uint8_t param1=0x55, uint8_t param2=0x55, uint8_t param3=0x55) |
| int16_t | initPacketNoResponse (uint8_t packetNumber, uint16_t param0, uint16_t param1, uint8_t param2=0x55) |
| int16_t | disable () |
| Disables the pin mode (if applicable) | |
| int16_t | enablePullup (bool enabled) |
| Enables the weak pull up on a pin. Implemented on SW18AB and SW8B only. | |
| int16_t | enablePulldown (bool enabled) |
| Enables the weak pull down on a pin. Implemented on SW18AB and SW8B only. | |
| int16_t | enableOpenDrain (bool enabled) |
| Enables open drain mode on a pin. Implemented on SW18AB and SW8B only. | |
| int16_t | forceDMA (bool enabled) |
| Forces use of DMA instead of hardware timing resources on SW18AB. | |
| void | setPinNumberForTesting (uint8_t pin) |
| A function designed for testing only. May have unpredictable results if used in real time. Not intended for general use. | |
Protected Attributes | |
| uint16_t | _address |
Protected Attributes inherited from SerialWombatPin | |
| uint8_t | _pin = 255 |
| SerialWombatChip & | _sw |
| uint8_t | _pinMode = 0 |
A class for the Serial Wombat 8B or SW18AB chips which allows sending NEC IR Commands.
This class sends NEC IR commands with a 16 bit address, and optional repeats. It provides the high level protocol, but not the 38kHz carrier. The carrier needs to be combined with the high level protocol in order to transmit IR signals. This can be achieved with an AND logic chip, or by connecting an an IR LED and resistor to two pins where current flows from the protocol pin into the carrier pin.
The Serial Wombat 18AB chip can generate the carrier frequency on any enchanced digital capability pin using the SerialWombatFrequencyOutput pin mode. The Serial Wombat 8B chip can generate a 38kHz carrier on WP6 by using an internal peripheral.
This pin mode works very well witht the SerialWombat 8B REMCON PCB0041 which has the protocol pin on WP7 and the carrier pin on WP6, connected to an AND chip which feeds a transistor driven high power LED.
See the Examples in the examples area for usage.
A Tutorial video is avaialble:
The class inherits from the Arduino Sream class, so functions such as write can be used once the class is initialized.
Definition at line 62 of file SerialWombatIRTx.h.
|
inline |
Constructor for the SerialWombatIRTx class.
| serialWombat | The Serial Wombat chip on which the SerialWombatIRTx instance will run. |
Definition at line 70 of file SerialWombatIRTx.h.
|
inlinevirtual |
This function exists to satisfy stream requirements, and always returns 0.
Definition at line 135 of file SerialWombatIRTx.h.
|
inlinevirtual |
Queries the SerialWombatUART for the amount of free TX queue space.
Definition at line 209 of file SerialWombatIRTx.h.
|
inline |
@brief Initalize the SerialWombatIRTx.
| pin | The pin that will host the state machine. For the REMCON board thsi should be 7 |
| irMode | Reserved for possible future support of non NEC protocols |
Definition at line 79 of file SerialWombatIRTx.h.
|
inline |
Causes pin WP6 on the Serial Wombat 8B to generate a 38kHz carrier wave.
This can only be turned off by resetting the chip. No effect on SW18AB. Use the frequency output function on that chip.
Definition at line 96 of file SerialWombatIRTx.h.
|
inlinevirtual |
Discard all received bytes. Does nothing, exists to satisfy stream requirements.
Definition at line 150 of file SerialWombatIRTx.h.
|
inlinevirtual |
This function exists to satisfy stream requirements, and always returns -1.
Definition at line 157 of file SerialWombatIRTx.h.
|
inlinevirtual |
This function exists to satisfy stream requirements, and always returns -1.
Definition at line 143 of file SerialWombatIRTx.h.
|
inlinevirtual |
This function exists to satisfy stream requirements, and always returns 0.
Definition at line 220 of file SerialWombatIRTx.h.
|
inline |
Write a byte to the SerialWombatIRTx for Transmit as a command using the prior specified address.
| data | Byte to write |
Definition at line 108 of file SerialWombatIRTx.h.
|
inlinevirtual |
This function exists to satisfy stream requirements.
Definition at line 231 of file SerialWombatIRTx.h.
|
inlinevirtual |
Write bytes to the SerialWombatUART for Transmit.
| buffer | An array of uint8_t bytes to send |
| size | the number of bytes to send |
This function queries the SerialWombatUART for avaialble TX buffer space, and sends bytes as buffer space is avaialble. If avaialable buffer space is not sufficient to send the entire array then the function will block and continue trying until the entire message has been sent to the SerialWombatUART transmit queue.
Definition at line 190 of file SerialWombatIRTx.h.
|
inlinevirtual |
Write a byte to the SerialWombatIRTx for Transmit as a command using the prior specified address.
| data | Byte to write |
Definition at line 166 of file SerialWombatIRTx.h.
|
protected |
Definition at line 236 of file SerialWombatIRTx.h.