Giter VIP home page Giter VIP logo

libraries's People

Contributors

amunter avatar amunter-nist avatar brunnels avatar cosmith71 avatar curtbinder avatar jenshorn avatar lnevo avatar melovictor avatar mjpelmear avatar robertoimai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libraries's Issues

Wifi Data Reading Problem

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.

Rework of internal memory table

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?

Military Time

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.

Relay command 'GET /r1' turns on port when it shouldn't

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.

Setup Screen Temperature Invalid Range

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.

I2C bug fix

Add I2C bug fixes according to Todd Krein's recommendations

Android app is stuck on parsing

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)?

DosingPumpRepeat is limited to int interval and int offset

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);

Add code for PH expansion module

PH expansion will have its own set of code and define.

define PHEXPANSION

What should we call the ph reading of the expansion module?

  • ReefAngel.Params.PHE
  • ReefAngel.Params.PH1
  • ReefAngel.Params.PHExp

Fix ORP interpolation

The ORP interpolation is returning 550 for negative values.
It was found by tpriscu

Fix RF.RadionWrite()

RF.RadionWriteneeds to be moved to ReefAngel.Refresh() with logic to send once per second.

Add translation to the menus

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.

Single Temperature for the controller

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:

  • It could eliminate some of the confusion of the multiple temperatures with ON / OFF values
  • There would just be 1 temperature to worry about

Disadvantages:

  • Lack of fine tuned controls of the temperatures
  • Minimal fluctuation of temperature for the tank (not sure if this would be bad or not)

This is just tossing around an idea.

Revert issue #3

issue #3 was not redundant.
It is in fact the only reference for analogWrite on both channels.

Fix "DO" loops in setup menus

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:

  • The simple fix is to do something like RelayMask, where you make sure critical relays are off.
  • A better but way more complex long term fix is to have all those menus state based, so there is no do loop, but you instead go all the way back to the main loop. A bit like DisplayMenuHeading is done, but instead of just displaying, it goes to that handler.

This does not appear to be a critical problem.

Create a TimedPort 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:

  • TimedPort(Port, Delay)
  • TimedPort(Port, OnHr, OnMin, OffHr, OffMin, DelayStart)

Any thoughts on this?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.