Libraries TODO List

Related to the development libraries, released by Curt Binder
rygh
Posts: 21
Joined: Wed Jun 08, 2011 5:07 pm

Re: Libraries TODO List

Post by rygh »

Ok, another un-initialize temp bug. A bit hard to explain though.
The default memory values on heater/chiller are -1. (An unfortunate coincidence)
There are two values (temp-on, tmp-off) passed into the setup gui for heat/chill.
But when the "y" value is -1, "bSingle" gets set, and it does not show on the GUI.
As such, you can only change TempOn for both heater/chiller, and never change TempOff away from -1.
Which makes heater/chiller not work properly.

I guess I should probably just use that tool to set memory to correct legal values.

Alternately, you might not want to use -1 for a flag, since it matches un-initialized memory.

Alternately, you might want to consider just having one value for heat/chill anyway.
And internally, add a small amount, say 0.5 deg or so, for hysteresis.
Less confusing for the user.
binder
Posts: 2871
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
Contact:

Re: Libraries TODO List

Post by binder »

My controller had the uninitialized values set to 255 when I've used it. So it's hard to say what the values will be when they are uninitialized. You can honestly only do so much (programmatically) when it's uninitialized. This is also the reason why when upgrading to the dev libraries, you are supposed to run the SetInternalMemory PDE first so the values are set properly. Otherwise if you don't, the controller will not function properly. My wavemakers toggle off and on rapidly when the value is not set.

Also, RAGen is recommended to be used to generate the PDE files with the proper settings/values to help with confusion.

Good suggestion for having 1 value for heater/chiller. The 2 values are there for helping maintain a range so the heater or chiller isn't always kicking on/off or even both on at the same time.

curt
binder
Posts: 2871
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
Contact:

Re: Libraries TODO List

Post by binder »

rygh wrote: Another very minor one:
For StandardHeater, you have a nice check for Temp1 = 0, and return.
But you are missing that check on StandardFan.
Fixed. Will be in next release.

curt
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: Libraries TODO List

Post by rimai »

Bug fix:
Line 993 of ReefAngel.cpp:

Code: Select all

	Serial.println("\n\n");
Change to:

Code: Select all

    Serial.println(" HTTP/1.1\n\n");
Some web servers require that to consider requests as valid ones.
Roberto.
paulo.hanashiro
Posts: 18
Joined: Sat Mar 19, 2011 4:23 pm
Location: Sydne/Australia

Re: Libraries TODO List

Post by paulo.hanashiro »

Thanks Curt and Roberto for your updates.
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: Libraries TODO List

Post by rimai »

My bad Curt.
After further testing, I noticed that reefangel.com server doesn't like HTTP/1.1
So, nevermind on the above bug fix. Please disregard.
But I'd like to leave it mentioned that some Unix based servers require the HTTP/1.1 to be there. So, if anyone is developing a custom script on your own web server, you may encounter problems and will need to change that.
Roberto.
binder
Posts: 2871
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
Contact:

Re: Libraries TODO List

Post by binder »

rimai wrote:My bad Curt.
After further testing, I noticed that reefangel.com server doesn't like HTTP/1.1
So, nevermind on the above bug fix. Please disregard.
But I'd like to leave it mentioned that some Unix based servers require the HTTP/1.1 to be there. So, if anyone is developing a custom script on your own web server, you may encounter problems and will need to change that.
haha. yeah no problem, I'll change it with 0.8.5.16. I did some reading about it and it is supposed to be there but we are omitting the host line which is part of the 1.1 specs. if you use the 1.0 specs you don't need the host line. you can try putting HTTP/1.0 instead and that should work or we have to add the full host we are requesting thus increasing size (which I really don't want to do). try that and let me know.

curt
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: Libraries TODO List

Post by rimai »

I know 1.0 or nothing works on windows hosting of reefangel.com, but I didn't test on the linux one.
Since there is going to be very rare cases where someone will be using their own web server, let's just remove it.
Roberto.
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: Libraries TODO List

Post by rimai »

I just realized there is one define with wrong name. It may have been my fault.
#define PWMExpansionRelay
I think the Relay word shouldn't be there.
Roberto.
binder
Posts: 2871
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
Contact:

Re: Libraries TODO List

Post by binder »

rimai wrote:I just realized there is one define with wrong name. It may have been my fault.
#define PWMExpansionRelay
I think the Relay word shouldn't be there.
Ok. That can be updated/changed fairly easily. I'll shift things around in the next release. :)

curt
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: Libraries TODO List

Post by rimai »

I think DelayedOn() function should be a function of Relay class, instead of general function.
What do you think?
Roberto.
binder
Posts: 2871
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
Contact:

Re: Libraries TODO List

Post by binder »

rimai wrote:I think DelayedOn() function should be a function of Relay class, instead of general function.
What do you think?
I think you are right. For some reason I'm thinking there was a reason why I didn't put it in the Relay class to begin with but I can't recall the reason(s) right now.

I'll investigate moving it to the Relay class.

curt
binder
Posts: 2871
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
Contact:

Re: Libraries TODO List

Post by binder »

Figured things out and moved it over. In the next release, instead of saying this:

Code: Select all

ReefAngel.DelayedOn(Port1, 5);
you will say this:

Code: Select all

ReefAngel.Relay.DelayedOn(Port1, 5);
It makes more sense having it like that because we are operating on the Relay's. It was coded the "wrong" way initially due to some errors with variable sharing but those were resolved and everything is working as expected now.

curt
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: Libraries TODO List

Post by rimai »

Hi Curt/Dave,

Would you be able to confirm this bug?
Seems to only happen with r121 though.

Send:

Code: Select all

GET /r121
Result:

Code: Select all


HTTP/1.1 200 OK
Server: ReefAngel
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Connection: close
Content-Type: text/xml
Content-Length: 495
<RA><T1>737</T1><T2>0</T2><T3>0</T3><PH>676</PH><R>248</R><RON>0</RON><ROFF>255</ROFF><R0>0</R0><RON0>2</RON0><ROFF0>255</ROFF0><R1>0</R1><RON1>0</RON1><ROFF1>255</ROFF1><R2>0</R2><RON2>0</RON2><ROFF2>255</ROFF2><R3>0</R3><RON3>0</RON3><ROFF3>255</ROFF3><R4>0</R4><RON4>0</RON4><ROFF4>255</ROFF4><R5>0</R5><RON5>0</RON5><ROFF5>255</ROFF5><R6>0</R6><RON6>0</RON6><ROFF6>255</ROFF6><R7>0</R7><RON7>0</RON7><ROFF7>255</ROFF7><ATOLOW>0</ATOLOW><ATOHIGH>0</ATOHIGH></RA>
Followed by:

Code: Select all

GET /r99
Result:

Code: Select all

HTTP/1.1 401 Access Denied
WWW-Authenticate: Basic realm=Reef Angel Controller
Content-Length: 0
Roberto.
binder
Posts: 2871
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
Contact:

Re: Libraries TODO List

Post by binder »

what version of the libraries are you using or did you notice this with?

curt
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: Libraries TODO List

Post by rimai »

v0.8.5.16
Roberto.
dmolton
Posts: 182
Joined: Tue Mar 22, 2011 11:08 am

Re: Libraries TODO List

Post by dmolton »

I'm still on .15

If I follow your steps and include the trailing space after GET /r121 and GET /r99 everything works fine.. If I don't include the trailing space in the above statements I see:

Code: Select all


HTTP/1.1 200 OK
Server: ReefAng
el
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Connection: close
Content-Type: text/html
Content-Length: 24

<h1>Unknown Request</h1>
Never was able to get exactly your output, though
dmolton
Posts: 182
Joined: Tue Mar 22, 2011 11:08 am

Re: Libraries TODO List

Post by dmolton »

Just confirmed I see the same results I mentioned above on .16 as I did .15
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: Libraries TODO List

Post by rimai »

I guess I'll just download the libs again. I may have changed something that screwed it up.
Yeah, I had to do the trailing space to get the correct stuff, but that was not the problem. It was expected to be that way.
Roberto.
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: Libraries TODO List

Post by rimai »

I'm testing the masks of the expansion module relays of the Dev libs and the profile of relays of your Client to trigger events on the RA :)
Basically using the expansion relays as virtual on/off switches :idea: that can be turned on/off through the Client :o
Roberto.
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: Libraries TODO List

Post by rimai »

Hey Curt,
What happens if I send you another pull request, with the current one I requested a couple days ago still open. Can you merge both of them??
I'd like to smooth down the pH readings by averaging 20 readings. Credits to Paul Viscowich for the idea, which should've been done since the beginning.... lol
Roberto.
binder
Posts: 2871
Joined: Fri Mar 18, 2011 6:20 pm
Location: Illinois
Contact:

Re: Libraries TODO List

Post by binder »

i just merged the open request. for your reference, i can add your repository to my remotes for my local copy and i can manually pull any changes you have posted to your github account.

my master branch is updated to the latest with your changes in it. i have not updated the version of the libraries yet though (and don't plan on it just yet until i'm ready for .19 which will be after the pwm expansion settings via wifi and your ph updates).

curt
Post Reply