Skip to content

Commit

Permalink
- Support up to 5 Relais
Browse files Browse the repository at this point in the history
- Add Watchdog with automatic reconnect after 3s
- Changed communication protocol
- Updated Arduino Sketch
- Fixed problem with Arduino starting up in Flash Mode
- Increased version number
  • Loading branch information
alexmucde committed Jul 9, 2021
1 parent 48437a3 commit 0adf0a5
Show file tree
Hide file tree
Showing 9 changed files with 514 additions and 160 deletions.
129 changes: 91 additions & 38 deletions arduino/DLTRelais/DLTRelais.ino
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@ WLed led;
WRelais relais1(D1);
WRelais relais2(D2);
WRelais relais3(D6);
WRelais relais4(D7);
WRelais relais5(D8);
WSerial serial;
WTimer timer;

void setup()
{
Expand All @@ -18,13 +21,38 @@ void setup()
relais1.setup();
relais2.setup();
relais3.setup();
relais4.setup();
relais5.setup();
timer.setup();
timer.start(1000);
relais1.off();
relais2.off();
relais3.off();
relais4.off();
relais5.off();

Serial.println("R10");
Serial.println("R20");
Serial.println("R30");
Serial.println("R40");
Serial.println("R50");
}

void loop()
{
relais1.loop();
relais2.loop();
relais3.loop();
relais4.loop();
relais5.loop();

switch(timer.event())
{
case WTimer::Expired:
Serial.println("WD");
timer.start(1000);
break;
}

switch(button.event())
{
Expand All @@ -33,9 +61,14 @@ void loop()
break;
case WButton::ShortPress:
relais1.trigger(500);
Serial.println("R1T");
break;
case WButton::LongPress:
relais2.toggle();
if(relais2.isOn())
Serial.println("R21");
else
Serial.println("R20");
break;
case WButton::Released:
led.off();
Expand All @@ -44,57 +77,77 @@ void loop()

switch(serial.event())
{
case WSerial::Connected:
if(relais1.isOn())
Serial.println("R11");
else
Serial.println("R10");
if(relais2.isOn())
Serial.println("R21");
else
Serial.println("R20");
if(relais3.isOn())
Serial.println("R31");
else
Serial.println("R30");
if(relais4.isOn())
Serial.println("R41");
else
Serial.println("R40");
if(relais5.isOn())
Serial.println("R51");
else
Serial.println("R50");
break;
case WSerial::Disconnected:
break;
case WSerial::Line:
String text = serial.line();
if(text[0]=='D')
if(text[0]=='R')
{
if(text[1]=='1')
{
if(text[1]>='1' || text[1]<='5')
{
if(text[2]=='0')
{
relais1.off();
if(text[1]=='1')
relais1.off();
else if(text[1]=='2')
relais2.off();
else if(text[1]=='3')
relais3.off();
else if(text[1]=='4')
relais4.off();
else if(text[1]=='5')
relais5.off();
}
else if(text[2]=='1')
{
relais1.on();
if(text[1]=='1')
relais1.on();
else if(text[1]=='2')
relais2.on();
else if(text[1]=='3')
relais3.on();
else if(text[1]=='4')
relais4.on();
else if(text[1]=='5')
relais5.on();
}
else if(text[2]=='T')
{
relais1.trigger(500);
}
if(text[1]=='1')
relais1.trigger(500);
else if(text[1]=='2')
relais2.trigger(500);
else if(text[1]=='3')
relais3.trigger(500);
else if(text[1]=='4')
relais4.trigger(500);
else if(text[1]=='5')
relais5.trigger(500); }
}
if(text[1]=='2')
{
if(text[2]=='0')
{
relais2.off();
}
else if(text[2]=='1')
{
relais2.on();
}
else if(text[2]=='T')
{
relais2.trigger(500);
}
}
if(text[1]=='6')
{
if(text[2]=='0')
{
relais3.off();
}
else if(text[2]=='1')
{
relais3.on();
}
else if(text[2]=='T')
{
relais3.trigger(500);
}
}
}
break;
}

}
}
115 changes: 107 additions & 8 deletions dialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@ void Dialog::restoreSettings()
ui->lineEditRelaisName1->setText(dltRelais.getRelaisName(1));
ui->lineEditRelaisName2->setText(dltRelais.getRelaisName(2));
ui->lineEditRelaisName3->setText(dltRelais.getRelaisName(3));
ui->lineEditRelaisName4->setText(dltRelais.getRelaisName(4));
ui->lineEditRelaisName5->setText(dltRelais.getRelaisName(5));

}

Expand Down Expand Up @@ -109,25 +111,80 @@ void Dialog::on_pushButtonStop_clicked()

void Dialog::statusRelais(QString text)
{
ui->lineEditStatus->setText(text);

if(text == "" || text == "stopped")
if(text=="R10\r\n")
{
ui->checkBoxRelais1->setChecked(false);
return;
}
else if(text=="R11\r\n")
{
ui->checkBoxRelais1->setChecked(true);
return;
}
else if(text=="R1T\r\n")
{
return;
}
else if(text=="R20\r\n")
{
ui->checkBoxRelais2->setChecked(false);
return;
}
else if(text=="R21\r\n")
{
ui->checkBoxRelais2->setChecked(true);
return;
}
else if(text=="R30\r\n")
{
ui->checkBoxRelais3->setChecked(false);
return;
}
else if(text=="R31\r\n")
{
ui->checkBoxRelais3->setChecked(true);
return;
}
else if(text=="R40\r\n")
{
ui->checkBoxRelais4->setChecked(false);
return;
}
else if(text=="R41\r\n")
{
ui->checkBoxRelais4->setChecked(true);
return;
}
else if(text=="R50\r\n")
{
ui->checkBoxRelais5->setChecked(false);
return;
}
else if(text=="R51\r\n")
{
ui->checkBoxRelais5->setChecked(true);
return;
}
else if(text == "" || text == "stopped")
{
QPalette palette;
palette.setColor(QPalette::Base,Qt::white);
ui->lineEditStatus->setPalette(palette);
ui->lineEditStatus->setText(text);
}
if(text == "started")
else if(text == "started")
{
QPalette palette;
palette.setColor(QPalette::Base,Qt::green);
ui->lineEditStatus->setPalette(palette);
ui->lineEditStatus->setText(text);
}
if(text == "error")
else if(text == "error")
{
QPalette palette;
palette.setColor(QPalette::Base,Qt::red);
ui->lineEditStatus->setPalette(palette);
ui->lineEditStatus->setText(text);
}
}

Expand All @@ -141,19 +198,19 @@ void Dialog::statusDlt(QString text)
palette.setColor(QPalette::Base,Qt::white);
ui->lineEditStatusDLT->setPalette(palette);
}
if(text == "listening")
else if(text == "listening")
{
QPalette palette;
palette.setColor(QPalette::Base,Qt::yellow);
ui->lineEditStatusDLT->setPalette(palette);
}
if(text == "connected")
else if(text == "connected")
{
QPalette palette;
palette.setColor(QPalette::Base,Qt::green);
ui->lineEditStatusDLT->setPalette(palette);
}
if(text == "error")
else if(text == "error")
{
QPalette palette;
palette.setColor(QPalette::Base,Qt::red);
Expand Down Expand Up @@ -224,6 +281,47 @@ void Dialog::on_pushButtonRelais3Trigger_clicked()
dltMiniServer.sendValue2(dltRelais.getRelaisName(3),"Trigger");
}

void Dialog::on_pushButtonRelais4Trigger_clicked()
{
dltRelais.trigger(4);
ui->checkBoxRelais4->setChecked(false);
dltMiniServer.sendValue2(dltRelais.getRelaisName(4),"Trigger");
}

void Dialog::on_pushButtonRelais5Trigger_clicked()
{
dltRelais.trigger(5);
ui->checkBoxRelais5->setChecked(false);
dltMiniServer.sendValue2(dltRelais.getRelaisName(5),"Trigger");
}

void Dialog::on_checkBoxRelais4_clicked(bool checked)
{
if(checked)
{
dltRelais.on(4);
dltMiniServer.sendValue2(dltRelais.getRelaisName(4),"On");
}
else
{
dltRelais.off(4);
dltMiniServer.sendValue2(dltRelais.getRelaisName(4),"Off");
}
}

void Dialog::on_checkBoxRelais5_clicked(bool checked)
{
if(checked)
{
dltRelais.on(5);
dltMiniServer.sendValue2(dltRelais.getRelaisName(5),"On");
}
else
{
dltRelais.off(5);
dltMiniServer.sendValue2(dltRelais.getRelaisName(5),"Off");
}
}
void Dialog::on_pushButtonDefaultSettings_clicked()
{
dltRelais.clearSettings();
Expand Down Expand Up @@ -315,3 +413,4 @@ void Dialog::on_pushButtonInfo_clicked()

msgBox.exec();
}

8 changes: 8 additions & 0 deletions dialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,14 @@ private slots:
void on_pushButtonStart_clicked();
void on_pushButtonStop_clicked();

void on_pushButtonRelais4Trigger_clicked();

void on_pushButtonRelais5Trigger_clicked();

void on_checkBoxRelais4_clicked(bool checked);

void on_checkBoxRelais5_clicked(bool checked);

private:
Ui::Dialog *ui;

Expand Down
Loading

0 comments on commit 0adf0a5

Please sign in to comment.