Sterowanie przekaźnikiem i wysyłanie po serialu

jaku2k
Posts: 831
Joined: Sun May 24, 2020 8:40 pm

Post

Dzień dobry,
chciałbym wysyłać odpowiednie dane portem szeregowym w zależności od ustawionego w aplikacji stanu przekaźnika (np. aby z włączenia kanału przekaźnika w aplikacji wynikało Serial.write(131), a wyłączenia - Serial.write(132)).

Czy istnieje możliwość wykonania takiej zależności?
Last edited by jaku2k on Fri Sep 24, 2021 8:28 pm, edited 1 time in total.
Pozdrawiam
Jakub
User avatar
lukfud
Posts: 2101
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa

Post

jaku2k wrote: Thu Sep 23, 2021 8:37 pm Dzień dobry,
chciałbym wysyłać odpowiednie dane portem szeregowym w zależności od ustawionego w aplikacji stanu przekaźnika (np. aby z włączenia kanału przekaźnika w aplikacji wynikało Serial.write(131), a wyłączenia - Serial.write(132)).
Czy istnieje możliwość wykonania takiej zależności?
Tak, dodajesz klasę swoich akcji,

Code: Select all

enum addedActions {myON, myOFF};
class addedActionsClass : public Supla::ActionHandler {
  public: addedActionsClass(){};
  void handleAction(int event, int action) {
    if (action == myON {
      Serial.write(131);
    }
    if (action == myOFF {
      Serial.write(132);
    }
  }
};
addedActionsClass *custAct = new addedActionsClass;
Potem w setup,

Code: Select all

relay->addAction(myON, custAct, Supla::ON_TURN_ON);
relay->addAction(myOFF, custAct, Supla::ON_TURN_OFF);
https://www.facebook.com/groups/supladiy/
bigthomas
Posts: 234
Joined: Mon Aug 12, 2019 3:35 pm

Post

A jeśli chciałbym odwrotnie ... czyli po otrzymaniu komendy na serialu np. poprzez radio RF to wtedy wyglądało by to tak:

Code: Select all

enum addedActions {myON, myOFF};
class addedActionsClass : public Supla::ActionHandler {
  public: addedActionsClass(){};
  void handleAction(int event, int action) {
	if (Serial.readString == "myON") {
	    action == myON;
	}  
	if (Serial.readString == "myOFF") {
	   action == myOFF;
	} 
  }
};
addedActionsClass *custAct = new addedActionsClass;
User avatar
lukfud
Posts: 2101
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa

Post

bigthomas wrote: Fri Sep 24, 2021 5:33 pm A jeśli chciałbym odwrotnie ... czyli po otrzymaniu komendy na serialu np. poprzez radio RF to wtedy wyglądało by to tak:

Code: Select all

enum addedActions {myON, myOFF};
class addedActionsClass : public Supla::ActionHandler {
  public: addedActionsClass(){};
  void handleAction(int event, int action) {
	if (Serial.readString == "myON") {
	    action == myON;
	}  
	if (Serial.readString == "myOFF") {
	   action == myOFF;
	} 
  }
};
addedActionsClass *custAct = new addedActionsClass;
Nie, dodatkowa klasa nie będzie wtedy potrzebna

Code: Select all

if (Serial.readString == "jakisString") {
  relay->turnOn();
} 
https://www.facebook.com/groups/supladiy/

Return to “Arduino IDE”