Issues I've seen in the current Dev Library.

Related to the development libraries, released by Curt Binder
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Issues I've seen in the current Dev Library.

Post by lnevo »

Just to add that would mean 30 should get mapped to 0 and 31 would then be like 1 or 2% and so forth.. So you'd never spend an excessive duration at 0. For Gyre / Sine it does spend more time on the lowend before it slopes up and so you shouldn't see it sitting at 0 for so long.
AlanM
Posts: 263
Joined: Wed Jan 01, 2014 7:26 am

Re: Issues I've seen in the current Dev Library.

Post by AlanM »

I don't actually want threshold to do that with the map. I want it to be able to cope with 0 values and just skip over the values between 0 and the threshold in some intelligent way. If you map threshold from 30-100 then the pumps never shut off at all.

0 is a perfectly valid value for the Tunze and Jebao pumps, and it is needed to give a good slosh back and forth in nutrient transport, for instance, but you'd never get a zero if you run Threshold that way.

Here is what I was going to do to fix the thing for Gyre:

Lines 305-306 in ReefAngel.cpp:

change from

Code: Select all

SyncSpeed=GyreMode(0,DCPump.Speed,DCPump.Duration,true);
AntiSyncSpeed=GyreMode(0,DCPump.Speed,DCPump.Duration,false);
to

Code: Select all

SyncSpeed=GyreMode(DCPump.Threshold,DCPump.Speed,DCPump.Duration,true);
AntiSyncSpeed=GyreMode(DCPump.Threshold,DCPump.Speed,DCPump.Duration,false);
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: Issues I've seen in the current Dev Library.

Post by Sacohen »

I've installed Lee's Threshold Libraries and set Gyre to be the only option in my Random wave modes, so we'll see what happens when it kicks into the random mode at noon.
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Issues I've seen in the current Dev Library.

Post by lnevo »

Thanks Steve
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Issues I've seen in the current Dev Library.

Post by lnevo »

AlanM wrote:I don't actually want threshold to do that with the map. I want it to be able to cope with 0 values and just skip over the values between 0 and the threshold in some intelligent way. If you map threshold from 30-100 then the pumps never shut off at all.

0 is a perfectly valid value for the Tunze and Jebao pumps, and it is needed to give a good slosh back and forth in nutrient transport, for instance, but you'd never get a zero if you run Threshold that way.

Here is what I was going to do to fix the thing for Gyre:

Lines 305-306 in ReefAngel.cpp:

change from

Code: Select all

SyncSpeed=GyreMode(0,DCPump.Speed,DCPump.Duration,true);
AntiSyncSpeed=GyreMode(0,DCPump.Speed,DCPump.Duration,false);
to

Code: Select all

SyncSpeed=GyreMode(DCPump.Threshold,DCPump.Speed,DCPump.Duration,true);
AntiSyncSpeed=GyreMode(DCPump.Threshold,DCPump.Speed,DCPump.Duration,false);
I would still use the map but maybe if the value is passed as 0 to then go to 0. How does that sound? THis way 1% is the threshold value? but 0 is always 0?

The problem with the above is that in Gyre mode you always still have the anti-sync pump running at the threshold value which is not what I think you want in a Gyre...
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Issues I've seen in the current Dev Library.

Post by lnevo »

Just updated the branch. 0 will now always be 0. anything else will be mapped from 1-100 to 30-100
AlanM
Posts: 263
Joined: Wed Jan 01, 2014 7:26 am

Re: Issues I've seen in the current Dev Library.

Post by AlanM »

lnevo wrote:I would still use the map but maybe if the value is passed as 0 to then go to 0. How does that sound? THis way 1% is the threshold value? but 0 is always 0?
That sounds OK, actually, for the Threshold. Kind of a nice solution to it.
lnevo wrote: The problem with the above is that in Gyre mode you always still have the anti-sync pump running at the threshold value which is not what I think you want in a Gyre...
Nope, it doesn't work that way. The sync mode not ramping up or down is set to 0.

From Globals.cpp:

Code: Select all

if (y > 0) { // call positive the sync channel
// now compute the tunze speed
y*=double(PulseMaxSpeed-PulseMinSpeed);
y+=double(PulseMinSpeed);
y+=0.5; // for proper rounding
if (PulseSync) return constrain(byte(y),0,100);
if (!PulseSync) return 0;
} else { // call negative the antisync channel
y*=-1; // switch sign
// now compute the tunze speed
y*=double(PulseMaxSpeed-PulseMinSpeed);
y+=double(PulseMinSpeed);
y+=0.5; // for proper rounding
if (!PulseSync) return constrain(byte(y),0,100);
if (PulseSync) return 0;
}
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: Issues I've seen in the current Dev Library.

Post by rimai »

May I give my suggestion?
I like the way lnevo is going with this. The part I just came to realize is that the threshold should actually be part of the PWM class and not DCPump Class.
This is the reason behind it.
Some drivers or LED fixtures have the same problem as the DCPumps. They just cut off at a low percentage. If the threshold were part of the PWM class, everyone would benefit from it, instead of only the DCPumps.
Meanwell ELN drivers, a few of the Chinese LED fixtures and even Kessil fixtures, just don't accept signal past a certain level.
So, if you set the threshold of for example 30%, the voltage would travel from 3V to 10V, but people would still be able to set 0-100% where 0% would indeed have to be down to 0%, but 1% would be something like 3.1V.
Thoughts?
Roberto.
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Issues I've seen in the current Dev Library.

Post by lnevo »

Well that was if we left the PumpThreshold alone :P

I updated my branch now, I think that the behavior will be better now.

The code looks like this now:

Code: Select all

    if (value > 0)
        return map(value,1,100,threshold,100);
    else
        return 0;
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Issues I've seen in the current Dev Library.

Post by lnevo »

rimai wrote:May I give my suggestion?
I like the way lnevo is going with this. The part I just came to realize is that the threshold should actually be part of the PWM class and not DCPump Class.
This is the reason behind it.
Some drivers or LED fixtures have the same problem as the DCPumps. They just cut off at a low percentage. If the threshold were part of the PWM class, everyone would benefit from it, instead of only the DCPumps.
Meanwell ELN drivers, a few of the Chinese LED fixtures and even Kessil fixtures, just don't accept signal past a certain level.
So, if you set the threshold of for example 30%, the voltage would travel from 3V to 10V, but people would still be able to set 0-100% where 0% would indeed have to be down to 0%, but 1% would be something like 3.1V.
Thoughts?
Completely agree. Right now it's not in DCPump class either though. It's in the ReefAngel function that writes the value. We could still add the same to PWM. The issue too is this.. right now we have threshold which is a global threshold for the DCPump class regardless of channel...

We need a per channel threshold based on where you're going. Each channel needs its own separate. I've actually been thinking of this for the AntiSyncOffset too so that the offset is based on the channel not the state of the pump. For instance in my code i switch which pump is the sync and antisync on a regular basis. If I had two different pumps that I was trying to even out with the offset then it would be switching that value back and forth. So essentially Offset and Thresholds need to be on a per channel basis IMO.
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: Issues I've seen in the current Dev Library.

Post by Sacohen »

I agree with making it available to the PWM class as well ,
I like the idea of having the threshold on a per channel basis.

I didn't catch the beginning of the Gyre Mode at noon, but when I looked at it at 12:07 I noticed that the speed was at 64% when I have the Speed on the Portal set to 50%.
I did catch the switch from one pump to the other and it started at 30%.

Side note.
I'm noticing that my moonlights are still on and they seem to be following the percentage of the Daylight channel again.

This is all looking at the Portal and app. I'm at work so I can't actually see the tank right now.
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Issues I've seen in the current Dev Library.

Post by lnevo »

The higher speed may be a result of the mapping... hmm... so maybe we should just use a constrain rather than map?

This way it would be 30-100 = 30-100 and less than 30 would be 30, but 0 would be 0... how does that sound.

No idea why your moonlight channels are following the pumps again, that fix hasn't changed and is in place in this branch...
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Issues I've seen in the current Dev Library.

Post by lnevo »

Steve, from your values, it does not look like your moonlights (channel 5) are following the dcpumps...

Maybe just the coincidence at that timeframe?

http://forum.reefangel.com/status/chart ... ilter=pwmd
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Issues I've seen in the current Dev Library.

Post by lnevo »

It looks like the slope was crossing right through the dcpump speeds at that time, but I think you're good...
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Issues I've seen in the current Dev Library.

Post by lnevo »

Ok. I've changed it to constrain and also changed the Gyre range as Alan posted.

So now the Gyre range will go from DCPump.Threshold -> DCPump.Speed and anything less than Threshold will be Threshold except 0 = 0.

Please try it. :)
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: Issues I've seen in the current Dev Library.

Post by Sacohen »

lnevo wrote:It looks like the slope was crossing right through the dcpump speeds at that time, but I think you're good...
Sorry it was. I forgot that the moonlights go off at 1pm when the daylights come on.
Your branch has the updated code.
I'll download it and try it.
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: Issues I've seen in the current Dev Library.

Post by Sacohen »

I got error complining with the same code I've been using.

In file included from C:\Users\Steve\Documents\Arduino\libraries\ReefAngel\ReefAngel.cpp:22:
C:\Users\Steve\Documents\Arduino\libraries\Globals/Globals.h:32:17: warning: SPI.h: No such file or directory
C:\Users\Steve\Documents\Arduino\libraries\Globals/Globals.h:34:22: warning: Ethernet.h: No such file or directory
C:\Users\Steve\Documents\Arduino\libraries\Globals/Globals.h:35:26: warning: EthernetDHCP.h: No such file or directory
C:\Users\Steve\Documents\Arduino\libraries\Globals/Globals.h:36:28: warning: SoftwareSerial.h: No such file or directory
In file included from C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/Plus/instance.h:17,
from C:\Users\Steve\Documents\Arduino\libraries\ReefAngel\ReefAngel.cpp:36:
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:466:24: warning: extra tokens at end of #endif directive
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel\ReefAngel.cpp:465:30: warning: extra tokens at end of #ifdef directive
In file included from C:\Users\Steve\Documents\Arduino\libraries\ReefAngel\ReefAngel.cpp:22:
C:\Users\Steve\Documents\Arduino\libraries\Globals/Globals.h:110: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\Globals/Globals.h:111: warning: only initialized variables can be placed into program memory area
In file included from C:\Users\Steve\Documents\Arduino\libraries\ReefAngel\/ReefAngel.h:47,
from C:\Users\Steve\Documents\Arduino\libraries\ReefAngel\ReefAngel.cpp:25:
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:31: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:32: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:33: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:34: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:35: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:36: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:37: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:38: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:39: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:40: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:41: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:42: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:43: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:44: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:45: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:46: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:47: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:48: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:49: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:50: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:51: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:54: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:55: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:56: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:57: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:58: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:65: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:66: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:73: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:74: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:85: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:86: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:87: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:88: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:89: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:92: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:93: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:154: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:155: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:158: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:159: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:160: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:161: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:162: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:163: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:164: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:165: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:166: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:167: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:168: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:169: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:171: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:172: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:173: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:174: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:177: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:178: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:179: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:180: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:181: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:182: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:183: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:184: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:185: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:186: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:187: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:188: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:189: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:190: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:191: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:192: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:193: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:196: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:197: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:203: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:209: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:218: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:219: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:220: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:221: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:224: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:259: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:294: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:295: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:296: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:297: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:298: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:299: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:300: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:301: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:302: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:303: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:304: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:305: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:306: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:307: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:308: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:309: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:310: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:311: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:312: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:313: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:314: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:315: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:316: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:317: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:320: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:321: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:322: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:323: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:327: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:353: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:369: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:381: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:382: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:383: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\RA_Wifi/RA_Wifi.h:384: warning: only initialized variables can be placed into program memory area
In file included from C:\Users\Steve\Documents\Arduino\libraries\ReefAngel\/ReefAngel.h:59,
from C:\Users\Steve\Documents\Arduino\libraries\ReefAngel\ReefAngel.cpp:25:
C:\Users\Steve\Documents\Arduino\libraries\WaterLevel/WaterLevel.h: In member function 'byte WaterLevelClass::SetLevel(byte, int)':
C:\Users\Steve\Documents\Arduino\libraries\WaterLevel/WaterLevel.h:37: warning: no return statement in function returning non-void
In file included from C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/Plus/instance.h:17,
from C:\Users\Steve\Documents\Arduino\libraries\ReefAngel\ReefAngel.cpp:36:
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h: At global scope:
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:11: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:13: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:15: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:17: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:19: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:22: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:37: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:38: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:40: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:182: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:183: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:185: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:187: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:189: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:191: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:196: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:198: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:238: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:246: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:248: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:257: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:260: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:262: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:319: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:320: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:326: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:329: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:331: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:361: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:362: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:364: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:366: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:367: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:386: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:390: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:396: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:537: warning: only initialized variables can be placed into program memory area
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h: In member function 'void ReefAngelClass::DisplayMenuEntry(char*)':
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2222: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h: In member function 'void ReefAngelClass::DisplayVersion()':
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2273: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2274: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2279: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2282: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h: In member function 'void ReefAngelClass::CheckFeedingDrawing()':
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2368: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h: In member function 'void ReefAngelClass::CheckWaterChangeDrawing()':
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2377: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h: In member function 'void ReefAngelClass::ProcessButtonPressSetup()':
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2693: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2693: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2693: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2693: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2693: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h: In member function 'void ReefAngelClass::ProcessButtonPressLights()':
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2795: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2802: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2835: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2835: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2835: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2835: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2835: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h: In member function 'void ReefAngelClass::ProcessButtonPressTemps()':
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2868: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2873: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2879: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2881: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2881: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2881: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2881: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2893: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2898: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2904: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2906: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2906: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2906: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2906: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2919: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2925: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2932: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2935: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2935: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2935: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2935: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2945: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h: In member function 'void ReefAngelClass::ProcessButtonPressTimeouts()':
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2980: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2980: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2980: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2980: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:2980: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3003: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h: In member function 'void ReefAngelClass::SetupLightsOptionDisplay(bool)':
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3256: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3257: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3258: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3259: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3316: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3316: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3317: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3317: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3318: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3318: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3319: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3319: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h: In member function 'void ReefAngelClass::DisplaySetupCalibrateChoicePH()':
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3475: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3520: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3520: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h: In member function 'void ReefAngelClass::DisplaySetupCalibrateSalinity()':
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3800: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3801: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h: In member function 'void ReefAngelClass::SetupCalibrateWaterLevel()':
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3961: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3966: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3989: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:3989: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4001: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4001: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4011: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4011: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h: In member function 'void ReefAngelClass::StartSetupDateTime()':
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4151: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4154: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h: In member function 'void ReefAngelClass::DisplaySetupDateTime()':
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4175: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4176: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4177: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4178: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4179: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4180: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4192: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4192: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4193: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4193: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4194: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4194: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4195: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4195: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4196: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4196: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4261: warning: comparison with string literal results in unspecified behaviour
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4262: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4264: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4330: warning: comparison with string literal results in unspecified behaviour
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4331: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4333: warning: deprecated conversion from string constant to 'char*'
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel/ReefAngel_1.5_LCD.h:4366: warning: comparison with string literal results in unspecified behaviour
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel\ReefAngel.cpp: In member function 'void ReefAngelClass::Refresh()':
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel\ReefAngel.cpp:305: error: 'DCpump' was not declared in this scope
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel\ReefAngel.cpp: In member function 'void ReefAngelClass::Wavemaker(byte, int)':
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel\ReefAngel.cpp:1255: warning: comparison between signed and unsigned integer expressions
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel\ReefAngel.cpp: In member function 'void ReefAngelClass::WavemakerToggle(byte, byte, int)':
C:\Users\Steve\Documents\Arduino\libraries\ReefAngel\ReefAngel.cpp:1290: warning: comparison between signed and unsigned integer expressions
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Issues I've seen in the current Dev Library.

Post by lnevo »

Yeah you did something wrong....but I did have a typo:

/Users/lnevo/Documents/Arduino/libraries/ReefAngel/ReefAngel.cpp: In member function 'void ReefAngelClass::Refresh()':
/Users/lnevo/Documents/Arduino/libraries/ReefAngel/ReefAngel.cpp:305: error: 'DCpump' was not declared in this scope

It's addressed now. Please try again.
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: Issues I've seen in the current Dev Library.

Post by Sacohen »

It compiled this time.
Started Gyre at 45% went up to 50% (which is my top speed in the Portal) then went down to 30% and when it got to the threshold it switched pumps and started at 30% and started rising until it got to 50 and then stayed there a while (like 3 min) and started going down.
The actinic channel go to 50 and then immediately started going down but the daylight channel definitely sat at 50% longer then the actinic did.

So it seems that the threshold is the lowest it will go (as it should be) and the speed set in the portal is the highest it will go
AlanM
Posts: 263
Joined: Wed Jan 01, 2014 7:26 am

Re: Issues I've seen in the current Dev Library.

Post by AlanM »

If you wanted 31% to be the new 1% for the DC Pumps, which is what you're kind of doing by mapping it to do the threshold, you would have to also mess with the RA_Wifi functions and the GetChannelValue type functions that report percentages and see if it's a channel that has a threshold and subtract that and do the mapping before reporting the percentage. Otherwise you'll get the effect that Steve reports on that it isn't actually set to the percent that is requested.

Steve, when one pump is going up in Gyre mode, do you see the other one at 0 or is it sitting at the threshold? If it's sitting at the threshold and not shutting off, then there is something going on with the threshold code still because it should allow values 0 and 30-100 and I have the 0 value for the non-ramping channel hard-coded into GyreMode in Globals.cpp.
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: Issues I've seen in the current Dev Library.

Post by Sacohen »

No. The other pump is sitting at 0.
AlanM
Posts: 263
Joined: Wed Jan 01, 2014 7:26 am

Re: Issues I've seen in the current Dev Library.

Post by AlanM »

Sacohen wrote:No. The other pump is sitting at 0.
Great, thanks.
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Issues I've seen in the current Dev Library.

Post by lnevo »

Since the threshold is only done during dcpump, I think the reporting would be OK becasue we set the channel value after the threshold is applied.
AlanM
Posts: 263
Joined: Wed Jan 01, 2014 7:26 am

Re: Issues I've seen in the current Dev Library.

Post by AlanM »

lnevo wrote:Since the threshold is only done during dcpump, I think the reporting would be OK because we set the channel value after the threshold is applied.
Well, I'll give you an example of how the mapping messes up the set vs reported value.

If you set the DCPump mode to 0 which is Constant and are using Daylight and Actinic as DC Pumps.

Now you set the speed to 40 percent, then the threshold function would map your 40 from a scale of 0-100 to a range of 30-100, you end up actually getting a speed of 30+((100-30)*0.40) = 58 percent. That gets sets as the channel value and it faithfully reports 58 on wifi, on the portal, and on the head unit because Wifi just does: ReefAngel.PWM.GetDaylightValue() to get the number. All of this would be happening while the DCPump.Speed still reported 40 percent.

Anyway, I like Roberto's idea of somehow putting the threshold on a per-channel basis for the PWM channels instead of in DCPump. Then maybe we could tweak around the GetDaylightValue and stuff to take the threshold and some mapping into account when calculating the percent to report.

Might have to think for a while about the right way to do it, though, and it might take some user education to get people used to being able to send values like 5 percent to their Tunze, but it's really sending, assuming the threshold is 30, 30+(70*0.05) = 33.5 percent or 3.35V to the DC control channel.
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Issues I've seen in the current Dev Library.

Post by lnevo »

I'm not mapping any more i'm constraining. If you set to 40 its 40. If you set to 30 its 30.

If you set to 15 its 30. If you set to 1 its 30. If its set to 0 its 0.

The only difference is the arbitrary less than/greater than 15.
AlanM
Posts: 263
Joined: Wed Jan 01, 2014 7:26 am

Re: Issues I've seen in the current Dev Library.

Post by AlanM »

Ah, ok. I thought we were still talking about mapping it, an idea that I still kinda like. It makes sense not to have that large dead-band in there from 0-15. I put it there because it kind of made sense to make to round down or up based on half of the threshold, but it does leave the pump off too much when you're ramping around that area.
AlanM
Posts: 263
Joined: Wed Jan 01, 2014 7:26 am

Re: Issues I've seen in the current Dev Library.

Post by AlanM »

Thinking back, I put it in there so I could get a 0 at all from Nutrient Transport and the other profiles. If I had to set 30 as my minimum speed for those, then I'd never get a 0 for pulses, but if I set a 0 then I'd get all of those non-supported values for the surge portions. So threshold was made to just skip over anything not supported...
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Issues I've seen in the current Dev Library.

Post by lnevo »

Yeah so we're still getting the 0 for pulses and i think the way you suggested addressing it for gyre works fine.

I think actually thats how we address it for LED by setting the start speed and end speed. Something we dont do really in DCPump.

Thinking now on that, I'm not sure how much we need it in the PWM library, but it would still be nice to change the threshold and offset on a per channel, but its a bit of code. At least now it's only in one function (for DCPump)
89delta
Posts: 163
Joined: Mon Oct 15, 2012 7:21 pm
Location: Leesburg, GA

Re: Issues I've seen in the current Dev Library.

Post by 89delta »

I just added the Dev library to my folder. Am getting errors now when it comes to the Else coding for the dc pumps. Has this issue been fixed? My code can be found http://forum.reefangel.com/viewtopic.php?f=11&t=4731
User avatar
lnevo
Posts: 5430
Joined: Fri Jul 20, 2012 9:42 am

Re: Issues I've seen in the current Dev Library.

Post by lnevo »

You have to take the ElseMode function out of your code. Its part of the libraries now.
Post Reply