void setup()
{
	delay(1000);
	Serial.begin(38400);
	sysStatus = sysBootTest();

	if (!((sysStatus==SYS_STATUS_NO_CLIMATE) || (sysStatus==SYS_STATUS_NO_SENSORS)))
	{
		climateSensor.settings.commInterface = I2C_MODE;
		climateSensor.settings.I2CAddress = 0x76;
		climateSensor.settings.runMode = 3;
		climateSensor.settings.tStandby = 5;
		climateSensor.settings.filter = 0;
		climateSensor.settings.tempOverSample = 1;
		climateSensor.settings.pressOverSample = 1;
		climateSensor.settings.humidOverSample = 1;
		climateSensor.begin();
	}

	if (!((sysStatus==SYS_STATUS_NO_ALS) || (sysStatus==SYS_STATUS_NO_SENSORS)))
	{
		alsSensor.alsConf(0x4C);
		alsSensor.psConf(0x0E, 0x08, 0, 0x07);
		alsSensor.ps();
		alsSensor.lux();
	}

	Timer1.initialize(400);
	Timer1.attachInterrupt(sysTaskTimer);
	Timer1.pwm(LEDPIN, 0);

	sysLoadSettings();
	if (sensorPsCalibrated) {
		alsSensor.psSetCanc(psCal);
		ps=alsSensor.ps();
		lux=alsSensor.lux();
	}
	cmdMessenger.printLfCr();
	attachCommandCallbacks();
	cmdMessenger.sendCmd(kRStatus,sysStatus);
}
/*
  Set up all inputs/outputs
*/
void Msg::init()
{
  //cmdMessenger;

  // Begin serial communication at high speed 115200 bit/s
  Serial.begin(115200); 
  
  // Adds newline to every command
  cmdMessenger2.printLfCr();   

  // Attach my application's user-defined callback methods
  attachCommandCallbacks();

  // Let the serial listener know that the Arduino has started
  cmdMessenger2.sendCmd(kStatus,"Arduino has started!");

  // Send logs to Raspberry every 500ms
  MsgTimer.every(500, Msg::sendLog);

  // Start the loop timer
  loop_time = micros();
}