 |
Serial Wombat Arduino Library
|
Go to the documentation of this file. 1 #ifndef SERIAL_WOMBAT_H__
2 #define SERIAL_WOMBAT_H__
4 #include "HardwareSerial.h"
18 #define ERROR_HOST_INCORRECT_NUMBER_BYTES_WRITTEN 0x10000
19 #define ERROR_HOST_DATA_TOO_LONG 0x10001
20 #define ERROR_HOST_NACK_ADDRESS 0x10002
21 #define ERROR_HOST_NACK_DATA 0x10003
22 #define ERROR_HOST_OTHER_I2C_ERROR 0x10004
24 #define WOMBAT_MAXIMUM_PINS 19
83 void begin(HardwareSerial &serial);
95 void begin(HardwareSerial& serial,
bool reset);
105 void begin(TwoWire &wire, uint8_t i2cAddress);
114 void begin(uint8_t i2cAddress);
127 void begin(TwoWire& wire, uint8_t i2cAddress,
bool reset);
196 void pinMode(uint8_t pin, uint8_t mode);
205 void pinMode(uint8_t pin, uint8_t mode,
bool pullDown,
bool openDrain);
369 char version[8] = { 0 };
370 HardwareSerial * Serial = NULL;
371 TwoWire* i2cInterface = NULL;
375 bool _asleep =
false;
376 void configureDigitalPin(uint8_t pin, uint8_t highLow);
377 unsigned long sendReadyTime = 0;
379 void readUniqueIdentifier();
380 void readDeviceIdentifier();
385 #define SW_LE16(_a) (uint8_t)(_a & 0xFF), (uint8_t)(_a >>8)
int analogRead(uint8_t pin)
Configures pin as analog input and does an immediate A/D conversion.
Definition: SerialWombat.cpp:272
void hardwareReset()
Send a reset command to the Serial Wombat chip.
Definition: SerialWombat.cpp:230
void analogWrite(uint8_t pin, int val)
Set a pin to PWM output.
Definition: SerialWombat.cpp:280
@ CMD_SET_PIN_MODE4
Definition: SerialWombat.h:41
@ PIN_MODE_ANALOGINPUT
Definition: SerialWombat.h:54
uint16_t readPublicData(uint8_t pin)
Read the 16 Bit public data associated with a Serial Wombat Pin Mode.
Definition: SerialWombat.cpp:411
@ CMD_SUPPLYVOLTAGE
Definition: SerialWombat.h:34
uint32_t errorNum
The last error number reported.
Definition: SerialWombat.h:363
@ CMD_VERSION
Definition: SerialWombat.h:33
int digitalRead(uint8_t pin)
Reads the state of a Pin.
Definition: SerialWombat.cpp:260
void digitalWrite(uint8_t pin, uint8_t val)
Set an output pin High or Low.
Definition: SerialWombat.cpp:254
SerialWombatPinMode_t
Definition: SerialWombat.h:51
uint8_t readRamAddress(uint16_t address)
Read Address from RAM based on 16 bit address.
Definition: SerialWombat.cpp:332
void wake()
Called to send a dummy packet to the Serial Wombat chip to wake it from sleep and ready it for other ...
Definition: SerialWombat.cpp:361
int sendPacket(uint8_t tx[], uint8_t rx[])
Send an 8 byte packet to the Serial Wombat chip and wait for 8 bytes back.
Definition: SerialWombat.cpp:107
uint32_t errorCount
Incremented every time a communication or command error is detected.
Definition: SerialWombat.h:360
uint8_t model[4]
Contains the last model retreived by queryVersion() as a zero-terminated string.
Definition: SerialWombat.h:349
@ PIN_MODE_WATCHDOG
Definition: SerialWombat.h:57
@ PIN_MODE_CONTROLLED
Definition: SerialWombat.h:53
uint16_t writePublicData(uint8_t pin, uint16_t value)
Write a 16 bit value to a Serial Wombat pin Mode.
Definition: SerialWombat.cpp:419
uint16_t _supplyVoltagemV
Definition: SerialWombat.h:346
@ PIN_MODE_PWM
Definition: SerialWombat.h:59
@ CMD_SET_PIN_MODE3
Definition: SerialWombat.h:40
@ PIN_MODE_SERVO
Definition: SerialWombat.h:55
uint16_t readOverflowFrames()
Get the number of times an overflow Frame has occured.
Definition: SerialWombat.cpp:321
@ CMD_READ_BUFFER_ASCII
Definition: SerialWombat.h:28
@ PIN_MODE_PULSETIMER
Definition: SerialWombat.h:61
@ SW_HIGH
Definition: SerialWombat.h:14
@ CMD_SET_PIN_MODE8
Definition: SerialWombat.h:45
@ CMD_SET_PIN_MODE9
Definition: SerialWombat.h:46
@ CMD_SET_PIN_MODE1
Definition: SerialWombat.h:38
uint16_t readSupplyVoltage_mV(void)
Measure the Serial Wombat chip's Supply voltage.
Definition: SerialWombat.cpp:222
uint16_t deviceIdentifier
Definition: SerialWombat.h:357
uint8_t uniqueIdentifier[16]
Definition: SerialWombat.h:354
@ CMD_SET_PIN_MODE2
Definition: SerialWombat.h:39
#define WOMBAT_MAXIMUM_PINS
Definition: SerialWombat.h:24
@ CMD_ASCII_SET_PIN
Definition: SerialWombat.h:29
char * readVersion(void)
Request version string (combined model and firmware) and return pointer to it.
Definition: SerialWombat.cpp:212
@ PIN_MODE_UNKNOWN
Definition: SerialWombat.h:62
@ CMD_SET_PIN_MODE0
Definition: SerialWombat.h:37
uint32_t readFlashAddress(uint32_t address)
Read Address from Flash based on 32 bit address.
Definition: SerialWombat.cpp:346
@ CMD_SET_BUFFER_ASCII
Definition: SerialWombat.h:31
SerialWombatCommand_t
Definition: SerialWombat.h:25
@ CMD_SETBUFFERBINARY
Definition: SerialWombat.h:36
SerialWombatPinState_t
Definition: SerialWombat.h:11
@ CMD_READBUFFERBINARY
Definition: SerialWombat.h:35
@ CMD_RESYNC
Definition: SerialWombat.h:32
@ SW_INPUT
Definition: SerialWombat.h:15
Definition: SerialWombat.h:72
@ SW_LOW
Definition: SerialWombat.h:13
void sleep()
Shuts down most functions of the Serial Wombat chip reducing power consumption.
Definition: SerialWombat.cpp:354
void writeRamAddress(uint16_t address, uint8_t value)
Write byte to Address in RAM based on 16 bit address.
Definition: SerialWombat.cpp:340
@ CMD_RESET
Definition: SerialWombat.h:30
@ CMD_SET_PIN_MODE7
Definition: SerialWombat.h:44
@ PIN_MODE_QUADRATUREENCODER
Definition: SerialWombat.h:56
@ CMD_SET_PIN_MODE5
Definition: SerialWombat.h:42
void jumpToBoot()
Jump to Bootloader and wait for a UART download of new firmware.
Definition: SerialWombat.cpp:326
~SerialWombat()
Definition: SerialWombat.cpp:13
@ PIN_MODE_PROTECTED_OUTPUT
Definition: SerialWombat.h:58
void pinMode(uint8_t pin, uint8_t mode)
Set a pin to INPUT or OUTPUT.
Definition: SerialWombat.cpp:237
SerialWombat()
Definition: SerialWombat.cpp:7
uint16_t deviceRevision
Definition: SerialWombat.h:358
@ PIN_MODE_DIGITALIO
Definition: SerialWombat.h:52
uint8_t uniqueIdentifierLength
Definition: SerialWombat.h:355
@ CMD_ECHO
Definition: SerialWombat.h:27
@ CMD_SET_PIN_MODE6
Definition: SerialWombat.h:43
bool queryVersion()
Send a version request to the Serial Wombat chip.
Definition: SerialWombat.cpp:292
uint32_t readFramesExecuted()
Get the number of 1mS frames that have been executed since Serial Wombat chip reset.
Definition: SerialWombat.cpp:312
@ PIN_MODE_UART_RX_TX
Definition: SerialWombat.h:60
void begin(HardwareSerial &serial)
initialize a Serial Wombat chip to use a Serial Interface.
Definition: SerialWombat.cpp:18
uint8_t fwVersion[4]
Contains the last firmware Version retreived by queryVersion() as a zero-terminated string.
Definition: SerialWombat.h:352