reefangel / libraries Goto Github PK
View Code? Open in Web Editor NEWArduino Libraries for your Reef Angel Controller
Arduino Libraries for your Reef Angel Controller
Reading data from the wifi interface reads data in 1 char at a time. After each char read, it does a comparison on the entire buffer to see if anything matches. If it matches, then the processing of the buffer stops and whatever is matched is handled/processed. This limits the names of the commands.
When using the USB cable, it reads the data in chunks and can compare properly.
This affects the naming of the controller commands and also affects the wifi authentication. It is the reason why wifi authentication can only work 25% of the time (if at all).
I'm not quite sure how to fix this other than changing the way the data is read on the serial line. The best way to test was to use the RA Plus that has 2 serial lines on it, serial line and built-in wifi.
piezo is not being used and any reference should be removed
New schema needs to be established for memory locations.
This will involve everyone having to either upload a new internal memory file or run a INO code to reassign their internal memory settings.
What other approaches would you have?
Add smoothing average to Sal, ORP, PHExp and WL data reading by averaging 15 concecutive reads.
Relay.Status does not work for expansion relay boxes.
http://forum.reefangel.com/viewtopic.php?f=7&t=1864
Display military time on the screen if a user chooses.
Consider having an option for the DrawDateTime function to display 24hr format or not.
Possibly have a parameter passed into ShowInterface or have a boolean flag inside ReefAngel Class that is called "fDisplay24hr"
Then ShowInterface would know what to use when drawing the date and time on the screen.
When issuing the /r1 command, it should not turn on any port or affect the ports at all because the 2nd number does not exist. However, this is not the case. Issuing that command turns on relay 1.
Need to look further at how the parsing of the numbers is handled and possibly add some extra checks to prevent this from happening.
The boundary checks don't appear to be working properly on the temperature setup screens. When the values are either uninitialized or outside of the range there is a problem with incrementing being allowed when it should not be. Decrementing works fine.
This needs to be confirmed.
Add I2C bug fixes according to Todd Krein's recommendations
When any mode is started from an app, it doesn't clear the screen.
After I merged all issues of milestone 1 into the dev branch and tested the controller, everything seemed fine until I tried to connect with the Android app.
It seems to be pulling the XML data and gets stick on parsing. Just like in the past, the app is still able to send commands, read/write memory locations and even toggle relays.
Could it be an issue with the app or malformed XML data (bug on libraries)?
Because the variables are declared as int, the result when converting the variables to seconds overloads the int size.
Possible fix:
Relay.Set(DPRelay,((elapsedSecsToday(now())-((long)OffsetMinute_60))%((long)RepeatMinute_60))<RunTime);
command /mr is returning incorrect values.
Redundant code. Needs to be removed
Add #define WATERLEVELEXPANSION and code for reading and calibrating module
PH expansion will have its own set of code and define.
What should we call the ph reading of the expansion module?
Add function to return moon cycle
http://forum.reefangel.com/viewtopic.php?p=11364#p11364
Add on both libraries and the Portal
When DrawCalibrate is used and there is a 4/3/2 digit number displayed, the function doesn't clear when the number decreases to less digits.
When the wavemaker setup is called and there is no wavemaker2() call, the wmport2 makes port1 be turned on.
http://forum.reefangel.com/viewtopic.php?f=2&t=1827
http://forum.reefangel.com/viewtopic.php?p=11848#p11848
This seems to happen only when the start % is set to 1
Add features to code if RA+ board is selected.
No size problems with RA+ boards.
New improved script for better performance has been created.
Data will be sent to submitp.aspx instead of submitp.asp
The features auto selection has no keyword for #define COLORS_PDE
Add contributed box:
http://forum.reefangel.com/viewtopic.php?f=12&t=2106&view=unread#unread
pH Expansion and Water Level Expansion need to have calibration menus added
With the lastest changes, the preloaded code is not fitting into standard RA anymore.
To avoid breaking old apps, I'm just going to add a logic to subtract 600 from the memory location every time an incoming request comes in through wifi.
Software reset causes incompatibility on some screens
The ORP interpolation is returning 550 for negative values.
It was found by tpriscu
RF.RadionWriteneeds to be moved to ReefAngel.Refresh() with logic to send once per second.
Organize and create defines to allow for other languages to be added to the libraries.
I'm thinking bunch the PROGMEM variables into a single area and have #define for each language.
RA_PWM.cpp
line 237: Wire.write(data*2.55);
It needs to be int cast
Both functions do not reflect the actinic offset that is set on internal memory Mem_B_ActinicOffset
Function ChannelRadionParabola() is using slope code instead of parabola
Add capability to turn on/off the Vortech drivers.
Instead of having an on / off temperature setting for each device (heater, chiller, etc), what about having a single temperature for the controller?
You pick a temperature and a hysteresis value for the tank. Then select what probe you want to monitor your tank and the functions would handle the rest of the control.
You could still have certain events be triggered based on the temperature.
Some benefits:
Disadvantages:
This is just tossing around an idea.
issue #3 was not redundant.
It is in fact the only reference for analogWrite on both channels.
Use the water level expansion module to activate ATO pump depending on water level measurements
The "DO" loops which are inside the setup screens that handle temperature changes, calibrations, date/time. This would be to ensure that relay changes are made even if a setup screen is accidentally left up.
Some suggestions that have been made:
This does not appear to be a critical problem.
MoonPhaseLabel is generating error
Globals/Globals.h:898: error: expected unqualified-id before ')' token
http://forum.reefangel.com/viewtopic.php?p=11513#p11513
Please read dedvalson comments
http://forum.reefangel.com/viewtopic.php?f=7&t=1864
html pages need to be sent as text/html instead of html/xml
The /mr command is returning wrong data when the value is 0x10
This could be useful so the overheat check could be used elsewhere in the code instead of just the ShowInterface function.
Rename the StandardLights function to be a TimedPort function and incorporate a delay like with the MHLights function. Then have the StandardLights and MHLights functions call the TimedPort function.
This could help for people who just want to have a single timed port. There is some confusion if you want a timed port and you use a function called StandardLights.
It could be:
Any thoughts on this?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.