Quellcode des uController-Programms:

Arduino-File zum DOWNLOAD


//Dieses Prgramm ist für einen Feather Huzzah ESP8266 Controller entworfen.

//Es wird vom Controller ein Webserver aufgebaut, auf dem verschiedene Buttons erstellt werden.

//Durch das betätigen der Buttons kann ein Schrittmotor-Set "Daypower" angesteuert werden, welches

//den Schlitten einer Kameraschine antreibt. Der Nutzer muss sich dafür mit dem von Controller erstellten

//Hotsopt "KaSchi" verbinden und im Browser die IP-Adresse "192.168.4.1" öffnen. Hierbei ist es esgal, auf welcher

//Plattform dies geschieht.

//

//

// Authoren: Clemens Greiner, Dominik Brosi

// Datum: 02.11.2016

 

 

 

#include <ESP8266WiFi.h>

#include <ESP8266WebServer.h>

 

 

//Erstellen von HTML- Buttons, die bei Betätigung etsprechende Events auslösen.

 

//Alle Buttons haben das selbe Aufbauprinzip, bestehend aus 3 Strings, welche

//Form und Aussehen bestimme. Beispielhaft wird die Erzeugung eines Buttons kommentiert.

 

//+++++++++++++++ Taster Linkslauf+++++++++++++++++++++++++

String html1 = "<!DOCTYPE html>\r\n<html>\r\n\                                                                                 //HTML Objekt soll erstellt werden

<head>\r\n<meta content=\"text/html; charset=ISO-8859-1\" http-equiv=\"content-type\">\r\n\                                    //initialisieren

<title>WebSchalter</title>\r\n\                                                                                                //

<form action=\"";                                                                                                              //

String html2 = "\">\r\n<input value=\"Linkslauf\" style=\"";                                                                   // Name des Buttons, über den auch kontrolliert wird, ob dieser aktiviert ist oder nicht. 

String html3 = " position: absolute; width:10em;height:5em; top: 10px; left: 50px; font-size: 40px;\" type=\"submit\">\        // Position,               Breite,Höhe,....festlegen.

</form>\r\n</head>\r\n<body>\r\n</body>\r\n</html>";                                                                           //Abschluss

 

 

//+++++++++++++++ Taster Rechtslauf+++++++++++++++++++++++++

String html4 = "<!DOCTYPE html>\r\n<html>\r\n\

<head>\r\n<meta content=\"text/html; charset=ISO-8859-1\" http-equiv=\"content-type\">\r\n\

<title>WebSchalter</title>\r\n\

<form action=\"";

String html5 = "\"><input value=\"Rechtslauf\" style=\"";

String html6 = " position: absolute; width:10em;height:5em; top: 10px; left: 480px; width:10em;height:5em; font-size: 40px;\" type=\"submit\">\

</form>\r\n</head>\r\n<body>\r\n</body>\r\n</html>";

 

 

//+++++++++++++++ Taster Start+++++++++++++++++++++++++

String html25 = "<!DOCTYPE html>\r\n<html>\r\n\

<head>\r\n<meta content=\"text/html; charset=ISO-8859-1\" http-equiv=\"content-type\">\r\n\

<title>WebSchalter</title>\r\n\

<form action=\"";

String html26 = "\">\r\n<input value=\"Start\" style=\"";

String html27 = "position: absolute; width:10em;height:5em; top: 210px; left: 50px; width:10em;height:5em; font-size: 40px;\" type=\"submit\">\

</form>\r\n</head>\r\n<body>\r\n</body>\r\n</html>";

 

 

//+++++++++++++++ Taster Stop+++++++++++++++++++++++++

String html7 = "<!DOCTYPE html>\r\n<html>\r\n\

<head>\r\n<meta content=\"text/html; charset=ISO-8859-1\" http-equiv=\"content-type\">\r\n\

<title>WebSchalter</title>\r\n\

<form action=\"";

String html8 = "\">\r\n<input value=\"Stop\" style=\"";

String html9 = "position: absolute; width:10em;height:5em; top: 210px; left: 480px; width:10em;height:5em; font-size: 40px;\" type=\"submit\">\

</form>\r\n</head>\r\n<body>\r\n</body>\r\n</html>";

 

//+++++++++++++++ Taster Virituelle Endlage Links+++++++++++++++++++++++++

String html10 = "<!DOCTYPE html>\r\n<html>\r\n\

<head>\r\n<meta content=\"text/html; charset=ISO-8859-1\" http-equiv=\"content-type\">\r\n\

<title>WebSchalter</title>\r\n\

<form action=\"";

String html11 = "\">\r\n<input value=\"EndlageSetzenLinks\" style=\"";

String html12 = " position: absolute; width:10em;height:5em; top: 410px; left: 50px; width:10em;height:5em; font-size: 40px;\" type=\"submit\">\

</form>\r\n</head>\r\n<body>\r\n</body>\r\n</html>";

 

//+++++++++++++++ Taster Virituelle Endlage Rechts+++++++++++++++++++++++++

String html13 = "<!DOCTYPE html>\r\n<html>\r\n\

<head>\r\n<meta content=\"text/html; charset=ISO-8859-1\" http-equiv=\"content-type\">\r\n\

<title>WebSchalter</title>\r\n\

<form action=\"";

String html14 = "\">\r\n<input value=\"EndlageSetzenRechts\" style=\"";

String html15 = " position: absolute; width:10em;height:5em; top: 410px; left: 480px; width:12em;height:5em; font-size: 40px;\" type=\"submit\">\

</form>\r\n</head>\r\n<body>\r\n</body>\r\n</html>";

 

//+++++++++++++++ Taster Endlage Neu Setzen+++++++++++++++++++++++++

String html16 = "<!DOCTYPE html>\r\n<html>\r\n\

<head>\r\n<meta content=\"text/html; charset=ISO-8859-1\" http-equiv=\"content-type\">\r\n\

<title>WebSchalter</title>\r\n\

<form action=\"";

String html17 = "\">\r\n<input value=\"VirtuelleEndlagenLoeschen\" style=\"";

String html18 = "position: absolute; width:10em;height:5em; top: 610px; left: 200px; width:15em;height:5em; font-size: 40px;\" type=\"submit\">\

</form>\r\n</head>\r\n<body>\r\n</body>\r\n</html>";

 

//+++++++++++++++ Taster Geschwindigkeit Stufe 5+++++++++++++++++++++++++

String html19 = "<!DOCTYPE html>\r\n<html>\r\n\

<head>\r\n<meta content=\"text/html; charset=ISO-8859-1\" http-equiv=\"content-type\">\r\n\

<title>WebSchalter</title>\r\n\

<form action=\"";

String html20 = "\">\r\n<input value=\"V5\" style=\"";

String html21 = " position: absolute; width:3em;height:5em; top: 810px; left: 70px; width:6em;height:5em; font-size: 25px;\" type=\"submit\">\

</form>\r\n</head>\r\n<body>\r\n</body>\r\n</html>";

 

//+++++++++++++++ Taster Geschwindigkeit Stufe 4+++++++++++++++++++++++++

String html22 = "<!DOCTYPE html>\r\n<html>\r\n\

<head>\r\n<meta content=\"text/html; charset=ISO-8859-1\" http-equiv=\"content-type\">\r\n\

<title>WebSchalter</title>\r\n\

<form action=\"";

String html23 = "\">\r\n<input value=\"V4\" style=\"";

String html24 = "position: absolute; width:3em;height:5em; top: 810px; left: 230px; width:6em;height:5em; font-size: 25px;\" type=\"submit\">\

</form>\r\n</head>\r\n<body>\r\n</body>\r\n</html>";

 

//+++++++++++++++ Taster Geschwindigkeit Stufe 3+++++++++++++++++++++++++

String html28 = "<!DOCTYPE html>\r\n<html>\r\n\

<head>\r\n<meta content=\"text/html; charset=ISO-8859-1\" http-equiv=\"content-type\">\r\n\

<title>WebSchalter</title>\r\n\

<form action=\"";

String html29 = "\">\r\n<input value=\"V3\" style=\"";

String html30 = "position: absolute; width:3em;height:5em; top: 810px; left: 400px; width:6em;height:5em; font-size: 25px;\" type=\"submit\">\

</form>\r\n</head>\r\n<body>\r\n</body>\r\n</html>";

 

 

//+++++++++++++++ Taster Geschwindigkeit Stufe 2+++++++++++++++++++++++++

String html31 = "<!DOCTYPE html>\r\n<html>\r\n\

<head>\r\n<meta content=\"text/html; charset=ISO-8859-1\" http-equiv=\"content-type\">\r\n\

<title>WebSchalter</title>\r\n\

<form action=\"";

String html32 = "\">\r\n<input value=\"V2\" style=\"";

String html33 = "position: absolute; width:3em;height:5em; top: 810px; left: 560px; width:6em;height:5em; font-size: 25px;\" type=\"submit\">\

</form>\r\n</head>\r\n<body>\r\n</body>\r\n</html>";

 

 

//+++++++++++++++ Taster Geschwindigkeit Stufe 1+++++++++++++++++++++++++

String html34 = "<!DOCTYPE html>\r\n<html>\r\n\

<head>\r\n<meta content=\"text/html; charset=ISO-8859-1\" http-equiv=\"content-type\">\r\n\

<title>WebSchalter</title>\r\n\

<form action=\"";

String html35 = "\">\r\n<input value=\"V1\" style=\"";

String html36 = "position: absolute;width:3em;height:5em; top: 810px; left: 720px; width:6em;height:5em; font-size: 25px;\" type=\"submit\">\

</form>\r\n</head>\r\n<body>\r\n</body>\r\n</html>";

 

 

 

ESP8266WebServer server(80);    // Server mit Port 80 initialisieren

 

 

const int motorPin1 = 15;  //   - In 1

const int motorPin2 = 13;  //   - In 2

const int motorPin3 = 12; //    - In 3

const int motorPin4 = 14; //    - In 4

                          // Pin 3V Controller  -> pin 5V (VCC) Shield

                          // Pin GND Controller -> pin GND Shield

                         

int LinkeEndlage = 0;  // Linke Hardware-Endlage

int RechteEndlage = 2;  // Rechte Hardware-Endlage

 

 

 

//Variablen für Web-Taster zeigen ab, ob taster gedrückt wurde, Platzhalter oder Counter.

// Wenn =0 --> betätigt, =1--> nicht betätigt

int TLinks=1;

int TRechts=1;

int TStart =1;

int TStop=1;

int TEndlageSetzenRechts=1;

int TEndlageSetzenLinks=1;

int TVirituelleEndlageLoeschen=1;

int T1=1;

int T2=1;

int T3=1;

int T4=1;

int T5=1;

String Temp = "";       //Speichert alten Event Name

String EventName ="";   //Speichert Event Name

int val=1;            

 

 

// Variablen für Programmablauf 

int n=0;                   // Laufrichtung-Speicher

int nalt=0;                // Speicher für Stop-Funktion

int Stopflag =0;           // Stop aktiv? 0=nein, 1=ja

unsigned int Speed  = 3000; // Delay-Time: nicht über 16000, nicht unter 3000

unsigned long Schritte=0; // Srittzähler für virituelle Endlagen

unsigned long Runtime=0;  //Laufzeit

int EndlageSet=0;         // Wurde bereits eine Endlage gesetzt?

int EndlageBetaetigt =0;  //Wurde eine Endlage erreicht?

int StepCount=0;          //Zählt die Schritte zwispchen zwei virtuellen Endlagen

int CheckVal =0;          // Gegenprüfen der Zählervariable in der Loop-Schleide

unsigned long Klick=0;    //Laufzeit

 

// Hier werden den Web-Tastern Funktionen bzw. Eventnamen zugewiesen.

//Jedes betätigen eines Tasters setzt die Anderen zurück und verändert deren Aussehen --> Grün/Grau

// Über das Klicken der Buttons werden die nachfolgenden Funktionen aufgerufen, welche das Aussehen der Buttons im Web verändern,

//sowie Funktionen in der loop() Funktion aufrufen.

 

 

 

void Index()           //Initialisieren aller Buttons(unbetätigt))

{

  Temp = html1 + String((TLinks) ? "/Linkslauf.html" : "/");

  Temp += html2 + String((TLinks) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html3;

 

  Temp += html4 + String((TRechts) ? "/Rechtslauf.html" : "");

  Temp += html5 + String((TRechts) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html6;

 

  Temp += html25 + String((TStart) ? "/Start.html" : "/");

  Temp += html26 + String((TStart) ? "BACKGROUND-COLOR: #33C4FF;" : "BACKGROUND-COLOR: Chartreuse;") + html27;

 

  Temp += html7 + String((TStop) ? "/Stop.html" : "/");

  Temp += html8 + String((TStop) ? "BACKGROUND-COLOR: #F62217;" : "BACKGROUND-COLOR: Chartreuse;") + html9;

 

  Temp += html10 + String((TEndlageSetzenLinks) ? "/VirituelleEndlageLinks.html" : "/");

  Temp += html11 + String((TEndlageSetzenLinks) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html12;

 

  Temp += html13 + String((TEndlageSetzenRechts) ? "/VirituelleEndlageRechts.html" : "/");

  Temp += html14 + String((TEndlageSetzenRechts) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html15;

 

  Temp += html16 + String((TVirituelleEndlageLoeschen) ? "/VirituelleEndlagenLoeschen.html" : "/.html");

  Temp += html17 + String((TVirituelleEndlageLoeschen) ? "BACKGROUND-COLOR: #E8A317;" : "BACKGROUND-COLOR: Chartreuse;") + html18;

 

  Temp += html34 + String((T1 ) ? "/1.html" : "/");

  Temp += html35 + String((T1 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html36;

 

  Temp += html31 + String((T2) ? "/2.html" : "/");

  Temp += html32 + String((T2) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html33;

 

  Temp += html28 + String((T3 ) ? "/3.html" : "/");

  Temp += html29 + String((T3 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html30;

 

  Temp += html22 + String((T4) ? "/4.html" : "/");

  Temp += html23 + String((T4) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html24;

 

  Temp += html19 + String((T5) ? "/5.html" : "/");

  Temp += html20 + String((T5) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html21;

 

  server.send(200, "text/html", Temp);

}

 

 

 

// Die hier angelegten Funtkionen (Linkslauf(),Rechtlauf(),Stop(),...)rufen sowohl Aktionen in der loop() Schleife auf, setzen aber auch die HTML-Buttons auf den korrelten

// betätigungszustand.

 

void Linkslauf()      

{

 EventName ="Linkslauf";   //--> EventName wird im loop() abgefragt. Je nach String-Inhalt werden ander Funktionen aufgerufen. Diese Zuweisung findet bei jedenm Button-Event statt.

 TLinks=0;

 TRechts=1;

 TStart=1;

 TStop=1;

 TEndlageSetzenRechts=1;

 TEndlageSetzenLinks=1;

 TVirituelleEndlageLoeschen=1;

 T1=1;

 T2=1;

 T3=1;

 T4=1;

 T5=1;

 

  Temp = html1 + String((TLinks) ? "/Linkslauf.html" : "/");

  Temp += html2 + String((TLinks) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html3;

 

  Temp += html4 + String((TRechts) ? "/Rechtslauf.html" : "");

  Temp += html5 + String((TRechts) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html6;

 

  Temp += html25 + String((TStart) ? "/Start.html" : "/");

  Temp += html26 + String((TStart) ? "BACKGROUND-COLOR: #33C4FF;" : "BACKGROUND-COLOR: Chartreuse;") + html27;

 

  Temp += html7 + String((TStop) ? "/Stop.html" : "/");

  Temp += html8 + String((TStop) ? "BACKGROUND-COLOR: #F62217;" : "BACKGROUND-COLOR: Chartreuse;") + html9;

 

  Temp += html10 + String((TEndlageSetzenLinks) ? "/VirituelleEndlageLinks.html" : "/");

  Temp += html11 + String((TEndlageSetzenLinks) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html12;

 

  Temp += html13 + String((TEndlageSetzenRechts) ? "/VirituelleEndlageRechts.html" : "/");

  Temp += html14 + String((TEndlageSetzenRechts) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html15;

 

  Temp += html16 + String((TVirituelleEndlageLoeschen) ? "/VirituelleEndlagenLoeschen.html" : "/.html");

  Temp += html17 + String((TVirituelleEndlageLoeschen) ? "BACKGROUND-COLOR: #E8A317;" : "BACKGROUND-COLOR: Chartreuse;") + html18;

 

  Temp += html34 + String((T1 ) ? "/1.html" : "/");

  Temp += html35 + String((T1 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html36;

 

  Temp += html31 + String((T2) ? "/2.html" : "/");

  Temp += html32 + String((T2) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html33;

 

  Temp += html28 + String((T3 ) ? "/3.html" : "/");

  Temp += html29 + String((T3 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html30;

 

  Temp += html22 + String((T4) ? "/4.html" : "/");

  Temp += html23 + String((T4) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html24;

 

  Temp += html19 + String((T5) ? "/5.html" : "/");

  Temp += html20 + String((T5) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html21;

 

  server.send(200, "text/html", Temp);

}

 

 

void Rechtslauf()      

{

 EventName ="Rechtslauf";

 TLinks=1;

 TRechts=0;

 TStart=1;

 TStop=1;

 TEndlageSetzenRechts=1;

 TEndlageSetzenLinks=1;

 TVirituelleEndlageLoeschen=1;

 T1=1;

 T2=1;

 T3=1;

 T4=1;

 T5=1;

 

  Temp = html1 + String((TLinks) ? "/Linkslauf.html" : "/");

  Temp += html2 + String((TLinks) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html3;

 

  Temp += html4 + String((TRechts) ? "/Rechtslauf.html" : "");

  Temp += html5 + String((TRechts) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html6;

 

  Temp += html25 + String((TStart) ? "/Start.html" : "/");

  Temp += html26 + String((TStart) ? "BACKGROUND-COLOR: #33C4FF;" : "BACKGROUND-COLOR: Chartreuse;") + html27;

 

  Temp += html7 + String((TStop) ? "/Stop.html" : "/");

  Temp += html8 + String((TStop) ? "BACKGROUND-COLOR: #F62217;" : "BACKGROUND-COLOR: Chartreuse;") + html9;

 

  Temp += html10 + String((TEndlageSetzenLinks) ? "/VirituelleEndlageLinks.html" : "/");

  Temp += html11 + String((TEndlageSetzenLinks) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html12;

 

  Temp += html13 + String((TEndlageSetzenRechts) ? "/VirituelleEndlageRechts.html" : "/");

  Temp += html14 + String((TEndlageSetzenRechts) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html15;

 

  Temp += html16 + String((TVirituelleEndlageLoeschen) ? "/VirituelleEndlagenLoeschen.html" : "/.html");

  Temp += html17 + String((TVirituelleEndlageLoeschen) ? "BACKGROUND-COLOR: #E8A317;" : "BACKGROUND-COLOR: Chartreuse;") + html18;

 

  Temp += html34 + String((T1 ) ? "/1.html" : "/");

  Temp += html35 + String((T1 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html36;

 

  Temp += html31 + String((T2) ? "/2.html" : "/");

  Temp += html32 + String((T2) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html33;

 

  Temp += html28 + String((T3 ) ? "/3.html" : "/");

  Temp += html29 + String((T3 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html30;

 

  Temp += html22 + String((T4) ? "/4.html" : "/");

  Temp += html23 + String((T4) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html24;

 

  Temp += html19 + String((T5) ? "/5.html" : "/");

  Temp += html20 + String((T5) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html21;

 

  server.send(200, "text/html", Temp);

}

 

void Start()      

{

 EventName ="Start";

 TLinks=1;

 TRechts=1;

 TStart=0;

 TStop=1;

 TEndlageSetzenRechts=1;

 TEndlageSetzenLinks=1;

 TVirituelleEndlageLoeschen=1;

 T1=1;

 T2=1;

 T3=1;

 T4=1;

 T5=1;;

 

  Temp = html1 + String((TLinks) ? "/Linkslauf.html" : "/");

  Temp += html2 + String((TLinks) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html3;

 

  Temp += html4 + String((TRechts) ? "/Rechtslauf.html" : "");

  Temp += html5 + String((TRechts) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html6;

 

  Temp += html25 + String((TStart) ? "/Start.html" : "/");

  Temp += html26 + String((TStart) ? "BACKGROUND-COLOR: #33C4FF;" : "BACKGROUND-COLOR: Chartreuse;") + html27;

 

  Temp += html7 + String((TStop) ? "/Stop.html" : "/");

  Temp += html8 + String((TStop) ? "BACKGROUND-COLOR: #F62217;" : "BACKGROUND-COLOR: Chartreuse;") + html9;

 

  Temp += html10 + String((TEndlageSetzenLinks) ? "/VirituelleEndlageLinks.html" : "/");

  Temp += html11 + String((TEndlageSetzenLinks) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html12;

 

  Temp += html13 + String((TEndlageSetzenRechts) ? "/VirituelleEndlageRechts.html" : "/");

  Temp += html14 + String((TEndlageSetzenRechts) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html15;

 

  Temp += html16 + String((TVirituelleEndlageLoeschen) ? "/VirituelleEndlagenLoeschen.html" : "/.html");

  Temp += html17 + String((TVirituelleEndlageLoeschen) ? "BACKGROUND-COLOR: #E8A317;" : "BACKGROUND-COLOR: Chartreuse;") + html18;

 

  Temp += html34 + String((T1 ) ? "/1.html" : "/");

  Temp += html35 + String((T1 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html36;

 

  Temp += html31 + String((T2) ? "/2.html" : "/");

  Temp += html32 + String((T2) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html33;

 

  Temp += html28 + String((T3 ) ? "/3.html" : "/");

  Temp += html29 + String((T3 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html30;

 

  Temp += html22 + String((T4) ? "/4.html" : "/");

  Temp += html23 + String((T4) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html24;

 

  Temp += html19 + String((T5) ? "/5.html" : "/");

  Temp += html20 + String((T5) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html21;

 

  server.send(200, "text/html", Temp);

}

 

 

 

void Stop()      

{

 EventName ="Stop";

 TLinks=1;

 TRechts=1;

 TStart=1;

 TStop=0;

 TEndlageSetzenRechts=1;

 TEndlageSetzenLinks=1;

 TVirituelleEndlageLoeschen=1;

 T1=1;

 T2=1;

 T3=1;

 T4=1;

 T5=1;

 

  Temp = html1 + String((TLinks) ? "/Linkslauf.html" : "/");

  Temp += html2 + String((TLinks) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html3;

 

  Temp += html4 + String((TRechts) ? "/Rechtslauf.html" : "");

  Temp += html5 + String((TRechts) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html6;

 

  Temp += html25 + String((TStart) ? "/Start.html" : "/");

  Temp += html26 + String((TStart) ? "BACKGROUND-COLOR: #33C4FF;" : "BACKGROUND-COLOR: Chartreuse;") + html27;

 

  Temp += html7 + String((TStop) ? "/Stop.html" : "/");

  Temp += html8 + String((TStop) ? "BACKGROUND-COLOR: #F62217;" : "BACKGROUND-COLOR: Chartreuse;") + html9;

 

  Temp += html10 + String((TEndlageSetzenLinks) ? "/VirituelleEndlageLinks.html" : "/");

  Temp += html11 + String((TEndlageSetzenLinks) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html12;

 

  Temp += html13 + String((TEndlageSetzenRechts) ? "/VirituelleEndlageRechts.html" : "/");

  Temp += html14 + String((TEndlageSetzenRechts) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html15;

 

  Temp += html16 + String((TVirituelleEndlageLoeschen) ? "/VirituelleEndlagenLoeschen.html" : "/.html");

  Temp += html17 + String((TVirituelleEndlageLoeschen) ? "BACKGROUND-COLOR: #E8A317;" : "BACKGROUND-COLOR: Chartreuse;") + html18;

 

  Temp += html34 + String((T1 ) ? "/1.html" : "/");

  Temp += html35 + String((T1 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html36;

 

  Temp += html31 + String((T2) ? "/2.html" : "/");

  Temp += html32 + String((T2) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html33;

 

  Temp += html28 + String((T3 ) ? "/3.html" : "/");

  Temp += html29 + String((T3 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html30;

 

  Temp += html22 + String((T4) ? "/4.html" : "/");

  Temp += html23 + String((T4) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html24;

 

  Temp += html19 + String((T5) ? "/5.html" : "/");

  Temp += html20 + String((T5) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html21; 

  server.send(200, "text/html", Temp);

}

 

 

void Geschw1()     

{

 EventName ="Geschw1";

 TLinks=1;

 TRechts=1;

  TStart=1;

 TStop=1;

 TEndlageSetzenRechts=1;

 TEndlageSetzenLinks=1;

 TVirituelleEndlageLoeschen=1;

 T1=0;

 T2=1;

 T3=1;

 T4=1;

 T5=1;

 

    Temp = html1 + String((TLinks) ? "/Linkslauf.html" : "/.html");

  Temp += html2 + String((TLinks) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html3;

 

  Temp += html4 + String((TRechts) ? "/Rechtslauf.html" : "/.html");

  Temp += html5 + String((TRechts) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html6;

 

  Temp += html25 + String((TStart) ? "/Start.html" : "/.html");

  Temp += html26 + String((TStart) ? "BACKGROUND-COLOR: #33C4FF;" : "BACKGROUND-COLOR: Chartreuse;") + html27;

 

  Temp += html7 + String((TStop) ? "/Stop.html" : "/.html");

  Temp += html8 + String((TStop) ? "BACKGROUND-COLOR: #F62217;" : "BACKGROUND-COLOR: Chartreuse;") + html9;

 

  Temp += html10 + String((TEndlageSetzenLinks) ? "/VirituelleEndlageLinks.html" : "/.html");

  Temp += html11 + String((TEndlageSetzenLinks) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html12;

 

  Temp += html13 + String((TEndlageSetzenRechts) ? "/VirituelleEndlageRechts.html" : ".html");

  Temp += html14 + String((TEndlageSetzenRechts) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html15;

 

  Temp += html16 + String((TVirituelleEndlageLoeschen) ? "/VirituelleEndlagenLoeschen.html" : "/.html");

  Temp += html17 + String((TVirituelleEndlageLoeschen) ? "BACKGROUND-COLOR: #E8A317;" : "BACKGROUND-COLOR: Chartreuse;") + html18;

 

  Temp += html34 + String((T1 ) ? "/1.html" : "/.html");

  Temp += html35 + String((T1 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html36;

 

  Temp += html31 + String((T2) ? "/2.html" : "/.html");

  Temp += html32 + String((T2) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html33;

 

  Temp += html28 + String((T3 ) ? "/3.html" : "/.html");

  Temp += html29 + String((T3 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html30;

 

  Temp += html22 + String((T4) ? "/4.html" : "/.html");

  Temp += html23 + String((T4) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html24;

 

  Temp += html19 + String((T5) ? "/5.html" : "/.html");

  Temp += html20 + String((T5) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html21;

 

 

  server.send(200, "text/html", Temp);

}

 

 

 

void Geschw2()     

{

 EventName ="Geschw2";

 TLinks=1;

 TRechts=1;

  TStart=1;

 TStop=1;

 TEndlageSetzenRechts=1;

 TEndlageSetzenLinks=1;

 TVirituelleEndlageLoeschen=1;

 T1=1;

 T2=0;

 T3=1;

 T4=1;

 T5=1;

 

    Temp = html1 + String((TLinks) ? "/Linkslauf.html" : "/.html");

  Temp += html2 + String((TLinks) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html3;

 

  Temp += html4 + String((TRechts) ? "/Rechtslauf.html" : "/.html");

  Temp += html5 + String((TRechts) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html6;

 

  Temp += html25 + String((TStart) ? "/Start.html" : "/.html");

  Temp += html26 + String((TStart) ? "BACKGROUND-COLOR: #33C4FF;" : "BACKGROUND-COLOR: Chartreuse;") + html27;

 

  Temp += html7 + String((TStop) ? "/Stop.html" : "/.html");

  Temp += html8 + String((TStop) ? "BACKGROUND-COLOR: #F62217;" : "BACKGROUND-COLOR: Chartreuse;") + html9;

 

  Temp += html10 + String((TEndlageSetzenLinks) ? "/VirituelleEndlageLinks.html" : "/.html");

  Temp += html11 + String((TEndlageSetzenLinks) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html12;

 

  Temp += html13 + String((TEndlageSetzenRechts) ? "/VirituelleEndlageRechts.html" : ".html");

  Temp += html14 + String((TEndlageSetzenRechts) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html15;

 

  Temp += html16 + String((TVirituelleEndlageLoeschen) ? "/VirituelleEndlagenLoeschen.html" : "/.html");

  Temp += html17 + String((TVirituelleEndlageLoeschen) ? "BACKGROUND-COLOR: #E8A317;" : "BACKGROUND-COLOR: Chartreuse;") + html18;

 

  Temp += html34 + String((T1 ) ? "/1.html" : "/.html");

  Temp += html35 + String((T1 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html36;

 

  Temp += html31 + String((T2) ? "/2.html" : "/.html");

  Temp += html32 + String((T2) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html33;

 

  Temp += html28 + String((T3 ) ? "/3.html" : "/.html");

  Temp += html29 + String((T3 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html30;

 

  Temp += html22 + String((T4) ? "/4.html" : "/.html");

  Temp += html23 + String((T4) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html24;

 

  Temp += html19 + String((T5) ? "/5.html" : "/.html");

  Temp += html20 + String((T5) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html21;

 

 

  server.send(200, "text/html", Temp);

}

 

 

void Geschw3()     

{

 EventName ="Geschw3";

 TLinks=1;

 TRechts=1;

  TStart=1;

 TStop=1;

 TEndlageSetzenRechts=1;

 TEndlageSetzenLinks=1;

 TVirituelleEndlageLoeschen=1;

 T1=1;

 T2=1;

 T3=0;

 T4=1;

 T5=1;

 

  Temp = html1 + String((TLinks) ? "/Linkslauf.html" : "/");

  Temp += html2 + String((TLinks) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html3;

 

  Temp += html4 + String((TRechts) ? "/Rechtslauf.html" : "");

  Temp += html5 + String((TRechts) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html6;

 

  Temp += html25 + String((TStart) ? "/Start.html" : "/");

  Temp += html26 + String((TStart) ? "BACKGROUND-COLOR: #33C4FF;" : "BACKGROUND-COLOR: Chartreuse;") + html27;

 

  Temp += html7 + String((TStop) ? "/Stop.html" : "/");

  Temp += html8 + String((TStop) ? "BACKGROUND-COLOR: #F62217;" : "BACKGROUND-COLOR: Chartreuse;") + html9;

 

  Temp += html10 + String((TEndlageSetzenLinks) ? "/VirituelleEndlageLinks.html" : "/");

  Temp += html11 + String((TEndlageSetzenLinks) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html12;

 

  Temp += html13 + String((TEndlageSetzenRechts) ? "/VirituelleEndlageRechts.html" : "/");

  Temp += html14 + String((TEndlageSetzenRechts) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html15;

 

  Temp += html16 + String((TVirituelleEndlageLoeschen) ? "/VirituelleEndlagenLoeschen.html" : "/.html");

  Temp += html17 + String((TVirituelleEndlageLoeschen) ? "BACKGROUND-COLOR: #E8A317;" : "BACKGROUND-COLOR: Chartreuse;") + html18;

 

  Temp += html34 + String((T1 ) ? "/1.html" : "/");

  Temp += html35 + String((T1 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html36;

 

  Temp += html31 + String((T2) ? "/2.html" : "/");

  Temp += html32 + String((T2) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html33;

 

  Temp += html28 + String((T3 ) ? "/3.html" : "/");

  Temp += html29 + String((T3 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html30;

 

  Temp += html22 + String((T4) ? "/4.html" : "/");

  Temp += html23 + String((T4) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html24;

 

  Temp += html19 + String((T5) ? "/5.html" : "/");

  Temp += html20 + String((T5) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html21;

 

  server.send(200, "text/html", Temp);

}

 

 

void Geschw4()     

{

 EventName ="Geschw4";

 TLinks=1;

 TRechts=1;

  TStart=1;

 TStop=1;

 TEndlageSetzenRechts=1;

 TEndlageSetzenLinks=1;

 TVirituelleEndlageLoeschen=1;

 T1=1;

 T2=1;

 T3=1;

 T4=0;

 T5=1;

 

  Temp = html1 + String((TLinks) ? "/Linkslauf.html" : "/");

  Temp += html2 + String((TLinks) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html3;

 

  Temp += html4 + String((TRechts) ? "/Rechtslauf.html" : "");

  Temp += html5 + String((TRechts) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html6;

 

  Temp += html25 + String((TStart) ? "/Start.html" : "/");

  Temp += html26 + String((TStart) ? "BACKGROUND-COLOR: #33C4FF;" : "BACKGROUND-COLOR: Chartreuse;") + html27;

 

  Temp += html7 + String((TStop) ? "/Stop.html" : "/");

  Temp += html8 + String((TStop) ? "BACKGROUND-COLOR: #F62217;" : "BACKGROUND-COLOR: Chartreuse;") + html9;

 

  Temp += html10 + String((TEndlageSetzenLinks) ? "/VirituelleEndlageLinks.html" : "/");

  Temp += html11 + String((TEndlageSetzenLinks) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html12;

 

  Temp += html13 + String((TEndlageSetzenRechts) ? "/VirituelleEndlageRechts.html" : "/");

  Temp += html14 + String((TEndlageSetzenRechts) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html15;

 

  Temp += html16 + String((TVirituelleEndlageLoeschen) ? "/VirituelleEndlagenLoeschen.html" : "/.html");

  Temp += html17 + String((TVirituelleEndlageLoeschen) ? "BACKGROUND-COLOR: #E8A317;" : "BACKGROUND-COLOR: Chartreuse;") + html18;

 

  Temp += html34 + String((T1 ) ? "/1.html" : "/");

  Temp += html35 + String((T1 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html36;

 

  Temp += html31 + String((T2) ? "/2.html" : "/");

  Temp += html32 + String((T2) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html33;

 

  Temp += html28 + String((T3 ) ? "/3.html" : "/");

  Temp += html29 + String((T3 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html30;

 

  Temp += html22 + String((T4) ? "/4.html" : "/");

  Temp += html23 + String((T4) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html24;

 

  Temp += html19 + String((T5) ? "/5.html" : "/");

  Temp += html20 + String((T5) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html21;

 

  server.send(200, "text/html", Temp);

}

 

 

void Geschw5()     

{

 EventName ="Geschw5";

 TLinks=1;

 TRechts=1;

  TStart=1;

 TStop=1;

 TEndlageSetzenRechts=1;

 TEndlageSetzenLinks=1;

 TVirituelleEndlageLoeschen=1;

 T1=1;

 T2=1;

 T3=1;

 T4=1;

 T5=0;

 

  Temp = html1 + String((TLinks) ? "/Linkslauf.html" : "/");

  Temp += html2 + String((TLinks) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html3;

 

  Temp += html4 + String((TRechts) ? "/Rechtslauf.html" : "");

  Temp += html5 + String((TRechts) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html6;

 

  Temp += html25 + String((TStart) ? "/Start.html" : "/");

  Temp += html26 + String((TStart) ? "BACKGROUND-COLOR: #33C4FF;" : "BACKGROUND-COLOR: Chartreuse;") + html27;

 

  Temp += html7 + String((TStop) ? "/Stop.html" : "/");

  Temp += html8 + String((TStop) ? "BACKGROUND-COLOR: #F62217;" : "BACKGROUND-COLOR: Chartreuse;") + html9;

 

  Temp += html10 + String((TEndlageSetzenLinks) ? "/VirituelleEndlageLinks.html" : "/");

  Temp += html11 + String((TEndlageSetzenLinks) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html12;

 

  Temp += html13 + String((TEndlageSetzenRechts) ? "/VirituelleEndlageRechts.html" : "/");

  Temp += html14 + String((TEndlageSetzenRechts) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html15;

 

  Temp += html16 + String((TVirituelleEndlageLoeschen) ? "/VirituelleEndlagenLoeschen.html" : "/.html");

  Temp += html17 + String((TVirituelleEndlageLoeschen) ? "BACKGROUND-COLOR: #E8A317;" : "BACKGROUND-COLOR: Chartreuse;") + html18;

 

  Temp += html34 + String((T1 ) ? "/1.html" : "/");

  Temp += html35 + String((T1 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html36;

 

  Temp += html31 + String((T2) ? "/2.html" : "/");

  Temp += html32 + String((T2) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html33;

 

  Temp += html28 + String((T3 ) ? "/3.html" : "/");

  Temp += html29 + String((T3 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html30;

 

  Temp += html22 + String((T4) ? "/4.html" : "/");

  Temp += html23 + String((T4) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html24;

 

  Temp += html19 + String((T5) ? "/5.html" : "/");

  Temp += html20 + String((T5) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html21;

 

 

  server.send(200, "text/html", Temp);

}

 

 

void VirituelleEndlageLinks()     

{

 EventName ="VirituelleEndlageLinks";

 TLinks=1;

 TRechts=1;

 TStart=1;

 TStop=1;

 TEndlageSetzenRechts=1;

 TEndlageSetzenLinks=0;

 TVirituelleEndlageLoeschen=1;

 T1=1;

 T2=1;

 T3=1;

 T4=1;

 T5=1;

 

  Temp = html1 + String((TLinks) ? "/Linkslauf.html" : "/");

  Temp += html2 + String((TLinks) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html3;

 

  Temp += html4 + String((TRechts) ? "/Rechtslauf.html" : "");

  Temp += html5 + String((TRechts) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html6;

 

  Temp += html25 + String((TStart) ? "/Start.html" : "/");

  Temp += html26 + String((TStart) ? "BACKGROUND-COLOR: #33C4FF;" : "BACKGROUND-COLOR: Chartreuse;") + html27;

 

  Temp += html7 + String((TStop) ? "/Stop.html" : "/");

  Temp += html8 + String((TStop) ? "BACKGROUND-COLOR: #F62217;" : "BACKGROUND-COLOR: Chartreuse;") + html9;

 

  Temp += html10 + String((TEndlageSetzenLinks) ? "/VirituelleEndlageLinks.html" : "/");

  Temp += html11 + String((TEndlageSetzenLinks) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html12;

 

  Temp += html13 + String((TEndlageSetzenRechts) ? "/VirituelleEndlageRechts.html" : "/");

  Temp += html14 + String((TEndlageSetzenRechts) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html15;

 

  Temp += html16 + String((TVirituelleEndlageLoeschen) ? "/VirituelleEndlagenLoeschen.html" : "/.html");

  Temp += html17 + String((TVirituelleEndlageLoeschen) ? "BACKGROUND-COLOR: #E8A317;" : "BACKGROUND-COLOR: Chartreuse;") + html18;

 

  Temp += html34 + String((T1 ) ? "/1.html" : "/");

  Temp += html35 + String((T1 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html36;

 

  Temp += html31 + String((T2) ? "/2.html" : "/");

  Temp += html32 + String((T2) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html33;

 

  Temp += html28 + String((T3 ) ? "/3.html" : "/");

  Temp += html29 + String((T3 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html30;

 

  Temp += html22 + String((T4) ? "/4.html" : "/");

  Temp += html23 + String((T4) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html24;

 

  Temp += html19 + String((T5) ? "/5.html" : "/");

  Temp += html20 + String((T5) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html21;

 

  server.send(200, "text/html", Temp);

}

 

 

 

 

void VirituelleEndlagenLoeschen()      

{

 EventName ="EndlageNeuSetzen";

 TLinks=1;

 TRechts=1;

  TStart=1;

 TStop=1;

 TEndlageSetzenRechts=1;

 TEndlageSetzenLinks=1;

 TVirituelleEndlageLoeschen=0;

 T1=1;

 T2=1;

 T3=1;

 T4=1;

 T5=1;

 

  Temp = html1 + String((TLinks) ? "/Linkslauf.html" : "/");

  Temp += html2 + String((TLinks) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html3;

 

  Temp += html4 + String((TRechts) ? "/Rechtslauf.html" : "");

  Temp += html5 + String((TRechts) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html6;

 

  Temp += html25 + String((TStart) ? "/Start.html" : "/");

  Temp += html26 + String((TStart) ? "BACKGROUND-COLOR: #33C4FF;" : "BACKGROUND-COLOR: Chartreuse;") + html27;

 

  Temp += html7 + String((TStop) ? "/Stop.html" : "/");

  Temp += html8 + String((TStop) ? "BACKGROUND-COLOR: #F62217;" : "BACKGROUND-COLOR: Chartreuse;") + html9;

 

  Temp += html10 + String((TEndlageSetzenLinks) ? "/VirituelleEndlageLinks.html" : "/");

  Temp += html11 + String((TEndlageSetzenLinks) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html12;

 

  Temp += html13 + String((TEndlageSetzenRechts) ? "/VirituelleEndlageRechts.html" : "/");

  Temp += html14 + String((TEndlageSetzenRechts) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html15;

 

  Temp += html16 + String((TVirituelleEndlageLoeschen) ? "/VirituelleEndlagenLoeschen.html" : "/.html");

  Temp += html17 + String((TVirituelleEndlageLoeschen) ? "BACKGROUND-COLOR: #E8A317;" : "BACKGROUND-COLOR: Chartreuse;") + html18;

 

  Temp += html34 + String((T1 ) ? "/1.html" : "/");

  Temp += html35 + String((T1 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html36;

 

  Temp += html31 + String((T2) ? "/2.html" : "/");

  Temp += html32 + String((T2) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html33;

 

  Temp += html28 + String((T3 ) ? "/3.html" : "/");

  Temp += html29 + String((T3 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html30;

 

  Temp += html22 + String((T4) ? "/4.html" : "/");

  Temp += html23 + String((T4) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html24;

 

  Temp += html19 + String((T5) ? "/5.html" : "/");

  Temp += html20 + String((T5) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html21;

 

  server.send(200, "text/html", Temp);

}

 

 

void VirituelleEndlageRechts()      

{

 EventName ="VirituelleEndlageRechts";

 TLinks=1;

 TRechts=1;

 TStart=1;

 TStop=1;

 TEndlageSetzenRechts=0;

 TEndlageSetzenLinks=1;

 TVirituelleEndlageLoeschen=1;

 T1=1;

 T2=1;

 T3=1;

 T4=1;

 T5=1;

 

  Temp = html1 + String((TLinks) ? "/Linkslauf.html" : "/");

  Temp += html2 + String((TLinks) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html3;

 

  Temp += html4 + String((TRechts) ? "/Rechtslauf.html" : "");

  Temp += html5 + String((TRechts) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html6;

 

  Temp += html25 + String((TStart) ? "/Start.html" : "/");

  Temp += html26 + String((TStart) ? "BACKGROUND-COLOR: #33C4FF;" : "BACKGROUND-COLOR: Chartreuse;") + html27;

 

  Temp += html7 + String((TStop) ? "/Stop.html" : "/");

  Temp += html8 + String((TStop) ? "BACKGROUND-COLOR: #F62217;" : "BACKGROUND-COLOR: Chartreuse;") + html9;

 

  Temp += html10 + String((TEndlageSetzenLinks) ? "/VirituelleEndlageLinks.html" : "/");

  Temp += html11 + String((TEndlageSetzenLinks) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html12;

 

  Temp += html13 + String((TEndlageSetzenRechts) ? "/VirituelleEndlageRechts.html" : "/");

  Temp += html14 + String((TEndlageSetzenRechts) ? "BACKGROUND-COLOR: #CCFFFF;" : "BACKGROUND-COLOR: Chartreuse;") + html15;

 

  Temp += html16 + String((TVirituelleEndlageLoeschen) ? "/VirituelleEndlagenLoeschen.html" : "/.html");

  Temp += html17 + String((TVirituelleEndlageLoeschen) ? "BACKGROUND-COLOR: #E8A317;" : "BACKGROUND-COLOR: Chartreuse;") + html18;

 

  Temp += html34 + String((T1 ) ? "/1.html" : "/");

  Temp += html35 + String((T1 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html36;

 

  Temp += html31 + String((T2) ? "/2.html" : "/");

  Temp += html32 + String((T2) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html33;

 

  Temp += html28 + String((T3 ) ? "/3.html" : "/");

  Temp += html29 + String((T3 ) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html30;

 

  Temp += html22 + String((T4) ? "/4.html" : "/");

  Temp += html23 + String((T4) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html24;

 

  Temp += html19 + String((T5) ? "/5.html" : "/");

  Temp += html20 + String((T5) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html21;

 

  server.send(200, "text/html", Temp);

}

 

 

 

 

void setup()

{

 

// Motor-Pins als output festlegen

 

  pinMode(motorPin1, OUTPUT);

  pinMode(motorPin2, OUTPUT);

  pinMode(motorPin3, OUTPUT);

  pinMode(motorPin4, OUTPUT);

 

//Endlagen als input festlegen

 

  pinMode(LinkeEndlage, INPUT);

  pinMode(RechteEndlage, INPUT);

 

  Serial.begin(115200);         // Serielle schnittstelle initialisieren --> beobachten über Seriellen Monitor möglich(BaudRate auf 115200 stellen)

  Serial.println("");           // Leere Zeile ausgeben

  Serial.println("Starte WLAN-Hotspot \"KaSchi\"");

  WiFi.mode(WIFI_AP);           // access point modus -  erstelle eigenen HotSpot

  WiFi.softAP("KaSchi");    // Name des Wi-Fi netzes

  delay(500);                   //Abwarten 0,5s

  Serial.print("IP Adresse ");  //Ausgabe aktueller IP des Servers

  Serial.println(WiFi.softAPIP());

 

 //Hier werden die vom Server empfangegen Events, die vom drücken der Taster aktiviert werden, abgefangen und Funktionen zugesiwesn

  server.on("/", Index);

  server.on("/1.html", Geschw1);

  server.on("/2.html", Geschw2);

  server.on("/3.html", Geschw3);

  server.on("/4.html", Geschw4);

  server.on("/5.html", Geschw5);

  server.on("/Rechtslauf.html", Rechtslauf);

  server.on("/Linkslauf.html", Linkslauf);

  server.on("/Start.html", Start);

  server.on("/Stop.html", Stop);

  server.on("/VirituelleEndlageLinks.html", VirituelleEndlageLinks);

  server.on("/VirituelleEndlageRechts.html", VirituelleEndlageRechts); 

  server.on("/VirituelleEndlagenLoeschen.html", VirituelleEndlagenLoeschen); 

 

  server.begin();               // Starte den Server

  Serial.println("HTTP Server gestartet");

 

}

 

void loop()

{

  server.handleClient();

 

if(EndlageSet==2 && Stopflag!=1)

{

 

  Serial.println("Ich kapiere, dasss ich in den Loop muss!");

  if(StepCount>0)

  {

    StepCount--;

       Serial.println("Schrittanzahl");

       Serial.println(StepCount);

  }else

  if(StepCount==0)

  {

    if(n==1)

    {

        n=2;

    }else

    if(n=2)

    {

      n=1; 

    }

    StepCount = CheckVal;

  }

 

} 

 

if(digitalRead(LinkeEndlage)==LOW)

{

n=1; 

digitalWrite(LinkeEndlage, HIGH);

Serial.print("Linke Endlage erreicht");

}

else if(digitalRead(RechteEndlage)==LOW)

{

n=2; 

digitalWrite(RechteEndlage, HIGH);

Serial.print("Rechte Endlage erreicht");

}

else{}

 

switch(n)

  { case 0: MotorStop();       break;

    case 1: rechtsrum(Speed);  break;

    case 2: linksrum(Speed);   break;

    case 3: MotorStop();       break;

    case 4: rechtsrum(Speed);  break;

    case 5: MotorStop();       break;

    case 6: linksrum(Speed);   break;

  }

 

/**************************--------WIFI Verbindung aufgebaut-> Eventabfrage-----------------***************************************/

 

 

 if (EventName =="Stop")  {

  Serial.println("Befehl erhalten -> Stop");

  nalt=n;

  Stopflag=1;

  n =0;

 }

 if (EventName =="Start")  {

  Serial.println("Befehl erhalten -> Start");

  if(n==0 && nalt==0)

  {

    Stopflag =0;

    n=1;

  }

  else{

  Stopflag=0;

  n =nalt;

  }

 }

 

 if (EventName =="Rechtslauf"&&EndlageSet==0)  {

  Serial.println("Befehl erhalten -> Rechtslauf");

  n =1;

 }

 if (EventName =="Linkslauf"&&EndlageSet==0 )  {

  Serial.println("Befehl erhalten -> Linkslauf");

  n =2;

 }

 

 

 if (EventName =="Geschw1")  {

  Serial.println("Befehl erhalten -> Geschwindigkeit 1");

  Speed = 10000;

 }

  if (EventName =="Geschw2")  {

  Serial.println("Befehl erhalten -> Geschwindigkeit 1");

  Speed = 8250;

 }

 if (EventName =="Geschw3")  {

  Serial.println("Befehl erhalten -> Geschwindigkeit 1");

  Speed = 6500;

 }

 if (EventName =="Geschw4")  {

  Serial.println("Befehl erhalten -> Geschwindigkeit 1");

  Speed = 4750;

 }

 if (EventName =="Geschw5")  {

  Serial.println("Befehl erhalten -> Geschwindigkeit 1");

  Speed = 3000;

 }

 

 

 

 if (EventName =="EndlageNeuSetzen")  {

Runtime=0;

Schritte=0;

StepCount=0;

EndlageSet=0;

n=0;

 }

 

if((EventName =="VirituelleEndlageLinks"||EventName =="VirituelleEndlageRechts")&&EndlageSet==1)  //überprüfen,ob die zweite virituelle Endlagen betätigt wurde

{

  Runtime = Schritte;   // Runtime soll die bisherige Anzahl an Schritten sein.

  StepCount = Runtime;

  CheckVal = Runtime;

  EndlageSet=2;         //  Rücksetzen der Endlageabfrage, so dass die Endlage gegebenenfalls verschoben werden kann 

      if(EventName =="VirituelleEndlageLinks")    // prüfen ob linke Endlage gewählt wurde

    {

      n=1;                                                  // Motor soll nach rechts drehen

      Serial.println("2. VE links gesetzt -> Rechtsdrehung");

       Serial.println(EndlageSet);

    }else

    if(EventName =="VirituelleEndlageRechts") // prüfen ob rechte ENdlage gewählt wurde

    {

      n=2;                                                // Motor soll nach links drehen

      Serial.println("2. VE links gesetzt -> Linksdrehung");

       Serial.println(EndlageSet);

       Serial.println("Schrittanzahl");

       Serial.println(StepCount);

    }

  }

 

 

 

if((EventName =="VirituelleEndlageLinks"||EventName =="VirituelleEndlageRechts")&&EndlageSet==0)  //überprüfen, ob einer der beiden virituellen Endlagen betätigt wurde

{

 Schritte=0;    // Schrittzähler auf null setzen

 Runtime=0;     // Runtime auf null setzen

 EndlageSet=1;  // Bestätigen, dass EINE Endlage ausgewählt wurde

    if(EventName =="VirituelleEndlageLinks")    // prüfen ob linke Endlage gewählt wurde

    {

      n=1;                                                  // Motor soll nach rechts drehen

      Serial.println("1. VE links gesetzt -> Rechtsdrehung");

      Serial.println("EndlageSet:");

            Serial.println(EndlageSet);

    }else

    if(EventName =="VirituelleEndlageRechts") // prüfen ob rechte ENdlage gewählt wurde

    {

      n=2;                                                // Motor soll nach links drehen

      Serial.println("1. VE rechts gesetzt -> Linksdrehung");

    }

}

 

EventName="";

 

}

 

 

 

void rechtsrum(unsigned int motorSpeed)  //Steuert die Motorwindungen so an, dass er rechts herum dreht.

{ // 1

  digitalWrite(motorPin4, HIGH);

  digitalWrite(motorPin3, LOW);

  digitalWrite(motorPin2, LOW);

  digitalWrite(motorPin1, LOW);

  delayMicroseconds(motorSpeed);

 

  // 2

  digitalWrite(motorPin4, HIGH);

  digitalWrite(motorPin3, HIGH);

  digitalWrite(motorPin2, LOW);

  digitalWrite(motorPin1, LOW);

  delayMicroseconds(motorSpeed);

 

  // 3

  digitalWrite(motorPin4, LOW);

  digitalWrite(motorPin3, HIGH);

  digitalWrite(motorPin2, LOW);

  digitalWrite(motorPin1, LOW);

  delayMicroseconds(motorSpeed);

 

  // 4

  digitalWrite(motorPin4, LOW);

  digitalWrite(motorPin3, HIGH);

  digitalWrite(motorPin2, HIGH);

  digitalWrite(motorPin1, LOW);

  delayMicroseconds(motorSpeed);

 

  // 5

  digitalWrite(motorPin4, LOW);

  digitalWrite(motorPin3, LOW);

  digitalWrite(motorPin2, HIGH);

  digitalWrite(motorPin1, LOW);

  delayMicroseconds(motorSpeed);

 

  // 6

  digitalWrite(motorPin4, LOW);

  digitalWrite(motorPin3, LOW);

  digitalWrite(motorPin2, HIGH);

  digitalWrite(motorPin1, HIGH);

  delayMicroseconds(motorSpeed);

 

  // 7

  digitalWrite(motorPin4, LOW);

  digitalWrite(motorPin3, LOW);

  digitalWrite(motorPin2, LOW);

  digitalWrite(motorPin1, HIGH);

  delayMicroseconds(motorSpeed);

 

  // 8

  digitalWrite(motorPin4, HIGH);

  digitalWrite(motorPin3, LOW);

  digitalWrite(motorPin2, LOW);

  digitalWrite(motorPin1, HIGH);

  delayMicroseconds(motorSpeed);

 

 

  Schritte++;

}

 

void linksrum(unsigned int motorSpeed)//Steuert die Motorwindungen so an, dass er links herum dreht.

{ // 1

  digitalWrite(motorPin1, HIGH);

  digitalWrite(motorPin2, LOW);

  digitalWrite(motorPin3, LOW);

  digitalWrite(motorPin4, LOW);

  delayMicroseconds(motorSpeed);

 

  // 2

  digitalWrite(motorPin1, HIGH);

  digitalWrite(motorPin2, HIGH);

  digitalWrite(motorPin3, LOW);

  digitalWrite(motorPin4, LOW);

  delayMicroseconds(motorSpeed);

 

  // 3

  digitalWrite(motorPin1, LOW);

  digitalWrite(motorPin2, HIGH);

  digitalWrite(motorPin3, LOW);

  digitalWrite(motorPin4, LOW);

  delayMicroseconds(motorSpeed);

 

  // 4

  digitalWrite(motorPin1, LOW);

  digitalWrite(motorPin2, HIGH);

  digitalWrite(motorPin3, HIGH);

  digitalWrite(motorPin4, LOW);

  delayMicroseconds(motorSpeed);

 

  // 5

  digitalWrite(motorPin1, LOW);

  digitalWrite(motorPin2, LOW);

  digitalWrite(motorPin3, HIGH);

  digitalWrite(motorPin4, LOW);

  delayMicroseconds(motorSpeed);

 

  // 6

  digitalWrite(motorPin1, LOW);

  digitalWrite(motorPin2, LOW);

  digitalWrite(motorPin3, HIGH);

  digitalWrite(motorPin4, HIGH);

  delayMicroseconds(motorSpeed);

 

  // 7

  digitalWrite(motorPin1, LOW);

  digitalWrite(motorPin2, LOW);

  digitalWrite(motorPin3, LOW);

  digitalWrite(motorPin4, HIGH);

  delayMicroseconds(motorSpeed);

 

  // 8

  digitalWrite(motorPin1, HIGH);

  digitalWrite(motorPin2, LOW);

  digitalWrite(motorPin3, LOW);

  digitalWrite(motorPin4, HIGH);

  delayMicroseconds(motorSpeed);

 

  Schritte++;

}

 

void MotorStop()                //Schaltet alle Motorwindungen ab

{ digitalWrite(motorPin4, LOW);

  digitalWrite(motorPin3, LOW);

  digitalWrite(motorPin2, LOW);

  digitalWrite(motorPin1, LOW);

}