Page 1 of 2

Libraries TODO List

Posted: Tue May 17, 2011 4:32 pm
by binder
This is where I'm going to attempt to keep a list of the items / features that I'm working on or plan to work on for my libraries.

EDIT:
This list is currently blank on here. There have been lots of additional features added and the TODO list has been changing too rapidly to keep up with on here. Features may be added here in the future but at the current time there's not much to add that I'm aware of.


If you have any ideas or suggestions, feel free to PM me or post an idea in this topic.

curt

Re: Libraries TODO List

Posted: Tue May 17, 2011 5:11 pm
by alexwbush
sounds good!

What about functions for an Android app? Or am I barking up the wrong tree?

Re: Libraries TODO List

Posted: Tue May 17, 2011 5:18 pm
by binder
alexwbush wrote: What about functions for an Android app? Or am I barking up the wrong tree?
Most likely barking up the wrong tree. My main goal is to get a stable library base that has a good underlying API for additional clients to communicate....like the iPhone app or other clients and such. I'm not up on the mobile apps, so that may need to be in Dave's realm or somebody else's.

curt

Re: Libraries TODO List

Posted: Tue May 17, 2011 10:41 pm
by alexwbush
I knew you weren't working on the actual app, but I heard the foundation needs to be laid and it needs to be worked into the code for the android app to work just as the iphone app does.

Re: Libraries TODO List

Posted: Thu May 19, 2011 2:16 am
by Xender
Possibility to have timer with day of week (mond, tues, wes,....)
thx

Re: Libraries TODO List

Posted: Fri Jun 17, 2011 9:14 pm
by rygh
Found a minor bug in the setup:
When you change the Chiller Temperature down, the number jumps to 999.
Going up works fine.
Version 8.5.14

Re: Libraries TODO List

Posted: Fri Jun 17, 2011 9:22 pm
by binder
rygh wrote:Found a minor bug in the setup:
When you change the Chiller Temperature down, the number jumps to 999.
Going up works fine.
Version 8.5.14
Just tested it, doesn't happen on my copy of 0.8.5.14.

What is the value for your temperature?
Is it the On or the Off temperature option?
Does it happen when you first change the number or does it happen when you go below 700?
Does it happen on other screens too?

I ask these questions because the same code is used in all of the setup screens, so if there is an error with one then there is an error with all of them. Also, if your internal memory values are set outside of the range, unexpected responses can occur.

curt

Re: Libraries TODO List

Posted: Sat Jun 18, 2011 3:30 pm
by rygh
binder wrote:
rygh wrote:Found a minor bug in the setup:
When you change the Chiller Temperature down, the number jumps to 999.
Going up works fine.
Version 8.5.14
Just tested it, doesn't happen on my copy of 0.8.5.14.

What is the value for your temperature?
Is it the On or the Off temperature option?
Does it happen when you first change the number or does it happen when you go below 700?
Does it happen on other screens too?

I ask these questions because the same code is used in all of the setup screens, so if there is an error with one then there is an error with all of them. Also, if your internal memory values are set outside of the range, unexpected responses can occur.

curt
It was a new main board, un-initialized.
Also, I was confused because I did not realize at first it was /10. So I set it to 78, not 780.

It looks like when you are not initialized, you can go up outside your bounds, but not down.
Once it is in the 700-900 range, it stays there and up/down works as expected.
It was the same for all temp settings.
My guess: You only have the low-range check on the down button, and high-range on the up button.
Perhaps put range checks on both.
Minor.
If anything, I would add a clear decimal point on the GUI. It was pretty confusing.

Re: Libraries TODO List

Posted: Sat Jun 18, 2011 3:40 pm
by rygh
(I hope this is a good thread for minor notes)

Another very minor one:
For StandardHeater, you have a nice check for Temp1 = 0, and return.
But you are missing that check on StandardFan.

Re: Libraries TODO List

Posted: Sat Jun 18, 2011 3:41 pm
by rimai
Keep them coming. That's what we need :)

Re: Libraries TODO List

Posted: Sat Jun 18, 2011 5:05 pm
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.

Re: Libraries TODO List

Posted: Sat Jun 18, 2011 5:42 pm
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

Re: Libraries TODO List

Posted: Tue Jun 21, 2011 7:45 pm
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

Re: Libraries TODO List

Posted: Mon Jul 04, 2011 8:49 am
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.

Re: Libraries TODO List

Posted: Mon Jul 04, 2011 1:54 pm
by paulo.hanashiro
Thanks Curt and Roberto for your updates.

Re: Libraries TODO List

Posted: Sun Jul 17, 2011 3:11 pm
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.

Re: Libraries TODO List

Posted: Sun Jul 17, 2011 6:05 pm
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

Re: Libraries TODO List

Posted: Sun Jul 17, 2011 6:36 pm
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.

Re: Libraries TODO List

Posted: Thu Aug 11, 2011 6:23 pm
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.

Re: Libraries TODO List

Posted: Thu Aug 11, 2011 7:31 pm
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

Re: Libraries TODO List

Posted: Sat Aug 20, 2011 9:05 am
by rimai
I think DelayedOn() function should be a function of Relay class, instead of general function.
What do you think?

Re: Libraries TODO List

Posted: Sat Aug 20, 2011 5:24 pm
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

Re: Libraries TODO List

Posted: Sat Aug 20, 2011 6:04 pm
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

Re: Libraries TODO List

Posted: Wed Aug 24, 2011 11:25 am
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

Re: Libraries TODO List

Posted: Wed Aug 24, 2011 2:51 pm
by binder
what version of the libraries are you using or did you notice this with?

curt

Re: Libraries TODO List

Posted: Wed Aug 24, 2011 2:58 pm
by rimai
v0.8.5.16

Re: Libraries TODO List

Posted: Wed Aug 24, 2011 3:33 pm
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

Re: Libraries TODO List

Posted: Wed Aug 24, 2011 3:44 pm
by dmolton
Just confirmed I see the same results I mentioned above on .16 as I did .15

Re: Libraries TODO List

Posted: Wed Aug 24, 2011 3:50 pm
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.

Re: Libraries TODO List

Posted: Wed Aug 24, 2011 3:53 pm
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