diff --git a/examples/sPSN_Chat/sPSN_Chat.ino b/examples/sPSN_Chat/sPSN_Chat.ino index 632a18c3a8db96eceac9c79e01607dbc06df9612..d480f6a8c5aa0e33a3b6a876ef339ee88449363c 100644 --- a/examples/sPSN_Chat/sPSN_Chat.ino +++ b/examples/sPSN_Chat/sPSN_Chat.ino @@ -72,30 +72,38 @@ void loop() { psnClient.handleNetwork(); //Verarbeiten der Daten, prüfen ob Netzwerk frei und versenden der Daten - int nrOfAscii = psnClient.readSerialData(Serial, readData, 13); //Einlesen der Nutzereingabe am SerialMonitor (Rueckgabewert = Anzahl der gelesenen Zeichen) + int nrOfAscii = psnClient.readSerialData(Serial, readData, DN_ASCII_CR); //Einlesen der Nutzereingabe am SerialMonitor (Rueckgabewert = Anzahl der gelesenen Zeichen) if (nrOfAscii > 0) { //Wenn Daten fertig eingelesen wurden if (readData[0] == '@') { //Wenn '@' vorne steht, dann neuer Chatpartner anlegen (neues Topic abonnieren) - strcpy(readData, readData + 1); //verschiebe um ein Zeichen (entferne '@') + strcpy(readData, &readData[1]); //verschiebe um ein Zeichen (entferne '@') psnClient.subscribe(readData); //Lege fest zu welchem Topic Daten empfangen werden sollen (den Namen des Chatpartners) Serial.print("Nachrichten von "); //Ausgabe welches Topic abonniert wurde Serial.print(readData); Serial.println(" abonniert."); } + else if (readData[0] == '!') { //Wenn '@' vorne steht, dann neuer Chatpartner anlegen (neues Topic abonnieren) + strcpy(readData, &readData[1]); //verschiebe um ein Zeichen (entferne '@') + psnClient.unsubscribe(readData); //Lege fest zu welchem Topic Daten empfangen werden sollen (den Namen des Chatpartners) - else if (readData[0] == '#') { //Wenn '#' vorne steht, dann neuer eigener Name (neues Topic unter dem gesendet wird) - strcpy(topicPub, readData + 1); //kopiere das neue Topic (deinen neuen Namen) in das passende Array (+ 1 = entferne '#') + Serial.print("Nachrichten von "); //Ausgabe welches Topic abonniert wurde + Serial.print(readData); + Serial.println(" nicht mehr abonniert."); + } + else if (readData[0] == '#') { //Wenn '#' vorne steht, dann neuer eigener Name (neues Topic unter dem gesendet wird) + //strcpy(topicPub, readData + 1); //kopiere das neue Topic (deinen neuen Namen) in das passende Array (+ 1 = entferne '#') + strcpy(topicPub, &readData[1]); //kopiere das neue Topic (deinen neuen Namen) in das passende Array (+ 1 = entferne '#') + Serial.print("Dein Name:\t"); //Ausgabe unter welchem Topic veröffentlicht wird Serial.println(topicPub); } else { //Wenn "normale" Nachrichten eingegeben wurden, dann Daten unter eigenem Topic versenden - readData[MAX_LEN_PAYLOAD] = '\0'; //Schreibe String-Ende an letzte Stelle im Array psnClient.publish(topicPub, readData); //Bereite eingegebene Daten zum Senden vor - + Serial.print("Ich:\t"); //Ausgabe was unter deinem Topic veröffentlicht wird Serial.println(readData); } diff --git a/src/didacticNet.cpp b/src/didacticNet.cpp index d89becbb79b0088ba94a887948c015f7616036ac..e8ca455eb6c546948198d8e121970f45d746ac8d 100644 --- a/src/didacticNet.cpp +++ b/src/didacticNet.cpp @@ -363,18 +363,18 @@ int didacticPSNetClient::edgeDetected(bool edCurrentState){ if(edCurrentState && !edLastState){ edEdge = RISING; } - if(!edCurrentState && edLastState){ + else if(!edCurrentState && edLastState){ edEdge = FALLING; } edLastState = edCurrentState; return edEdge; } -bool didacticPSNetClient::valueChanged(int teValue, int teThreshold){ +bool didacticPSNetClient::valueChanged(int vcValue, int vcThreshold){ static int vcLastValue = 0; - if(abs(teValue-vcLastValue) > teThreshold){ - vcLastValue = teValue; + if(abs(vcValue-vcLastValue) > vcThreshold){ + vcLastValue = vcValue; return true; } return false;