Error message:
Code: Select all
Compiling code for RA_PLUS board
Number of Relay Expansion Modules: 1
Relay Expansion Module
Dimming Expansion Module
Dimming Signal
Wifi Attachment
DC Pump Control (Jebao/Tunze)
2014 Main Screen
Extra Font - Medium Size (8x8 pixels)
Multi Channel Water Level Expansion Module
RANet framework
Standard Menu
Standard Menu
Standard Menu
Standard Menu
In file included from firmware.ino:2:0:
D:\Arduino\libraries\Globals/Globals.h:367:8: error: 'SoftwareSerial' does not name a type
static SoftwareSerial RANetSerial(RANetRXPin,RANetTXPin);
^
exit status 1
Progress: 41.38%
Your code has some errors and couldn't be compiled.
Please fix the errors above and try again.
Code: Select all
#include <ReefAngel_Features.h>
#include <Globals.h>
#include <RA_Wifi.h>
#include <Wire.h>
#include <OneWire.h>
#include <Time.h>
#include <DS1307RTC.h>
#include <InternalEEPROM.h>
#include <RA_NokiaLCD.h>
#include <RA_ATO.h>
#include <RA_Joystick.h>
#include <LED.h>
#include <RA_TempSensor.h>
#include <Relay.h>
#include <RA_PWM.h>
#include <Timer.h>
#include <Memory.h>
#include <InternalEEPROM.h>
#include <RA_Colors.h>
#include <RA_CustomColors.h>
#include <Salinity.h>
#include <RF.h>
#include <IO.h>
#include <ORP.h>
#include <AI.h>
#include <PH.h>
#include <WaterLevel.h>
#include <Humidity.h>
#include <DCPump.h>
#include <PAR.h>
#include <ReefAngel.h>
////// Place global variable code below here
#define FONT_8x8
#define FONT_8x16
////// Place global variable code below here
//*************************************************************
// Define relay box ports
// Relay Box #1
#define FugeLight Box0_Port1
#define Skimmer Box0_Port2
#define SumpLight Box0_Port3
#define NA2 Box0_Port4
#define ReturnPump Box0_Port5
#define Heater Box0_Port6
#define CalDoser Box0_Port7
#define AlkDoser Box0_Port8
// Relay Box #2
#define PowerHead1 Box1_Port1
#define ActinicLED Box1_Port2
#define PowerHead2 Box1_Port3
#define Kessil_A Box1_Port4
#define Kessil_B Box1_Port5
#define Kessil_C Box1_Port6
#define NA3 Box1_Port7
#define Fans Box1_Port8
////// Place global variable code above here
void setup() {
// This must be the first line
ReefAngel.Init(); //Initialize controller
ReefAngel.AddStandardMenu(); // Add Standard Menu
ReefAngel.Use2014Screen(); // Let's use 2014 Screen
ReefAngel.AddMultiChannelWaterLevelExpansion(); // Multi-Channel Water Level Expanion Module
ReefAngel.AddRANet(); // RANet Add-On Module
// Ports toggled in Feeding Mode
ReefAngel.FeedingModePorts = Port2Bit | Port5Bit | Port7Bit | Port8Bit;
ReefAngel.FeedingModePortsE[0] = Port1Bit | Port3Bit;
// Ports toggled in Water Change Mode
ReefAngel.WaterChangePorts = Port2Bit | Port5Bit | Port7Bit | Port8Bit;
ReefAngel.WaterChangePortsE[0] = Port1Bit | Port3Bit;
// Ports turned off when Overheat temperature exceeded
ReefAngel.OverheatShutoffPorts = Port2Bit;
ReefAngel.OverheatShutoffPortsE[0] = Port2Bit | Port4Bit | Port5Bit | Port6Bit;
// Ports toggled when Lights On / Off menu entry selected
ReefAngel.LightsOnPorts = 0;
ReefAngel.LightsOnPortsE[0] = Port2Bit | Port4Bit | Port5Bit | Port6Bit;
// Use T1 probe as temperature and overheat functions
ReefAngel.TempProbe = T1_PROBE;
ReefAngel.OverheatProbe = T1_PROBE;
// Set the Overheat temperature setting
InternalMemory.OverheatTemp_write(828);
// Feeeding and Water Change mode speed
ReefAngel.DCPump.FeedingSpeed=0;
ReefAngel.DCPump.WaterChangeSpeed=0;
// Ports that are always on
ReefAngel.Relay.On(Skimmer);
ReefAngel.Relay.On(ReturnPump);
ReefAngel.Relay.On(PowerHead1);
ReefAngel.Relay.On(PowerHead2);
////// Place additional initialization code below here
// Process IO Functions
// processIoModule();
////// Place additional initialization code above here
}
void loop() {
ReefAngel.Relay.DelayedOn(Skimmer, 1);
ReefAngel.ActinicLights(ActinicLED);
ReefAngel.DayLights(Kessil_A);
ReefAngel.DayLights(Kessil_B);
ReefAngel.DayLights(Kessil_C);
ReefAngel.StandardHeater1(Heater);
// Set up dosing pumps
ReefAngel.DosingPumpRepeat1(CalDoser);
ReefAngel.DosingPumpRepeat2(AlkDoser);
if (daylightsOn()) {
// Always run the fans when the Daylights are on to vent the canopy
ReefAngel.Relay.On(Fans);
ReefAngel.Relay.Off(FugeLight);
ReefAngel.PWM.SetChannel(1,0);
ReefAngel.PWM.SetChannel(2,0);
ReefAngel.PWM.SetChannel(3,0);
} else {
ReefAngel.StandardFan(Fans);
ReefAngel.Relay.On(FugeLight);
ReefAngel.PWM.SetChannel(1,MoonPhase());
ReefAngel.PWM.SetChannel(2,MoonPhase());
ReefAngel.PWM.SetChannel(3,MoonPhase());
}
ReefAngel.DCPump.UseMemory = true;
ReefAngel.DCPump.ExpansionChannel[5] = Sync;
ReefAngel.DCPump.ExpansionChannel[4] = AntiSync;
ReefAngel.DCPump.DaylightChannel = Sync;
ReefAngel.DCPump.ActinicChannel = AntiSync;
if (ReefAngel.DisplayedMenu != FEEDING_MODE || ReefAngel.DisplayedMenu != WATERCHANGE_MODE) {
if (!daylightsOn()) { // Night mode - lower the flow
ReefAngel.DCPump.UseMemory = false;
ReefAngel.DCPump.SetMode(ReefCrest,45,10);
}
else if (now()%2*SECS_PER_HOUR<5*60) { // Run NutrientTransport mode every two hours for 5 minutes
ReefAngel.DCPump.UseMemory = false;
ReefAngel.DCPump.SetMode(NutrientTransport,90,30);
}
else {
ReefAngel.DCPump.UseMemory = true;
}
}
////// Place your custom code below here
////// Place your custom code above here
ReefAngel.Portal("Piper");
// This should always be the last line
ReefAngel.ShowInterface();
}
// *****************************************************************************
// * Utility Functions
// *****************************************************************************
boolean lightsAreOn () {
return actinicsOn() || daylightsOn();
}
boolean actinicsOn () {
return ReefAngel.Relay.Status(ActinicLED);
}
boolean daylightsOn () {
return ReefAngel.Relay.Status(Kessil_A);
}