Skip to content
Snippets Groups Projects
Verified Commit 11b34202 authored by Anian Bühler's avatar Anian Bühler
Browse files

Updated Readme.MD

parent 2a3a7702
No related branches found
No related tags found
No related merge requests found
...@@ -4,14 +4,14 @@ Bibliothek zur Implementierung von vereinfachten Netzwerken auf Arduino-Boards. ...@@ -4,14 +4,14 @@ Bibliothek zur Implementierung von vereinfachten Netzwerken auf Arduino-Boards.
Die Funktionalitaeten entsprechen dem Stand der Technik, die Umsetzung ist didaktisch reduziert. Die Funktionalitaeten entsprechen dem Stand der Technik, die Umsetzung ist didaktisch reduziert.
Für eine Nutzung der Bibliothek wird eine drahtlose Schnittstelle benoetigt, wleche sich an der Seriellen Schnittstelle betreiben lässt. Für eine Nutzung der Bibliothek wird eine drahtlose Schnittstelle benoetigt, wleche sich an der Seriellen Schnittstelle betreiben lässt.
Wir empfehlen unsere IR-Link-Module, die Sie selbst herstellen koennen (Schaltplan und Layout bei uns anfragen - Kontakt über [letsgoING.org](httsp://letsgoING.org) Wir empfehlen unsere IR-Link-Module, die Sie selbst herstellen koennen (Schaltplan und Layout bei uns anfragen - Kontakt über [letsgoING.org](httsp://letsgoING.org)
oder z. B. hier erwerben koennen: [Hinweise zur Bestellung bei Aisler](#bestellung-bei-aisler). oder z. B. hier erwerben koennen: [Hinweise zur Bestellung bei Aisler](#bestellung-bei-aisler).
## Download ## Download
Start download with the button on the right side. Choose the right format and start the download. Start download with the button on the right side. Choose the right format and start the download.
![](DownloadButton.png) ![](DownloadButton.png)
After download install library: After download install library:
https://www.arduino.cc/en/guide/libraries section "Importing a .zip Library" https://www.arduino.cc/en/guide/libraries section "Importing a .zip Library"
...@@ -21,14 +21,16 @@ https://www.arduino.cc/en/guide/libraries section "Importing a .zip Library" ...@@ -21,14 +21,16 @@ https://www.arduino.cc/en/guide/libraries section "Importing a .zip Library"
## Beispiele ## Beispiele
**Broker:** **Broker:**
- sPSN_Broker.ino **->** Broker Applikation (muss nicht angepasst werden)
- sPSN_Broker.ino **->** Broker Applikation (muss nicht angepasst werden)
**Clients:** **Clients:**
- sPSN_Client1(2).ino **->** Client Applikationen die sich gegenseitig einen analogen bzw. digtalen Wert senden
- sPSN_Client1(2).ino **->** Client Applikationen die sich gegenseitig einen analogen bzw. digtalen Wert senden
- sPSN-ClientMinimal.ino **->** Minimal-Code für den einfachen Einstieg - sPSN-ClientMinimal.ino **->** Minimal-Code für den einfachen Einstieg
- sPSN-Chat.ino **->** Chat-Applikation die Nachrichten unter eigenem Namen austauschen lässt - sPSN-Chat.ino **->** Chat-Applikation die Nachrichten unter eigenem Namen austauschen lässt
## Funktionen und Parameter ## Funktionen und Parameter
### Client ### Client
...@@ -56,7 +58,7 @@ int psnClient.subscribe(char* topic); ...@@ -56,7 +58,7 @@ int psnClient.subscribe(char* topic);
int psnClient.subscribe(char* topic, int length); int psnClient.subscribe(char* topic, int length);
// param1: Topic String/char-Array // param1: Topic String/char-Array
// param2: Anzahl Zeichen des Topics // param2: Anzahl Zeichen des Topics
// return ERROR-Wert: DN_ERROR_NO_ERROR, // return ERROR-Wert: DN_ERROR_NO_ERROR,
// DN_ERROR_TOPIC_LEN (Topic zu lang - wird abgeschnitten) // DN_ERROR_TOPIC_LEN (Topic zu lang - wird abgeschnitten)
#Anzahl der aboonierten Topics ausgeben #Anzahl der aboonierten Topics ausgeben
...@@ -71,62 +73,62 @@ int getSubscribedTopic(char*, int); ...@@ -71,62 +73,62 @@ int getSubscribedTopic(char*, int);
// DN_ERROR_NO_TOPIC (Topic unter der angegebenen Nummer nicht verfügbar) // DN_ERROR_NO_TOPIC (Topic unter der angegebenen Nummer nicht verfügbar)
#Topic eines anderen Clients entfernen #Topic eines anderen Clients entfernen
bool psnClient.unsubscribe(char* topic); bool psnClient.unsubscribe(char* topic);
// param: Topic String/char-Array // param: Topic String/char-Array
bool psnClient.unsubscribe(char* topic, int length); bool psnClient.unsubscribe(char* topic, int length);
// param1: Topic String/char-Array // param1: Topic String/char-Array
// param2: Anzahl Zeichen des Topics // param2: Anzahl Zeichen des Topics
// return true wenn Daten versendet / false wenn nicht // return true wenn Daten versendet / false wenn nicht
#Daten unter Topic veroeffentlichen #Daten unter Topic veroeffentlichen
int psnClient.publish(char* topic, char* payload); int psnClient.publish(char* topic, char* payload);
// param1: Topic String/char-Array; // param1: Topic String/char-Array;
// param2: payload-char-Array // param2: payload-char-Array
// return: ERROR-Wert: DN_PUBLISH_SUCCESSULL, // return: ERROR-Wert: DN_PUBLISH_SUCCESSULL,
// DN_ERROR_TOPIC_LEN (Topic zu lang - wird abgeschnitten), // DN_ERROR_TOPIC_LEN (Topic zu lang - wird abgeschnitten),
// DN_ERROR_PAYLOAD_LEN (Payload zu lange - wird abgeschnitten) // DN_ERROR_PAYLOAD_LEN (Payload zu lange - wird abgeschnitten)
int psnClient.publish(char* topic, bool payload); int psnClient.publish(char* topic, bool payload);
// param1: Topic String/char-Array; // param1: Topic String/char-Array;
// param2: payload vom Datentyp bool (wird in char-Array gewandelt) // param2: payload vom Datentyp bool (wird in char-Array gewandelt)
// return: ERROR-Wert: DN_PUBLISH_SUCCESSULL, // return: ERROR-Wert: DN_PUBLISH_SUCCESSULL,
// DN_ERROR_TOPIC_LEN (Topic zu lang - wird abgeschnitten), // DN_ERROR_TOPIC_LEN (Topic zu lang - wird abgeschnitten),
// DN_ERROR_PAYLOAD_LEN (Payload zu lange - wird abgeschnitten) // DN_ERROR_PAYLOAD_LEN (Payload zu lange - wird abgeschnitten)
int psnClient.publish(char* topic, int payload); int psnClient.publish(char* topic, int payload);
// param1: Topic String/char-Array; // param1: Topic String/char-Array;
// param2: payload vom Datentyp int (wird in char-Array gewandelt) // param2: payload vom Datentyp int (wird in char-Array gewandelt)
// return: ERROR-Wert: DN_PUBLISH_SUCCESSULL, // return: ERROR-Wert: DN_PUBLISH_SUCCESSULL,
// DN_ERROR_TOPIC_LEN (Topic zu lang - wird abgeschnitten), // DN_ERROR_TOPIC_LEN (Topic zu lang - wird abgeschnitten),
// DN_ERROR_PAYLOAD_LEN (Payload zu lange - wird abgeschnitten) // DN_ERROR_PAYLOAD_LEN (Payload zu lange - wird abgeschnitten)
int psnClient.publish(char* topic, int topicLength, char* payload, int payloadLength); int psnClient.publish(char* topic, int topicLength, char* payload, int payloadLength);
// param1: Topic String/char-Array // param1: Topic String/char-Array
// param2: Anzahl Zeichen des Topics // param2: Anzahl Zeichen des Topics
// param3: payload-char-Array // param3: payload-char-Array
// param4: Anzahl Zeichen der Payload // param4: Anzahl Zeichen der Payload
// return: ERROR-Wert: DN_PUBLISH_SUCCESSULL, // return: ERROR-Wert: DN_PUBLISH_SUCCESSULL,
// DN_ERROR_TOPIC_LEN (Topic zu lang - wird abgeschnitten), // DN_ERROR_TOPIC_LEN (Topic zu lang - wird abgeschnitten),
// DN_ERROR_PAYLOAD_LEN (Payload zu lange - wird abgeschnitten) // DN_ERROR_PAYLOAD_LEN (Payload zu lange - wird abgeschnitten)
//Daten werden beim Zustandswechsel von payload (0->1 / 1->0) veroeffentlicht //Daten werden beim Zustandswechsel von payload (0->1 / 1->0) veroeffentlicht
int psnClient.publishOnChange(char* topic, bool payload); int psnClient.publishOnChange(char* topic, bool payload);
// param1: Topic String/char-Array; // param1: Topic String/char-Array;
// param2: payload vom Datentyp bool (wird in char-Array gewandelt) // param2: payload vom Datentyp bool (wird in char-Array gewandelt)
// return: ERROR-Wert: DN_PUBLISH_SUCCESSULL, // return: ERROR-Wert: DN_PUBLISH_SUCCESSULL,
// DN_ERROR_NO_ERROR (Keine Daten veroeffentlicht und keine Fehler), // DN_ERROR_NO_ERROR (Keine Daten veroeffentlicht und keine Fehler),
// DN_ERROR_TOPIC_LEN (Topic zu lang - wird abgeschnitten), // DN_ERROR_TOPIC_LEN (Topic zu lang - wird abgeschnitten),
// DN_ERROR_PAYLOAD_LEN (Payload zu lange - wird abgeschnitten) // DN_ERROR_PAYLOAD_LEN (Payload zu lange - wird abgeschnitten)
// Daten werden veroeffentlicht, wenn Veränderung von payload groeßer als threshold ist // Daten werden veroeffentlicht, wenn Veränderung von payload groeßer als threshold ist
int psnClient.publishOnChange(char* topic, int payload, int threshold); int psnClient.publishOnChange(char* topic, int payload, int threshold);
// param1: Topic String/char-Array; // param1: Topic String/char-Array;
// param2: payload vom Datentyp bool (wird in char-Array gewandelt) // param2: payload vom Datentyp bool (wird in char-Array gewandelt)
// param1: Topic String/char-Array; // param1: Topic String/char-Array;
// return: ERROR-Wert: DN_PUBLISH_SUCCESSULL, // return: ERROR-Wert: DN_PUBLISH_SUCCESSULL,
// DN_ERROR_NO_ERROR (Keine Daten veroeffentlicht und keine Fehler), // DN_ERROR_NO_ERROR (Keine Daten veroeffentlicht und keine Fehler),
// DN_ERROR_TOPIC_LEN (Topic zu lang - wird abgeschnitten), // DN_ERROR_TOPIC_LEN (Topic zu lang - wird abgeschnitten),
// DN_ERROR_PAYLOAD_LEN (Payload zu lange - wird abgeschnitten) // DN_ERROR_PAYLOAD_LEN (Payload zu lange - wird abgeschnitten)
#Callback-Funktion (wird bei neuen Daten aufgerufen) #Callback-Funktion (wird bei neuen Daten aufgerufen)
...@@ -149,10 +151,10 @@ void newData(char* topic, int topicLength, char* payload, int payloadLength){... ...@@ -149,10 +151,10 @@ void newData(char* topic, int topicLength, char* payload, int payloadLength){...
#Anlegen der Broker-Instanz #Anlegen der Broker-Instanz
// Anlegen des Broker-Objekts // Anlegen des Broker-Objekts
// psnBroker -> moeglicher Name für Objekt // psnBroker -> moeglicher Name für Objekt
didacticPSNetBroker psnBroker; didacticPSNetBroker psnBroker;
#Starten der Broker-Instanz #Starten der Broker-Instanz
void psnBroker.begin(Stream& sSerial); void psnBroker.begin(Stream& sSerial);
// param: Schnittstelle (Serial | SoftwareSerial) // param: Schnittstelle (Serial | SoftwareSerial)
#Netzwerkverwaltung Broker (Daten senden und Empfangen, Zugriffsregelung) #Netzwerkverwaltung Broker (Daten senden und Empfangen, Zugriffsregelung)
...@@ -161,13 +163,44 @@ bool psnBroker.handleNetwork(); ...@@ -161,13 +163,44 @@ bool psnBroker.handleNetwork();
void psnBroker.setInterval(long intervalTime); void psnBroker.setInterval(long intervalTime);
// param: Mindestwartezeit in ms zwischen zwei Sendevorgängen (default 0 ms) // param: Mindestwartezeit in ms zwischen zwei Sendevorgängen (default 0 ms)
#Broker Verbose-Mode
//verbose-Ausgabe aktivieren
void psnBroker.setVerbose(Stream Serial);
//param: Stream-Port auf dem die Eingehenden Nachrichten ausgegeben werden sollen
// möglich: SoftwareSerial-Instanz, Serial, auch Serial1 / Serial2 / ... z. B. mit Mega2560-Boards
//verbose-Ausgabe deaktivieren
void psnBroker.setNoneVerbose();
//verbose-Ausgabe deaktivieren
``` ```
### Hilfreiche Funktionen ### Hilfreiche Funktionen
Die Hiflsfunktionen sind als eigenständige Klassen implementiert und koennen so mehrfach (unter verschiedenen Namen) angelegt werden. Die Hiflsfunktionen sind als eigenständige Klassen implementiert und koennen so mehrfach (unter verschiedenen Namen) angelegt werden.
So koennen die Funktionen mehrfach, mit unterschiedlichen Parametern, verwendet werden. So koennen die Funktionen mehrfach, mit unterschiedlichen Parametern, verwendet werden.
```cpp ```cpp
#Vereinfachtes Eingabe-Interface für den SerialMonitor
// Anlegen des serialMonitorUI-Objekts
// serialUI -> moeglicher Name für Objekt
serialMonitorUI serialUI;
bool serialUI.available();
// return: true -> wenn Eingabe vom SerialMonitor verfügbar ist (Eingabe mit Zeilenumbruch CR am SerialMonitor)
// false -> wenn KEINE Eingabe vom SerialMonitor verfügbar ist
//gebe Steuerzeichen aus
char serialUI.readCommand();
// return: CHAR an erster Stelle eingegebenes Steuerzeichen
// möglich: ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ {
//speichere Eingabe
void serialUI.readUserInput(char *);
//param: Array in das die Eingegebenen Zeichen gespeichert werden sollen
#Flankenerkennung z.B. fuer Taster #Flankenerkennung z.B. fuer Taster
// Anlegen des EdgeDetector-Objekts // Anlegen des EdgeDetector-Objekts
// eDetector -> moeglicher Name für Objekt // eDetector -> moeglicher Name für Objekt
...@@ -211,6 +244,7 @@ int sReader.readSerialData(Stream&, char*, char); ...@@ -211,6 +244,7 @@ int sReader.readSerialData(Stream&, char*, char);
### Konstanten ### Konstanten
Konstanten aus der Library die fuer die Programmierung genutzt werden und angepasst werden koennen. Konstanten aus der Library die fuer die Programmierung genutzt werden und angepasst werden koennen.
```cpp ```cpp
#ASCII Endezeichen #ASCII Endezeichen
DN_ASCII_CR "carriage return CR" (int) 13 DN_ASCII_CR "carriage return CR" (int) 13
...@@ -260,4 +294,4 @@ CALLBACK_W_LENGTH not defined ...@@ -260,4 +294,4 @@ CALLBACK_W_LENGTH not defined
- vor der Bestellung Bauteilliste (Preise) aktualisieren - vor der Bestellung Bauteilliste (Preise) aktualisieren
- Bestellung der Platinen (Peautiful Boards) und der Bauteile (Precious Parts) - Bestellung der Platinen (Peautiful Boards) und der Bauteile (Precious Parts)
**Hinweis:** Das Projekt letsgoING ist in **keiner Weise** an dem **Verkauf beteiligt**. **Hinweis:** Das Projekt letsgoING ist in **keiner Weise** an dem **Verkauf beteiligt**.
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment