COSA
An Object-Oriented Platform for Arduino Programming
Core

Cosa core data structures, support classes and run-time abstractions.

Types

Common data types and syntax abstractions.

Activity

Issue a function periodically within a given time frame.

Alarm

Issue a function at a specific time. The alarm may be reissued.

AnalogComparator

Compare input values on the positive pin AIN0 and negative pin AIN1 or ADCn (class AnalogComparator).

AnalogPin

Abstract analog pin (class AnalogPin). Allows asynchronous sampling.

AnalogPins

Abstract analog pin set (class AnalogPins). Allow sampling of a set of pins with interrupt or event handler when completed.

BCD

Simple two digit BCD convertion functions.

Bits

Bit mask, set and field access macro set.

BitSet

Bitset handling.

EEPROM

Driver for the ATmega/ATtiny internal EEPROM and abstraction of EEPROM devices.

Event

Event data structure with type, source and value (class Event).

ExternalInterruptPin

Abstract external interrupt pin (class ExternalInterruptPin). Allows interrupt handling on the pin value changes.

FixedPoint

Simple class for fixed point number representation (class FixedPoint)

Flash

Abstract interface for SPI Flash Memory.

FS

Abstract interface for File Systems.

FSM

Finite State Machine support class. States are represented as an Event handler. Supports timeout events and period timed state machines.

InputPin

Abstract input pin (class InputPin). Allows pullup mode.

IOPin

Abstract pin that may switch between input and output pin (class IOPin).

Interrupt

Interface for Interrupt Handlers.

LED

LED support class; background alert and normal blink.

Linkage

The Cosa collection handling class; double linked circulic list.

Listener

Template class for event listener.

Lock

Synchronized block handling class.

Memory

Memory utility.

Math

Mathematical support functions.

Note

Tone generation support definitions.

OutputPin

Abstract output pin (class OutputPin).

Periodic

Periodic function handler. Syntactic sugar for watchdog timeout event handlers (class Periodic).

Pin

Arduino pins abstractions (Pin); abstract, input, output, interrupt and analog pin. Captures the mapping from Arduino to processor pins. Forces declarative programming of pins in sketches.

PinChangeInterrupt

Abstract interrupt pin (class PinChangeInterrupt). Allows interrupt handling on the pin value changes.

Power

Power Management and Sleep modes.

PWMPin

Abstract pulse width modulation pin (class PWMPin).

Queue

Template class for ring-buffer for queueing data elements.

Resource

Abstract Resource Handler; secure acquire and release of resources.

RTT

Real-Time Timer (micro/milli-second).

Serial

Abstract Serial IOStream device class.

Servo

Simple Servo motor driver (Timer/OutputPin).

Socket

Abstract network interface. Implemented by W5100 (SPI) device driver.

SPI

The Serial Peripheral Interface (SPI) device driver support class.

String

String handling class.

Time

Common date/time structure for real-time clocks.

Tone

Tone/Note generator.

Trace

Program trace and system log support functions and macros.

TWI

The I2C/TWI device driver support class (Two Wire Interface, TWI).

Watchdog

The Atmega Watchdog is used as a low power timer for period events and delay.

Wireless

Abstract interface for wireless devices.