MICROPROCESSORS MUST DO THE FOLLOWING:
run robotSetup() once at the beginning
run robotLoop() every loop

MICROPROCESSORS MUST DEFINE THE FOLLOWING FUNCTIONS:

setDO(pin, newState)
setPWM(pin, duty)
readDI(pin)
readAI(pin)

setPinMode(int pin, int mode)

robotPrintSetup(baud)
robotPrint(toPrint)
robotPrintln(toPrint)


// Set the PWM Frequency for the given pin
// Will return the frequency achieved, or -1 if arguments are invalid
int setPWMFrequency(int pin, long frequency)
{
}

long getPWMFrequency(int pin)
{
}

getPinType(pinIndex)
getProtocol(pinIndex)
getControllerPin(pinIndex)

THE FOLLOWING TAGS WILL BE USEFUL FOR THE ABOVE
int controllerPins[] = @controllerPins;
int pinTypes[] = @pinTypes;
int protocol[] = @pinProtocols;