Buongiorno a tutti.
Sto cercando di definire una classe da usare su Arduino per utilizzare un oggetto encoder MORSE (gli passo un carattere e mi restituisce una codifica di punti e linee contenute in un vettore di interi)
Lo so che potrei tranquillamente usare una funzione senza scomodare le classi ma devo usare le classi per creare encoder e decoder...
Il file .h della classe è il seguente
#ifndef MORSE_h
#define MORSE_h
#include <Arduino.h>
class MORSE {
private:
int buzzerPin;
int ledPin;
boolean encodeStatus;
boolean decodeStatus;
boolean useLedStatus;
boolean useBuzzerStatus;
boolean useLocalTransmitter;
boolean useSerialMonitor;
boolean useWifiStatus;
uint8_t codificaMorse[7];
uint8_t carattereDecodificato;
//boolean sendMorseChar (char c, boolean useLocal, boolean useSerial, boolean useWifi);
boolean sendMorseChar (char c, boolean useLocal, boolean useSerial);
boolean sendMorseChar (char c, boolean useLocal);
public:
MORSE();
MORSE(uint8_t buzzerPin);
MORSE(uint8_t buzzerPin, uint8_t ledPin);
MORSE(boolean encode);
MORSE(boolean encode, uint8_t buzzerPin);
MORSE(boolean encode, uint8_t buzzerPin, uint8_t ledPin);
MORSE(boolean encode, boolean decode);
MORSE(boolean encode, boolean decode, uint8_t buzzerPin);
MORSE(boolean encode, boolean decode, uint8_t buzzerPin, uint8_t ledPin);
boolean useSerial(boolean status);
boolean useLocal(boolean status);
//boolean useWifi(boolean status);
uint8_t * encode (char c);
char decode (uint8_t * encodedMorseChar);
boolean sendMorseChar (char c);
};
#endif
Questo invece è il file .cpp
#include "MORSE.h"
MORSE::MORSE(){...}
.....
MORSE::useSerial(boolean status){
if (status) {
Serial.begin(9600);
if (Serial){
this->useSerialMonitor=true;
return true;
} else {
this->useSerialMonitor=false;
return false;
}
} else {
Serial.end();
if (!Serial){
this->useSerialMonitor=false;
return true;
} else {
this->useSerialMonitor=false;
return false;
}
}
}
...
Se provo a compilare ricevo un errore che non capisco, precisamente il seguente:
error: prototype for 'int MORSE::useSerial(boolean)' does not match any in class 'MORSE'
MORSE::useSerial(boolean status){
^~~~~
Nel file .h la funzione useSerial io l'ho definita booleana, perchè mi genera un errore dicendo che il prototipo è una intera? Se provo a metterla void mi torna lo stesso errore. Non capisco dove sbaglio.
Qualcuno sarebbe così gentile da indirizzarmi?
Grazie a tutti.
Clemente