Problemi nell'utilizzo di stringhe in librerie esterne
salve tutti, in questi giorni ho tentato di creare una libreria per arduino che non fa' altro che dare dei valori dei sensori fittizi, e avente un metodo che crea una stringa con dentro tutti valori.. e qui il problema! perché se uso questo metodo in un loop non fa assolutamente nulla.
codice header "sensori.h":
questo il codice vero e proprio "sensori.cpp":
ed infine lo sketch per arduino:
il risultato è solo una riga di monitor con scritto "inizializzazione" e poi il nulla più totale..
avete dei suggerimenti per creare una stringa con tutti valori nella libreria?
codice header "sensori.h":
code: [select]
#ifndef sensori_h_
#define sensori_h_
#include <arduino.h>
class sensori {
//sensori da leggere
float light;
int humidity;
int pressure;
float temperature;
float altitude;
bool rain;
static int cont;
public:
sensori();
static int getcont();
string getsensori();
string gettemperatures();
string getaltitudes();
string getlights();
};
#endif /* sensori_h_ */
questo il codice vero e proprio "sensori.cpp":
code: [select]
#include "sensori.h"
#include <arduino.h>
int sensori::cont = 0;
sensori::sensori() {
temperature=20+cont;
light=12+cont;
humidity=3+cont;
pressure=1000+cont;
altitude=120+cont;
rain= (cont%2)==0 ? true : false;
cont++;
}
string sensori::gettemperatures(){
char tmp[5];
return dtostrf(temperature, 2, 1, tmp);
}
string sensori::getaltitudes(){
char tmp[5];
return dtostrf(altitude, 2, 1, tmp);
}
string sensori::getlights(){
char tmp[5];
return dtostrf(light, 2, 1, tmp);
}
string sensori::getsensori(){
string s = "temp=";
s+=gettemperatures();
s+=" lum=";
s+=getlights();
s+=" hum=";
s+=humidity;
s+=" pres=";
s+=pressure;
s+=" alt=";
s+=getaltitudes();
s+=" rain=";
s+=rain;
return s;
}
int sensori::getcont(){
return cont;
}
ed infine lo sketch per arduino:
code: [select]
#include "sensori.h"
void setup()
{
serial.begin(9600); //stabilisco una connessione con il pc
serial.println("inizializzazione");
delay(1000);
}
void loop()
{
sensori obj;
serial.println(obj.getsensori());
delay(3000);
}
il risultato è solo una riga di monitor con scritto "inizializzazione" e poi il nulla più totale..
avete dei suggerimenti per creare una stringa con tutti valori nella libreria?
ti invitiamo presentarti qui: http://forum.arduino.cc/index.php?topic=113640.0
e leggere il regolamento: http://forum.arduino.cc/index.php?topic=149082.0
- qui una serie di schede xxxpighi per collegamenti elettronici vari: http://forum.arduino.cc/index.php?topic=146152.0
- qui le pinout delle varie schede xxxpighi: http://forum.arduino.cc/index.php?topic=151646.0
- qui una serie di link utili: http://forum.arduino.cc/index.php?topic=126861.0
e leggere il regolamento: http://forum.arduino.cc/index.php?topic=149082.0
- qui una serie di schede xxxpighi per collegamenti elettronici vari: http://forum.arduino.cc/index.php?topic=146152.0
- qui le pinout delle varie schede xxxpighi: http://forum.arduino.cc/index.php?topic=151646.0
- qui una serie di link utili: http://forum.arduino.cc/index.php?topic=126861.0
Arduino Forum > International > Italiano > Software (Moderator: leo72) > Problemi nell'utilizzo di stringhe in librerie esterne
arduino
Comments
Post a Comment