Dostęp do zmiennych w klasie

Awatar użytkownika
shimano73
Posty: 1968
Rejestracja: ndz lut 28, 2016 12:27 pm
Lokalizacja: Orzesze
Kontakt:

Koledzy z racji braku wiedzy proszę o pomoc .
Jest klasa Pluviometer, która ma zdefiniowana zmienną

Kod: Zaznacz cały

 bool reset 
:

Kod: Zaznacz cały

 
 class Pluviometer: public Element {
 public:
  Pluviometer(int pinRain, double rain_factory);  

  static double _currentRainCount;   
  friend void serviceInterruptRain();
  virtual double getValue() ;
  bool reset;
  void iterateAlways();
  void onInit();	


 protected:
	Channel *getChannel() {
		return &channel;
	}
	Channel channel;
	int _pinRain; 	
	double _rain_factory;
	unsigned long lastReadTime;
};
 
w sekcji setup mam zadeklarowane :

Kod: Zaznacz cały


 Supla::Sensor::Pluviometer *Pluvio = new Supla::Sensor::Pluviometer(ConfigESP->getGpio(FUNCTION_PLUVIOMETER),ConfigManager->get(KEY_PLUVIOMETER_FACTORY)->getValueDouble());  
     Pluvio->reset=0;
     
 


Niestety gdy w sekcji "loop" wstawię

Kod: Zaznacz cały

	 Pluvio->reset=1;
Wali błędem

Kod: Zaznacz cały

'Pluvio' was not declared in this scope


Jak to ugryść ? Szukam w necie ale nie potrafię nic znaleść
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
vajera
Posty: 387
Rejestracja: śr paź 31, 2018 7:58 am

Pluvio jest zmienną lokalną widoczną tylko w metodzie setup - musisz ją zadeklarować jako globalną.
krycha88
Posty: 5187
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

Musisz Supla::Sensor::Pluviometer *Pluvio wyrzuć za sekcję setup aby był globalny. Czyli coś takiego:

Kod: Zaznacz cały

Supla::Sensor::Pluviometer *pluvio;

setup() {
pluvio = new Supla::Sensor::Pluviometer(ConfigESP->getGpio(FUNCTION_PLUVIOMETER),ConfigManager->get(KEY_PLUVIOMETER_FACTORY)->getValueDouble()); 
}
Ale złym zwyczajem jest odwoływać się w taki sposób do zmiennej. Dodaj w tej klasie Pluviometer metody:

Kod: Zaznacz cały

bool getReset() {
return reset;
}

void setReset(bool value) {
reset = value;
}
i wtedy odwołujesz się

Kod: Zaznacz cały

pluvio->getReset();
pluvio->setReset(1);
https://gui-generic-builder.supla.io/
Awatar użytkownika
Goral64
Posty: 3131
Rejestracja: pt gru 27, 2019 6:22 pm
Lokalizacja: Żerniki Wrocławskie
Kontakt:

Dla zmiennej typu bool można użyć

Kod: Zaznacz cały

bool isReset() {
  return reset;
}
Widzimy się na Supla Offline Party Season 2 :D

Obrazek
Awatar użytkownika
QLQ
Posty: 2276
Rejestracja: ndz wrz 03, 2017 9:13 am
Lokalizacja: Koszalin

Budujesz deszczomierz inny niż kołyskowy?
jak coś nie działa to włącz zasilanie.....
Awatar użytkownika
shimano73
Posty: 1968
Rejestracja: ndz lut 28, 2016 12:27 pm
Lokalizacja: Orzesze
Kontakt:

QLQ pisze: ndz lis 07, 2021 4:50 pm Budujesz deszczomierz inny niż kołyskowy?
Kołyskowy na nowej bibliotece z wykorzystaniem GUI Generic
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
ODPOWIEDZ

Wróć do „Arduino IDE”