mistergreen / WAAC

Web-enabled Arduino Aquarium Controller
Other
9 stars 5 forks source link

seems something is wrong with the esp32 code. #13

Open waltdavis opened 5 years ago

waltdavis commented 5 years ago

This will not compile in Arduino IDE. i first tried on the current version and had many compile errors. So after reading more about it i saw your mention of needing version 1.8.1. i uninstalled newer version and installed 1.8.1... still throws a lot of errors during compile. none of wich i can figure out as the code is pretty complex..any help would be greatly appreciated

createHallSensor' was not declared in this scope 'class OneWireSensor' has no member named 'getLowerTarget' these are the first two errors..

mistergreen commented 5 years ago

I just verified the code with Arduino 1.8.5 No errors for me.

In your preference, check Show verbose. Copy and paste the error.

waltdavis commented 5 years ago

Thanks for the help. I uninstalled 1.8.1 and installed 1.8.5. checked show verbose as you suggested. ran the verify and this is the entire error message. if i did the error message wrong i apologize. this is the first time I've asked for help so I'm still learning.

In file included from C:\Users\wdavi\OneDrive\Documents\esp32 vivarium\ESP32\WAAC_ESP32\WAAC_ESP32.ino:40:0:

C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\OneWire/OneWire.h:254:2: warning: #warning "OneWire. Fallback mode. Using API calls for pinMode,digitalRead and digitalWrite. Operation of this library is not guaranteed on this architecture." [-Wcpp]

warning "OneWire. Fallback mode. Using API calls for pinMode,digitalRead and digitalWrite. Operation of this library is not guaranteed on this architecture."

^

In file included from C:\Users\wdavi\OneDrive\Documents\esp32 vivarium\ESP32\WAAC_ESP32\WAAC_ESP32.ino:37:0:

C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\Input/Input.h:17:1: error: expected class-name before '{' token

{

^

In file included from C:\Users\wdavi\OneDrive\Documents\esp32 vivarium\ESP32\WAAC_ESP32\WAAC_ESP32.ino:38:0:

C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\InputMCP/InputMCP.h:18:1: error: expected class-name before '{' token

{

^

In file included from C:\Users\wdavi\OneDrive\Documents\esp32 vivarium\ESP32\WAAC_ESP32\WAAC_ESP32.ino:41:0:

C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\OneWireSensor/OneWireSensor.h:17:1: error: expected class-name before '{' token

{

^

C:\Users\wdavi\OneDrive\Documents\esp32 vivarium\ESP32\WAAC_ESP32\Analog.ino: In function 'void analogAjaxOutput(WiFiClient, Device*)':

Analog:6: error: 'Analog' does not name a type

    int tempInt = static_cast<Analog*>(device)->getPin();

                              ^

Analog:6: error: expected '>' before '*' token

    int tempInt = static_cast<Analog*>(device)->getPin();

                                    ^

Analog:6: error: expected '(' before '*' token

Analog:6: error: expected primary-expression before '>' token

    int tempInt = static_cast<Analog*>(device)->getPin();

                                     ^

Analog:6: error: expected ')' before ';' token

    int tempInt = static_cast<Analog*>(device)->getPin();

                                                        ^

Analog:10: error: 'Analog' does not name a type

    client.print(static_cast<Analog*>(device)->getMin());

                             ^

Analog:10: error: expected '>' before '*' token

    client.print(static_cast<Analog*>(device)->getMin());

                                   ^

Analog:10: error: expected '(' before '*' token

Analog:10: error: expected primary-expression before '>' token

    client.print(static_cast<Analog*>(device)->getMin());

                                    ^

Analog:13: error: 'Analog' does not name a type

    client.print(static_cast<Analog*>(device)->getMax());

                             ^

Analog:13: error: expected '>' before '*' token

    client.print(static_cast<Analog*>(device)->getMax());

                                   ^

Analog:13: error: expected '(' before '*' token

Analog:13: error: expected primary-expression before '>' token

    client.print(static_cast<Analog*>(device)->getMax());

                                    ^

Analog:16: error: 'Analog' does not name a type

    client.print(static_cast<Analog*>(device)->getLowerTarget());

                             ^

Analog:16: error: expected '>' before '*' token

    client.print(static_cast<Analog*>(device)->getLowerTarget());

                                   ^

Analog:16: error: expected '(' before '*' token

Analog:16: error: expected primary-expression before '>' token

    client.print(static_cast<Analog*>(device)->getLowerTarget());

                                    ^

Analog:16: error: 'class Device' has no member named 'getLowerTarget'

    client.print(static_cast<Analog*>(device)->getLowerTarget());

                                               ^

Analog:19: error: 'Analog' does not name a type

    client.print(static_cast<Analog*>(device)->getHigherTarget());

                             ^

Analog:19: error: expected '>' before '*' token

    client.print(static_cast<Analog*>(device)->getHigherTarget());

                                   ^

Analog:19: error: expected '(' before '*' token

Analog:19: error: expected primary-expression before '>' token

    client.print(static_cast<Analog*>(device)->getHigherTarget());

                                    ^

Analog:19: error: 'class Device' has no member named 'getHigherTarget'

    client.print(static_cast<Analog*>(device)->getHigherTarget());

                                               ^

Analog:22: error: 'Analog' does not name a type

    client.print(static_cast<Analog*>(device)->getUnit());

                             ^

Analog:22: error: expected '>' before '*' token

    client.print(static_cast<Analog*>(device)->getUnit());

                                   ^

Analog:22: error: expected '(' before '*' token

Analog:22: error: expected primary-expression before '>' token

    client.print(static_cast<Analog*>(device)->getUnit());

                                    ^

Analog:25: error: 'Analog' does not name a type

    client.print(static_cast<Analog*>(device)->read());

                             ^

Analog:25: error: expected '>' before '*' token

    client.print(static_cast<Analog*>(device)->read());

                                   ^

Analog:25: error: expected '(' before '*' token

Analog:25: error: expected primary-expression before '>' token

    client.print(static_cast<Analog*>(device)->read());

                                    ^

Analog:28: error: 'Analog' does not name a type

    client.print(static_cast<Analog*>(device)->getConditionType());

                             ^

Analog:28: error: expected '>' before '*' token

    client.print(static_cast<Analog*>(device)->getConditionType());

                                   ^

Analog:28: error: expected '(' before '*' token

Analog:28: error: expected primary-expression before '>' token

    client.print(static_cast<Analog*>(device)->getConditionType());

                                    ^

Analog:28: error: 'class Device' has no member named 'getConditionType'

    client.print(static_cast<Analog*>(device)->getConditionType());

                                               ^

Analog:31: error: 'Analog' does not name a type

    client.print(static_cast<Analog*>(device)->getFormula());

                             ^

Analog:31: error: expected '>' before '*' token

    client.print(static_cast<Analog*>(device)->getFormula());

                                   ^

Analog:31: error: expected '(' before '*' token

Analog:31: error: expected primary-expression before '>' token

    client.print(static_cast<Analog*>(device)->getFormula());

                                    ^

Analog:31: error: 'class Device' has no member named 'getFormula'

    client.print(static_cast<Analog*>(device)->getFormula());

                                               ^

C:\Users\wdavi\OneDrive\Documents\esp32 vivarium\ESP32\WAAC_ESP32\Analog.ino: In function 'void saveAnalog(Device*)':

Analog:39: error: 'Analog' does not name a type

     static_cast<Analog*>(device)->setMin(atof(param_value));

                 ^

Analog:39: error: expected '>' before '*' token

     static_cast<Analog*>(device)->setMin(atof(param_value));

                       ^

Analog:39: error: expected '(' before '*' token

Analog:39: error: expected primary-expression before '>' token

     static_cast<Analog*>(device)->setMin(atof(param_value));

                        ^

Analog:39: error: expected ')' before ';' token

     static_cast<Analog*>(device)->setMin(atof(param_value));

                                                            ^

Analog:43: error: 'Analog' does not name a type

     static_cast<Analog*>(device)->setMax(atof(param_value));

                 ^

Analog:43: error: expected '>' before '*' token

     static_cast<Analog*>(device)->setMax(atof(param_value));

                       ^

Analog:43: error: expected '(' before '*' token

Analog:43: error: expected primary-expression before '>' token

     static_cast<Analog*>(device)->setMax(atof(param_value));

                        ^

Analog:43: error: expected ')' before ';' token

     static_cast<Analog*>(device)->setMax(atof(param_value));

                                                            ^

Analog:47: error: 'Analog' does not name a type

     static_cast<Analog*>(device)->setLowerTarget(atof(param_value));

                 ^

Analog:47: error: expected '>' before '*' token

     static_cast<Analog*>(device)->setLowerTarget(atof(param_value));

                       ^

Analog:47: error: expected '(' before '*' token

Analog:47: error: expected primary-expression before '>' token

     static_cast<Analog*>(device)->setLowerTarget(atof(param_value));

                        ^

Analog:47: error: 'class Device' has no member named 'setLowerTarget'

     static_cast<Analog*>(device)->setLowerTarget(atof(param_value));

                                   ^

Analog:47: error: expected ')' before ';' token

     static_cast<Analog*>(device)->setLowerTarget(atof(param_value));

                                                                    ^

Analog:51: error: 'Analog' does not name a type

     static_cast<Analog*>(device)->setHigherTarget(atof(param_value));

                 ^

Analog:51: error: expected '>' before '*' token

     static_cast<Analog*>(device)->setHigherTarget(atof(param_value));

                       ^

Analog:51: error: expected '(' before '*' token

Analog:51: error: expected primary-expression before '>' token

     static_cast<Analog*>(device)->setHigherTarget(atof(param_value));

                        ^

Analog:51: error: 'class Device' has no member named 'setHigherTarget'

     static_cast<Analog*>(device)->setHigherTarget(atof(param_value));

                                   ^

Analog:51: error: expected ')' before ';' token

     static_cast<Analog*>(device)->setHigherTarget(atof(param_value));

                                                                     ^

Analog:55: error: 'Analog' does not name a type

     static_cast<Analog*>(device)->setUnit(param_value);

                 ^

Analog:55: error: expected '>' before '*' token

     static_cast<Analog*>(device)->setUnit(param_value);

                       ^

Analog:55: error: expected '(' before '*' token

Analog:55: error: expected primary-expression before '>' token

     static_cast<Analog*>(device)->setUnit(param_value);

                        ^

Analog:55: error: expected ')' before ';' token

     static_cast<Analog*>(device)->setUnit(param_value);

                                                       ^

Analog:60: error: 'Analog' does not name a type

     static_cast<Analog*>(device)->setFormula(param_value);

                 ^

Analog:60: error: expected '>' before '*' token

     static_cast<Analog*>(device)->setFormula(param_value);

                       ^

Analog:60: error: expected '(' before '*' token

Analog:60: error: expected primary-expression before '>' token

     static_cast<Analog*>(device)->setFormula(param_value);

                        ^

Analog:60: error: 'class Device' has no member named 'setFormula'

     static_cast<Analog*>(device)->setFormula(param_value);

                                   ^

Analog:60: error: expected ')' before ';' token

     static_cast<Analog*>(device)->setFormula(param_value);

                                                          ^

Analog:64: error: 'Analog' does not name a type

     static_cast<Analog*>(device)->setConditionType(param_value);

                 ^

Analog:64: error: expected '>' before '*' token

     static_cast<Analog*>(device)->setConditionType(param_value);

                       ^

Analog:64: error: expected '(' before '*' token

Analog:64: error: expected primary-expression before '>' token

     static_cast<Analog*>(device)->setConditionType(param_value);

                        ^

Analog:64: error: 'class Device' has no member named 'setConditionType'

     static_cast<Analog*>(device)->setConditionType(param_value);

                                   ^

Analog:64: error: expected ')' before ';' token

     static_cast<Analog*>(device)->setConditionType(param_value);

                                                                ^

C:\Users\wdavi\OneDrive\Documents\esp32 vivarium\ESP32\WAAC_ESP32\Analog.ino: In function 'void createAnalog()':

Analog:80: error: 'Analog' was not declared in this scope

     Analog *temp = new Analog(param_value, convertPin(tempPin));

     ^

Analog:80: error: 'temp' was not declared in this scope

     Analog *temp = new Analog(param_value, convertPin(tempPin));

             ^

Analog:80: error: expected type-specifier before 'Analog'

     Analog *temp = new Analog(param_value, convertPin(tempPin));

                        ^

Analog:96: error: 'Analog' does not name a type

     static_cast<Analog*>(temp)->setMin(atof(param_value));

                 ^

Analog:96: error: expected '>' before '*' token

     static_cast<Analog*>(temp)->setMin(atof(param_value));

                       ^

Analog:96: error: expected '(' before '*' token

Analog:96: error: expected primary-expression before '>' token

     static_cast<Analog*>(temp)->setMin(atof(param_value));

                        ^

Analog:96: error: expected ')' before ';' token

     static_cast<Analog*>(temp)->setMin(atof(param_value));

                                                          ^

Analog:100: error: 'Analog' does not name a type

     static_cast<Analog*>(temp)->setMax(atof(param_value));

                 ^

Analog:100: error: expected '>' before '*' token

     static_cast<Analog*>(temp)->setMax(atof(param_value));

                       ^

Analog:100: error: expected '(' before '*' token

Analog:100: error: expected primary-expression before '>' token

     static_cast<Analog*>(temp)->setMax(atof(param_value));

                        ^

Analog:100: error: expected ')' before ';' token

     static_cast<Analog*>(temp)->setMax(atof(param_value));

                                                          ^

Analog:104: error: 'Analog' does not name a type

     static_cast<Analog*>(temp)->setLowerTarget(atof(param_value));

                 ^

Analog:104: error: expected '>' before '*' token

     static_cast<Analog*>(temp)->setLowerTarget(atof(param_value));

                       ^

Analog:104: error: expected '(' before '*' token

Analog:104: error: expected primary-expression before '>' token

     static_cast<Analog*>(temp)->setLowerTarget(atof(param_value));

                        ^

Analog:104: error: expected ')' before ';' token

     static_cast<Analog*>(temp)->setLowerTarget(atof(param_value));

                                                                  ^

Analog:108: error: 'Analog' does not name a type

     static_cast<Analog*>(temp)->setHigherTarget(atof(param_value));

                 ^

Analog:108: error: expected '>' before '*' token

     static_cast<Analog*>(temp)->setHigherTarget(atof(param_value));

                       ^

Analog:108: error: expected '(' before '*' token

Analog:108: error: expected primary-expression before '>' token

     static_cast<Analog*>(temp)->setHigherTarget(atof(param_value));

                        ^

Analog:108: error: expected ')' before ';' token

     static_cast<Analog*>(temp)->setHigherTarget(atof(param_value));

                                                                   ^

Analog:112: error: 'Analog' does not name a type

     static_cast<Analog*>(temp)->setUnit(param_value);

                 ^

Analog:112: error: expected '>' before '*' token

     static_cast<Analog*>(temp)->setUnit(param_value);

                       ^

Analog:112: error: expected '(' before '*' token

Analog:112: error: expected primary-expression before '>' token

     static_cast<Analog*>(temp)->setUnit(param_value);

                        ^

Analog:112: error: expected ')' before ';' token

     static_cast<Analog*>(temp)->setUnit(param_value);

                                                     ^

Analog:117: error: 'Analog' does not name a type

     static_cast<Analog*>(temp)->setFormula(param_value);

                 ^

Analog:117: error: expected '>' before '*' token

     static_cast<Analog*>(temp)->setFormula(param_value);

                       ^

Analog:117: error: expected '(' before '*' token

Analog:117: error: expected primary-expression before '>' token

     static_cast<Analog*>(temp)->setFormula(param_value);

                        ^

Analog:117: error: expected ')' before ';' token

     static_cast<Analog*>(temp)->setFormula(param_value);

                                                        ^

C:\Users\wdavi\OneDrive\Documents\esp32 vivarium\ESP32\WAAC_ESP32\Hall.ino: In function 'void hallAjaxOutput(WiFiClient, Device*)':

Hall:6: error: 'HallSensor' does not name a type

    int tempInt = static_cast<HallSensor*>(device)->getPin();

                              ^

Hall:6: error: expected '>' before '*' token

    int tempInt = static_cast<HallSensor*>(device)->getPin();

                                        ^

Hall:6: error: expected '(' before '*' token

Hall:6: error: expected primary-expression before '>' token

    int tempInt = static_cast<HallSensor*>(device)->getPin();

                                         ^

Hall:6: error: expected ')' before ';' token

    int tempInt = static_cast<HallSensor*>(device)->getPin();

                                                            ^

Hall:10: error: 'HallSensor' does not name a type

    client.print(static_cast<HallSensor*>(device)->getMin());

                             ^

Hall:10: error: expected '>' before '*' token

    client.print(static_cast<HallSensor*>(device)->getMin());

                                       ^

Hall:10: error: expected '(' before '*' token

Hall:10: error: expected primary-expression before '>' token

    client.print(static_cast<HallSensor*>(device)->getMin());

                                        ^

Hall:13: error: 'HallSensor' does not name a type

    client.print(static_cast<HallSensor*>(device)->getMax());

                             ^

Hall:13: error: expected '>' before '*' token

    client.print(static_cast<HallSensor*>(device)->getMax());

                                       ^

Hall:13: error: expected '(' before '*' token

Hall:13: error: expected primary-expression before '>' token

    client.print(static_cast<HallSensor*>(device)->getMax());

                                        ^

Hall:19: error: 'HallSensor' does not name a type

    client.print(static_cast<HallSensor*>(device)->getHigherTarget());

                             ^

Hall:19: error: expected '>' before '*' token

    client.print(static_cast<HallSensor*>(device)->getHigherTarget());

                                       ^

Hall:19: error: expected '(' before '*' token

Hall:19: error: expected primary-expression before '>' token

    client.print(static_cast<HallSensor*>(device)->getHigherTarget());

                                        ^

Hall:19: error: 'class Device' has no member named 'getHigherTarget'

    client.print(static_cast<HallSensor*>(device)->getHigherTarget());

                                                   ^

Hall:22: error: 'HallSensor' does not name a type

    client.print(static_cast<HallSensor*>(device)->getUnit());

                             ^

Hall:22: error: expected '>' before '*' token

    client.print(static_cast<HallSensor*>(device)->getUnit());

                                       ^

Hall:22: error: expected '(' before '*' token

Hall:22: error: expected primary-expression before '>' token

    client.print(static_cast<HallSensor*>(device)->getUnit());

                                        ^

Hall:25: error: 'HallSensor' does not name a type

    client.print(static_cast<HallSensor*>(device)->read());

                             ^

Hall:25: error: expected '>' before '*' token

    client.print(static_cast<HallSensor*>(device)->read());

                                       ^

Hall:25: error: expected '(' before '*' token

Hall:25: error: expected primary-expression before '>' token

    client.print(static_cast<HallSensor*>(device)->read());

                                        ^

Hall:28: error: 'HallSensor' does not name a type

    client.print(static_cast<HallSensor*>(device)->getConditionType());

                             ^

Hall:28: error: expected '>' before '*' token

    client.print(static_cast<HallSensor*>(device)->getConditionType());

                                       ^

Hall:28: error: expected '(' before '*' token

Hall:28: error: expected primary-expression before '>' token

    client.print(static_cast<HallSensor*>(device)->getConditionType());

                                        ^

Hall:28: error: 'class Device' has no member named 'getConditionType'

    client.print(static_cast<HallSensor*>(device)->getConditionType());

                                                   ^

Hall:31: error: 'HallSensor' does not name a type

    client.print(static_cast<HallSensor*>(device)->getFormula());

                             ^

Hall:31: error: expected '>' before '*' token

    client.print(static_cast<HallSensor*>(device)->getFormula());

                                       ^

Hall:31: error: expected '(' before '*' token

Hall:31: error: expected primary-expression before '>' token

    client.print(static_cast<HallSensor*>(device)->getFormula());

                                        ^

Hall:31: error: 'class Device' has no member named 'getFormula'

    client.print(static_cast<HallSensor*>(device)->getFormula());

                                                   ^

C:\Users\wdavi\OneDrive\Documents\esp32 vivarium\ESP32\WAAC_ESP32\Hall.ino: In function 'void saveHallSensor(Device*)':

Hall:39: error: 'HallSensor' does not name a type

     static_cast<HallSensor*>(device)->setMin(atof(param_value));

                 ^

Hall:39: error: expected '>' before '*' token

     static_cast<HallSensor*>(device)->setMin(atof(param_value));

                           ^

Hall:39: error: expected '(' before '*' token

Hall:39: error: expected primary-expression before '>' token

     static_cast<HallSensor*>(device)->setMin(atof(param_value));

                            ^

Hall:39: error: expected ')' before ';' token

     static_cast<HallSensor*>(device)->setMin(atof(param_value));

                                                                ^

Hall:43: error: 'HallSensor' does not name a type

     static_cast<HallSensor*>(device)->setMax(atof(param_value));

                 ^

Hall:43: error: expected '>' before '*' token

     static_cast<HallSensor*>(device)->setMax(atof(param_value));

                           ^

Hall:43: error: expected '(' before '*' token

Hall:43: error: expected primary-expression before '>' token

     static_cast<HallSensor*>(device)->setMax(atof(param_value));

                            ^

Hall:43: error: expected ')' before ';' token

     static_cast<HallSensor*>(device)->setMax(atof(param_value));

                                                                ^

Hall:47: error: 'HallSensor' does not name a type

     static_cast<HallSensor*>(device)->setLowerTarget(atof(param_value));

                 ^

Hall:47: error: expected '>' before '*' token

     static_cast<HallSensor*>(device)->setLowerTarget(atof(param_value));

                           ^

Hall:47: error: expected '(' before '*' token

Hall:47: error: expected primary-expression before '>' token

     static_cast<HallSensor*>(device)->setLowerTarget(atof(param_value));

                            ^

Hall:47: error: 'class Device' has no member named 'setLowerTarget'

     static_cast<HallSensor*>(device)->setLowerTarget(atof(param_value));

                                       ^

Hall:47: error: expected ')' before ';' token

     static_cast<HallSensor*>(device)->setLowerTarget(atof(param_value));

                                                                        ^

Hall:51: error: 'HallSensor' does not name a type

     static_cast<HallSensor*>(device)->setHigherTarget(atof(param_value));

                 ^

Hall:51: error: expected '>' before '*' token

     static_cast<HallSensor*>(device)->setHigherTarget(atof(param_value));

                           ^

Hall:51: error: expected '(' before '*' token

Hall:51: error: expected primary-expression before '>' token

     static_cast<HallSensor*>(device)->setHigherTarget(atof(param_value));

                            ^

Hall:51: error: 'class Device' has no member named 'setHigherTarget'

     static_cast<HallSensor*>(device)->setHigherTarget(atof(param_value));

                                       ^

Hall:51: error: expected ')' before ';' token

     static_cast<HallSensor*>(device)->setHigherTarget(atof(param_value));

                                                                         ^

Hall:55: error: 'HallSensor' does not name a type

     static_cast<HallSensor*>(device)->setUnit(param_value);

                 ^

Hall:55: error: expected '>' before '*' token

     static_cast<HallSensor*>(device)->setUnit(param_value);

                           ^

Hall:55: error: expected '(' before '*' token

Hall:55: error: expected primary-expression before '>' token

     static_cast<HallSensor*>(device)->setUnit(param_value);

                            ^

Hall:55: error: expected ')' before ';' token

     static_cast<HallSensor*>(device)->setUnit(param_value);

                                                           ^

Hall:60: error: 'HallSensor' does not name a type

     static_cast<HallSensor*>(device)->setFormula(param_value);

                 ^

Hall:60: error: expected '>' before '*' token

     static_cast<HallSensor*>(device)->setFormula(param_value);

                           ^

Hall:60: error: expected '(' before '*' token

Hall:60: error: expected primary-expression before '>' token

     static_cast<HallSensor*>(device)->setFormula(param_value);

                            ^

Hall:60: error: 'class Device' has no member named 'setFormula'

     static_cast<HallSensor*>(device)->setFormula(param_value);

                                       ^

Hall:60: error: expected ')' before ';' token

     static_cast<HallSensor*>(device)->setFormula(param_value);

                                                              ^

Hall:64: error: 'HallSensor' does not name a type

     static_cast<HallSensor*>(device)->setConditionType(param_value);

                 ^

Hall:64: error: expected '>' before '*' token

     static_cast<HallSensor*>(device)->setConditionType(param_value);

                           ^

Hall:64: error: expected '(' before '*' token

Hall:64: error: expected primary-expression before '>' token

     static_cast<HallSensor*>(device)->setConditionType(param_value);

                            ^

Hall:64: error: 'class Device' has no member named 'setConditionType'

     static_cast<HallSensor*>(device)->setConditionType(param_value);

                                       ^

Hall:64: error: expected ')' before ';' token

     static_cast<HallSensor*>(device)->setConditionType(param_value);

                                                                    ^

C:\Users\wdavi\OneDrive\Documents\esp32 vivarium\ESP32\WAAC_ESP32\Hall.ino: In function 'void createHallSensor()':

Hall:79: error: 'HallSensor' was not declared in this scope

     HallSensor *temp = new HallSensor(param_value, convertPin(tempPin));

     ^

Hall:79: error: 'temp' was not declared in this scope

     HallSensor *temp = new HallSensor(param_value, convertPin(tempPin));

                 ^

Hall:79: error: expected type-specifier before 'HallSensor'

     HallSensor *temp = new HallSensor(param_value, convertPin(tempPin));

                            ^

Hall:84: error: 'HallSensor' does not name a type

     static_cast<HallSensor*>(deviceDelegate.currentDevice())->setup([](){ static_cast<HallSensor*>(deviceDelegate.currentDevice())->rpm(); }, RISING);

                 ^

Hall:84: error: expected '>' before '*' token

     static_cast<HallSensor*>(deviceDelegate.currentDevice())->setup([](){ static_cast<HallSensor*>(deviceDelegate.currentDevice())->rpm(); }, RISING);

                           ^

Hall:84: error: expected '(' before '*' token

Hall:84: error: expected primary-expression before '>' token

     static_cast<HallSensor*>(deviceDelegate.currentDevice())->setup([](){ static_cast<HallSensor*>(deviceDelegate.currentDevice())->rpm(); }, RISING);

                            ^

Hall:84: error: 'class Device' has no member named 'setup'

     static_cast<HallSensor*>(deviceDelegate.currentDevice())->setup([](){ static_cast<HallSensor*>(deviceDelegate.currentDevice())->rpm(); }, RISING);

                                                               ^

C:\Users\wdavi\OneDrive\Documents\esp32 vivarium\ESP32\WAAC_ESP32\Hall.ino: In lambda function:

Hall:84: error: 'HallSensor' does not name a type

     static_cast<HallSensor*>(deviceDelegate.currentDevice())->setup([](){ static_cast<HallSensor*>(deviceDelegate.currentDevice())->rpm(); }, RISING);

                                                                                       ^

Hall:84: error: expected '>' before '*' token

     static_cast<HallSensor*>(deviceDelegate.currentDevice())->setup([](){ static_cast<HallSensor*>(deviceDelegate.currentDevice())->rpm(); }, RISING);

                                                                                                 ^

Hall:84: error: expected '(' before '*' token

Hall:84: error: expected primary-expression before '>' token

     static_cast<HallSensor*>(deviceDelegate.currentDevice())->setup([](){ static_cast<HallSensor*>(deviceDelegate.currentDevice())->rpm(); }, RISING);

                                                                                                  ^

Hall:84: error: 'class Device' has no member named 'rpm'

     static_cast<HallSensor*>(deviceDelegate.currentDevice())->setup([](){ static_cast<HallSensor*>(deviceDelegate.currentDevice())->rpm(); }, RISING);

                                                                                                                                     ^

Hall:84: error: expected ')' before ';' token

     static_cast<HallSensor*>(deviceDelegate.currentDevice())->setup([](){ static_cast<HallSensor*>(deviceDelegate.currentDevice())->rpm(); }, RISING);

                                                                                                                                          ^

C:\Users\wdavi\OneDrive\Documents\esp32 vivarium\ESP32\WAAC_ESP32\Hall.ino: In function 'void createHallSensor()':

Hall:84: error: expected ')' before ';' token

     static_cast<HallSensor*>(deviceDelegate.currentDevice())->setup([](){ static_cast<HallSensor*>(deviceDelegate.currentDevice())->rpm(); }, RISING);

                                                                                                                                                      ^

Hall:97: error: 'HallSensor' does not name a type

     static_cast<HallSensor*>(temp)->setMin(atof(param_value));

                 ^

Hall:97: error: expected '>' before '*' token

     static_cast<HallSensor*>(temp)->setMin(atof(param_value));

                           ^

Hall:97: error: expected '(' before '*' token

Hall:97: error: expected primary-expression before '>' token

     static_cast<HallSensor*>(temp)->setMin(atof(param_value));

                            ^

Hall:97: error: expected ')' before ';' token

     static_cast<HallSensor*>(temp)->setMin(atof(param_value));

                                                              ^

Hall:101: error: 'HallSensor' does not name a type

     static_cast<HallSensor*>(temp)->setMax(atof(param_value));

                 ^

Hall:101: error: expected '>' before '*' token

     static_cast<HallSensor*>(temp)->setMax(atof(param_value));

                           ^

Hall:101: error: expected '(' before '*' token

Hall:101: error: expected primary-expression before '>' token

     static_cast<HallSensor*>(temp)->setMax(atof(param_value));

                            ^

Hall:101: error: expected ')' before ';' token

     static_cast<HallSensor*>(temp)->setMax(atof(param_value));

                                                              ^

Hall:105: error: 'HallSensor' does not name a type

     static_cast<HallSensor*>(temp)->setLowerTarget(atof(param_value));

                 ^

Hall:105: error: expected '>' before '*' token

     static_cast<HallSensor*>(temp)->setLowerTarget(atof(param_value));

                           ^

Hall:105: error: expected '(' before '*' token

Hall:105: error: expected primary-expression before '>' token

     static_cast<HallSensor*>(temp)->setLowerTarget(atof(param_value));

                            ^

Hall:105: error: expected ')' before ';' token

     static_cast<HallSensor*>(temp)->setLowerTarget(atof(param_value));

                                                                      ^

Hall:109: error: 'HallSensor' does not name a type

     static_cast<HallSensor*>(temp)->setHigherTarget(atof(param_value));

                 ^

Hall:109: error: expected '>' before '*' token

     static_cast<HallSensor*>(temp)->setHigherTarget(atof(param_value));

                           ^

Hall:109: error: expected '(' before '*' token

Hall:109: error: expected primary-expression before '>' token

     static_cast<HallSensor*>(temp)->setHigherTarget(atof(param_value));

                            ^

Hall:109: error: expected ')' before ';' token

     static_cast<HallSensor*>(temp)->setHigherTarget(atof(param_value));

                                                                       ^

Hall:113: error: 'HallSensor' does not name a type

     static_cast<HallSensor*>(temp)->setUnit(param_value);

                 ^

Hall:113: error: expected '>' before '*' token

     static_cast<HallSensor*>(temp)->setUnit(param_value);

                           ^

Hall:113: error: expected '(' before '*' token

Hall:113: error: expected primary-expression before '>' token

     static_cast<HallSensor*>(temp)->setUnit(param_value);

                            ^

Hall:113: error: expected ')' before ';' token

     static_cast<HallSensor*>(temp)->setUnit(param_value);

                                                         ^

Hall:118: error: 'HallSensor' does not name a type

     static_cast<HallSensor*>(temp)->setFormula(param_value);

                 ^

Hall:118: error: expected '>' before '*' token

     static_cast<HallSensor*>(temp)->setFormula(param_value);

                           ^

Hall:118: error: expected '(' before '*' token

Hall:118: error: expected primary-expression before '>' token

     static_cast<HallSensor*>(temp)->setFormula(param_value);

                            ^

Hall:118: error: expected ')' before ';' token

     static_cast<HallSensor*>(temp)->setFormula(param_value);

                                                            ^

Hall:122: error: 'HallSensor' does not name a type

     static_cast<HallSensor*>(temp)->setConditionType(param_value);

                 ^

Hall:122: error: expected '>' before '*' token

     static_cast<HallSensor*>(temp)->setConditionType(param_value);

                           ^

Hall:122: error: expected '(' before '*' token

Hall:122: error: expected primary-expression before '>' token

     static_cast<HallSensor*>(temp)->setConditionType(param_value);

                            ^

Hall:122: error: expected ')' before ';' token

     static_cast<HallSensor*>(temp)->setConditionType(param_value);

                                                                  ^

C:\Users\wdavi\OneDrive\Documents\esp32 vivarium\ESP32\WAAC_ESP32\OneWire.ino: In function 'void oneWireAjaxOutput(WiFiClient, Device*)':

OneWire:16: error: 'class OneWireSensor' has no member named 'getLowerTarget'

  client.print(static_cast<OneWireSensor*>(device)->getLowerTarget());

                                                    ^

OneWire:19: error: 'class OneWireSensor' has no member named 'getHigherTarget'

  client.print(static_cast<OneWireSensor*>(device)->getHigherTarget());

                                                    ^

OneWire:28: error: 'class OneWireSensor' has no member named 'getConditionType'

  client.print(static_cast<OneWireSensor*>(device)->getConditionType());

                                                    ^

C:\Users\wdavi\OneDrive\Documents\esp32 vivarium\ESP32\WAAC_ESP32\OneWire.ino: In function 'void saveOneWire(Device*)':

OneWire:44: error: 'class OneWireSensor' has no member named 'setLowerTarget'

     static_cast<OneWireSensor*>(device)->setLowerTarget(atof(param_value));

                                          ^

OneWire:48: error: 'class OneWireSensor' has no member named 'setHigherTarget'

     static_cast<OneWireSensor*>(device)->setHigherTarget(atof(param_value));

                                          ^

OneWire:56: error: 'class OneWireSensor' has no member named 'setConditionType'

     static_cast<OneWireSensor*>(device)->setConditionType(param_value);

                                          ^

C:\Users\wdavi\OneDrive\Documents\esp32 vivarium\ESP32\WAAC_ESP32\OneWire.ino: In function 'void createOneWire()':

OneWire:88: error: 'class OneWireSensor' has no member named 'setLowerTarget'

     static_cast<OneWireSensor*>(temp)->setLowerTarget(atof(param_value));

                                        ^

OneWire:92: error: 'class OneWireSensor' has no member named 'setHigherTarget'

     static_cast<OneWireSensor*>(temp)->setHigherTarget(atof(param_value));

                                        ^

OneWire:100: error: 'class OneWireSensor' has no member named 'setConditionType'

     static_cast<OneWireSensor*>(temp)->setConditionType(param_value);

                                        ^

Multiple libraries were found for "WiFi.h" Used: C:\Users\wdavi\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\libraries\WiFi Not used: C:\Program Files (x86)\Arduino\libraries\WiFi Multiple libraries were found for "SD.h" Used: C:\Users\wdavi\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\libraries\SD Not used: C:\Program Files (x86)\Arduino\libraries\SD Using library WiFi at version 1.0 in folder: C:\Users\wdavi\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\libraries\WiFi Using library SPI at version 1.0 in folder: C:\Users\wdavi\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\libraries\SPI Using library SD at version 1.0.5 in folder: C:\Users\wdavi\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\libraries\SD Using library FS at version 1.0 in folder: C:\Users\wdavi\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\libraries\FS Using library Time at version 1.5 in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\Time Using library Wire at version 1.0.1 in folder: C:\Users\wdavi\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\libraries\Wire Using library Device in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\Device (legacy) Using library Adafruit_PWM_Servo_Driver_Library at version 1.0.2 in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\Adafruit_PWM_Servo_Driver_Library Using library AdaFruitPWM8 in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\AdaFruitPWM8 (legacy) Using library Alert in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\Alert (legacy) Using library DeviceDelegate in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\DeviceDelegate (legacy) Using library Input in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\Input (legacy) Using library InputMCP in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\InputMCP (legacy) Using library Adafruit_MCP23017_Arduino_Library at version 1.0.3 in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\Adafruit_MCP23017_Arduino_Library Using library MCP_helper in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\MCP_helper (legacy) Using library OneWire at version 2.3.3 in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\OneWire Using library OneWireSensor in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\OneWireSensor (legacy) Using library PCA_helper in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\PCA_helper (legacy) Using library PWM4 in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\PWM4 (legacy) Using library rBase64 at version 1.0.0 in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\rBase64 Using library Relay in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\Relay (legacy) Using library RelayMCP in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\RelayMCP (legacy) Using library RelayPCA in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\RelayPCA (legacy) Using library Shunt in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\Shunt (legacy) Using library Video in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\Video (legacy) Using library WebParser in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\WebParser (legacy) Using library WWWsettings in folder: C:\Users\wdavi\OneDrive\Documents\Arduino\libraries\WWWsettings (legacy)

mistergreen commented 5 years ago

Did you put the library files in the libraries folder? Doesn't look like the Arduino IDE see the library files.

waltdavis commented 5 years ago

after reading the errors closer, it might be the link to one drive. i will disable one drive and see if that solves the issue and report back...Thanks again!

waltdavis commented 5 years ago

so i have a partial success. i was able to install by converting to platformIO. after a bit of work that is. now when i run it, i can not connect to web page at ip address in code and I get this error in serial monitor.

......................Connected to wifi IP Address: 192.168.1.177 SUCCESS - Found index.htm file. waiting for sync Transmit NTP Request [E][WiFiUdp.cpp:170] beginPacket(): could not get host from dns: 0 No NTP Response memory 243856

I googled the error but was not able to find anything that made sense to me... btw when i get this to work, it will control 4 bio active tree frog tanks, one for a desert spiny lizard, and two crested gecko . I've made a nice board that contains a wroom-32d module with a mosfet and relay for 8 pins selected by a jumper. The boards works great if I run it on Blynk, but with limited function as i don't want to rely on that platform...Thanks again

mistergreen commented 5 years ago

Glad to hear it's working the error

Transmit NTP Request [E][WiFiUdp.cpp:170] beginPacket(): could not get host from dns: 0 No NTP Response

Is it can't connect to a Network Time Server... I think I used google but you can add another server.

I was playing with platformIO too. If you can post your changes for platformIO for others, that'll be great.

waltdavis commented 5 years ago

I would be happy to post my changes.. would the NTP problem keep me from being able to access the web page to log in? I am really a NOOB with networking and am stumbling my through this. Hardware is my main ability. I added my ssid and passphrase, but left the code unaltered other than that. After upload and a reset of my board, I go to browser and enter 192.168.1.177. all i get is a "cant connect error" from browser. what am i missing?

mistergreen commented 5 years ago

The NPT shouldn't interrupt the web server.

Can you open up an simple example web server script from Arduino? Enter in the necessary WIFI stuff and run that. See if you get the same connection error. Best to test out on a simple script.

waltdavis commented 5 years ago

I have another board with a simple webserver script that I am using to control lights on a tank..it was running this morning. Although it looses connection often and requires a restart. I will run a simple sketch on the board I'm working on and see how that goes. I am waiting for more boards to get back from the board house, but if I need to I can use a dev. Board. If it will run a simple webserver any idea on where I could go next?

After running this code through Platformio, I will never use arduino IDE again. Platform is much faster at uploads, and writing code seems easier...

mistergreen commented 5 years ago

Import the simple web server to platformIO and run it from there too. I would say if your board can run a simple web server without connection loses, it can run WAAC. A good board shouldn't lose connections unless you turn it off.

Also try putting your board close to the WIFI router. It could be some interference issue.

waltdavis commented 5 years ago

So i finally got it to run,,,the solution was simple, change the ip address, i used the one the the simple web server provided and change that in the WAAC code. ran first try! however the NTP time service is still down. ive tryed changing it via web interface, but still no luck...is there a better place to change the server in the code?

waltdavis commented 5 years ago

it appears that im working on locan network with no access to internet for time server?

waltdavis commented 5 years ago

also, is there a reason i have to set up all devices each time i load the web page?

mistergreen commented 5 years ago

it appears that im working on locan network with no access to internet for time server?

Oh, can you surf the internet on your network? The Time Server is on the internet.

also, is there a reason i have to set up all devices each time i load the web page?

The board must have reseted, lost power, or crashed. When that happens, all the settings in memory is lost.

waltdavis commented 5 years ago

yes i can access the internet on my network, so the current settings are not stored? then if a reset is needed then you must set up the web page again?. would there be a good way to save the setting is spiffs if needed? i can work with it without saving, but cant use times without time server. im still a little lost in this code!

mistergreen commented 5 years ago

I was going to make a way to save the settings to a text file on the SD card and restore on reset but it was too time consuming. I might revisit that if I have time. It's just tedious work. You can hard code your devices into the code in the Setup() function by instantiating the Classes and pass in the parameters as well. So that way, on restart, it would create the settings but you need to know the code pretty well by reading what each class needs as parameters.

On the time server, you should be able to change in the settings page but it you need to find the code for it it's in WAAC/ESP32/libraries/WWWsettings/WWWsettings.cpp line 23: strcpy(NTPServer, "time.google.com"); //defaul NTP

waltdavis commented 5 years ago

so after playing around with this foe a week or so, its a pretty amazing piece of work. How much would it take to be able to save all settings from web page to spiffs? that way if a reset is needed or if you wanted to run your vivarium off line you could...i imagine that if a heater was on, and you lost network access for whatever reason, then the function to turn off heater at ? time or ? temp would not work. so over heating is a possibility. or imagine a mist pump...could flood a tank... or am i not seeing this right? so if the settings were stored in spiffs. then it would have all the info to keep running if a connection dropped...Again, I'm not a code guy, but I'm learning ...slowly through...

mistergreen commented 5 years ago

Cool, glad it's working.. So you got the Network time to work? The controller would still work with no network. The clocks and timers are still running. You just can't log into the webpage.It only loses the settings when you lose power. You can create a backup battery power for that.

I can save the settings to the SD card, or whatever (spiffs). It has to be formatted a specific way to work. When I have time I might work on that.

asasi83 commented 5 years ago

Hi, all I want to say that this is a great project especially when you see how much time and effort took to create this!!! I want to share some issues that I had when I was trying to compile this. I had the same issue as waltdavis... in "Analog.cpp" and "HallSensor.cpp" there is include "shunt.h" but it should be "Shunt.h" compiler output is not helpful at all, took me a while to see the "s", "S" :) Also if you get SD card error include "FS.h" I was always getting "ERROR - SD card initialization failed!" And last one if you still cant compile switch to Linux :)