MySensors 1.5.2 Released
-
Whell a sketch used to compile just fine using 1.5 but now I get:
In file included from (sketch file) MultiTemp.ino:39:
(personal library file) MySensors/MySensor.h:158:70: error: unknown type name 'MyHwDriver'
MySensor(MyTransport &radio =*new MyTransportNRF24(), MyHw &hw=*new MyHwDriver()
^
(sketch file) MultiTemp.ino:71:10: error: redefinition of 'transport' with a different type: 'MySensor' vs 'MyTransportNRF24'
MySensor(transport);
^
(sketch file) MultiTemp.ino:69:18: note: previous definition is here
MyTransportNRF24 transport(RF24_CE_PIN, RF24_CS_PIN, RF24_PA_LEVEL); -
Btw, I just upload the MySensor folder from the library as a .zip to codebender. Do I need anything outside this folder?
-
Tried to get the Lib again but it does not seem to be any different:
Trying to compile the sketch (coodiebender.something/sketch:213307) unchanged results in this:
In file included from (sketch file) MultiTemp.ino:35: (personal library file) MySensors/MySensor.h:158:70: error: unknown type name 'MyHwDriver' MySensor(MyTransport &radio =*new MyTransportNRF24(), MyHw &hw=*new MyHwDriver() ^ (sketch file) MultiTemp.ino:63:10: error: no matching constructor for initialization of 'MySensor' MySensor gw(transport);So I remove the "gw" but it stil complains:
(personal library file) MySensors/MySensor.h:158:70: error: unknown type name 'MyHwDriver' MySensor(MyTransport &radio =*new MyTransportNRF24(), MyHw &hw=*new MyHwDriver() ^ (sketch file) MultiTemp.ino:63:11: error: redefinition of 'transport' with a different type: 'MySensor' vs 'MyTransportNRF24' MySensor (transport);I'm just not doing it right that is all, but how should it be done?
-
Have you looked at one of the existing examples as a reference? For example the DallasTemperatureSensor.ino
-
The examples do not include a transport definition
-
Is there "SOMETHING" missing like this??
MySensor gw(transport, SOMETHING);candidate constructor not viable: requires 2 arguments, but 1 was provided MySensor(MyTransport &radio =*new MyTransportNRF24(), MyHw &hw=*new MyHwDriver()How do I define "MyHwDriver"??
-
Thanks for the example @Anticimex now I know how but it is stil not working when using codebender.
(personal library file) MySensors/MySensor.h:158:70: error: unknown type name 'MyHwDriver' MySensor(MyTransport &radio =*new MyTransportNRF24(), MyHw &hw=*new MyHwDriver() ^ (sketch file) MultiTemp.ino:66:1: error: unknown type name 'MyHwATMega328' MyHwATMega328 hw; // Select AtMega328 hardware profileI tested now with Arduino IDE 1.6.5 and my sketch compiles just fine.
-
Sorry, I am not very familiar with codebender. It looks to me that the library you try to build with is very out if date if it lacks those hw definitions. I don't know how the library ends up at codebender. Perhaps @hek has some communication with them to support it.
-
Hello,
I tried to compile with 1.5.2 and got these errors:
/Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp: In member function 'boolean MySensor::sendRoute(MyMessage&)': /Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp:27:25: error: '_doSign' was not declared in this scope #define DO_SIGN(node) (~_doSign[node>>3]&(1<<(node%8))) ^ /Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp:356:6: note: in expansion of macro 'DO_SIGN' if (DO_SIGN(message.destination) && message.sender == nc.nodeId && !mGetAck(message) && mGetLength(message) && ^ /Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp: In member function 'boolean MySensor::process()': /Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp:28:25: error: '_doSign' was not declared in this scope #define SET_SIGN(node) (_doSign[node>>3]&=~(1<<(node%8))) ^ /Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp:670:6: note: in expansion of macro 'SET_SIGN' SET_SIGN(msg.sender); ^ /Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp:29:27: error: '_doSign' was not declared in this scope #define CLEAR_SIGN(node) (_doSign[node>>3]|=(1<<(node%8))) ^ /Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp:673:6: note: in expansion of macro 'CLEAR_SIGN' CLEAR_SIGN(msg.sender); ^ /Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp:27:25: error: '_doSign' was not declared in this scope #define DO_SIGN(node) (~_doSign[node>>3]&(1<<(node%8))) ^ /Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp:682:40: note: in expansion of macro 'DO_SIGN' if (signer.requestSignatures() && DO_SIGN(msg.sender)) ^ Erreur lors de la compilation.No compilation issue with 1.5. And everything is working perfectly.
David.
-
Hello,
I tried to compile with 1.5.2 and got these errors:
/Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp: In member function 'boolean MySensor::sendRoute(MyMessage&)': /Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp:27:25: error: '_doSign' was not declared in this scope #define DO_SIGN(node) (~_doSign[node>>3]&(1<<(node%8))) ^ /Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp:356:6: note: in expansion of macro 'DO_SIGN' if (DO_SIGN(message.destination) && message.sender == nc.nodeId && !mGetAck(message) && mGetLength(message) && ^ /Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp: In member function 'boolean MySensor::process()': /Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp:28:25: error: '_doSign' was not declared in this scope #define SET_SIGN(node) (_doSign[node>>3]&=~(1<<(node%8))) ^ /Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp:670:6: note: in expansion of macro 'SET_SIGN' SET_SIGN(msg.sender); ^ /Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp:29:27: error: '_doSign' was not declared in this scope #define CLEAR_SIGN(node) (_doSign[node>>3]|=(1<<(node%8))) ^ /Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp:673:6: note: in expansion of macro 'CLEAR_SIGN' CLEAR_SIGN(msg.sender); ^ /Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp:27:25: error: '_doSign' was not declared in this scope #define DO_SIGN(node) (~_doSign[node>>3]&(1<<(node%8))) ^ /Users/carlierd/Arduino/libraries/MySensors/MySensor.cpp:682:40: note: in expansion of macro 'DO_SIGN' if (signer.requestSignatures() && DO_SIGN(msg.sender)) ^ Erreur lors de la compilation.No compilation issue with 1.5. And everything is working perfectly.
David.
-
@carlierd I found a problem there. I have to make a new release. Sorry for the inconvenience!
@Anticimex No problem !! Thanks for the support :)
-
@Anticimex
Yes, I'll have to update the codebender library manually.@hek said:
@Anticimex
Yes, I'll have to update the codebender library manually.I have uploaded 1.5.2 library as a Personal Library in codebender. I have not had any trouble doing this before. Just tried 1.5.3 but I get the same error.
-
Is there "SOMETHING" missing like this??
MySensor gw(transport, SOMETHING);candidate constructor not viable: requires 2 arguments, but 1 was provided MySensor(MyTransport &radio =*new MyTransportNRF24(), MyHw &hw=*new MyHwDriver()How do I define "MyHwDriver"??
candidate constructor not viable: requires 2 arguments, but 1 was provided MySensor(MyTransport &radio =*new MyTransportNRF24(), MyHw &hw=*new MyHwDriver()Weird it finds the MySensors constructor, it has a default value (MyHwDriver) but doesn't use it. Darn compilers.
-
And you have selected a atmega328-based target when you build?
-
candidate constructor not viable: requires 2 arguments, but 1 was provided MySensor(MyTransport &radio =*new MyTransportNRF24(), MyHw &hw=*new MyHwDriver()Weird it finds the MySensors constructor, it has a default value (MyHwDriver) but doesn't use it. Darn compilers.
@hek said:
Weird it finds the MySensors constructor, it has a default value (MyHwDriver) but doesn't use it. Darn compilers.
I take it you have managed to reproduce the situation or do you need some more information from me?
@Anticimex said:
And you have selected a atmega328-based target when you build?
Yes, I have an "Arduino Pro Mini 5V 16MHz w/ ATmega328" selected when compiling.