Funktionen der Library MySecureSend


MySecureSend MySecureSend

Funktion: Erzeugt eine neue Instanz

Parameter: keine


bool init(int size, byte i2cAdd, byte aIn)

Funktion: Initialisierung der Library

Parameter: size: EEPROM-Größe in kByte (maximal 512 kByt)

                 i2cAdd: I2C-Adresse des EEPROMs

                 aIn: unbenutzter Analogeingang (für Startwert des Zufallszahlengenerator)

Rückgabe: TRUE, wenn EEPROM über I2C-Schnittstelle ansprechbar ist, sonst FALSE

Bemerkung:

Durch die Funktion wird auch die Sendeleistung auf minimal Leistung gesetzt und die Anzahl der gesendeten Bytes pro Telegramm auf 24 eingestellt.

Die EEPROM-Größe size sollte 512 kByte betragen. EEPROMs mit mehr als 512 kByte werden aber nicht unterstützt. Zum Testen können natürlich auch EEPROMs mit weniger Speicherplatz verwendet werden.


void openReadingPipe(uint8_t num, uint64_t add)

Funktion: Öffnen eines Empfangskanals

Parameter: num: Nummer des Empfangskanals (1 <= num <= 5)

                 add: Adresse des Empfangskanals (add <= 40 Bit)

Rückgabe: keine

Bemerkung: Für num und add gelten die Konventionen der gleichnamigen Funktion der RF24-Library. Es können mehrere Empfangskanäle gleichzeitig geöffnet sein.


void openWritingPipe(uint64_t add)

Funktion: Öffnen eines Sendekanals

Parameter: add: Adresse des Sendekanals (add <= 40 Bit)

Rückgabe: keine

Bemerkung: Für add gelten die Konventionen der gleichnamigen Funktion der RF24-Library. Es kann gleichzeitig immer nur ein Sendekanal eröffnet werden.


void setPALevel (byte level)

Funktion: Einstellen der Sendeleistung

Parameter: level: PA_MIN (Grundeinstellung)

                          PA_LOW

                          PA_HIGH

                          PA_MAX

Rückgabe: keine

Bemerkung: Entspricht der gleichnamigen Funktion der RF24-Library


void setPayLoadSize (byte size)

Funktion: Setzen der Anzahl der Bytes eines Telegramms

Parameter: size: Anzahl der Bytes (24 <= size <= 32)

Rückgabe: keine

Bemerkung: Entspricht der gleichnamigen Funktion der RF24-Library, wo die Telegrammlänge maximal 32 Byte betragen darf. Allerdings benötigt MySecureSend eine minimale Telegrammlänge von 24 Byte.


void setChannel (byte channel)

Funktion: Setzen der Sendefrequenz

Parameter: channel: Sendefrequenz (0 <= channel <= 127) -> entspricht einer Sendefrequenz von 2,400 bis 2,525 GHz

Rückgabe: keine

Bemerkung: Entspricht der gleichnamigen Funktion der RF24-Library


bool transmit(char* befehl, byte size)

Funktion: Gesichertes Senden eines Befehls

Parameter: befehl: Zeiger auf das Character-Array, mit der zu sendenden Zeichenfolge

                  size: Größe des Character-Arrays

Rückgabe: TRUE, wenn die Übertragung erfolgreich war, sonst FALSE

Sonstiges: Die Funktion transmit ruft folgende Funktion auf, die im Hauptprogramm definiert sein muss (Beschreibung siehe weiter unten):

  • unsigned long MySecureSend_Pruefsumme(byte* eeWert, byte auswahl)


bool checkReceive()

Funktion: Prüfung, ob ein Befehl empfangen wurde

Parameter: keine

Rückgabe: TRUE, wenn Befehl erhalten, sonst FALSE

Bemerkung: Über die Variable pipeNumber kann die Nummer des Empfangskanals abgefragt werden


bool receive(char* befehl, byte size)

Funktion: Gesichertes Empfangen eines Befehls

Parameter: befehl: Zeiger auf das Character-Array, mit der gesendeten Zeichenfolge

                  size: Größe des Character-Arrays

Rückgabe: TRUE, wenn die Übertragung erfolgreich war, sonst FALSE

Sonstiges: Die Funktion receive ruft folgende Funktionen auf, die im Hauptprogramm definiert sein müssen (Beschreibung siehe weiter unten):

  • bool MySecureSend_CheckBefehl(char* befehl)
  • void MySecureSend_ExecuteBefehl(char* befehl)
  • unsigned long MySecureSend_Pruefsumme(byte* eeWert, byte auswahl)


void indicateOnLed(bool status, byte ledPin, int lightTime, int blinkTime)

Funktion: Statusanzeige über LED

Parameter: status: Status, der angezeigt werden soll (TRUE oder FALSE)

                 ledPin: Pin der angeschlossenen LED

                 lightTime: Leuchtdauer der LED in Millisekunden, wenn status == TRUE

                 blinkTime: Blinkdauer der LED, wenn status == FALSE

Rückgabe: keine


Variable:

uint8_t pipeNumber

Wenn der Rückgabewert der Funktion checkReceive TRUE ist, gibt pipeNumber die Nummer des Empfangskanals an. Erforderlich, falls Befehle von mehr als einem Sender empfangen werden müssen und die Befehlsabarbeitung unterschiedlich ist.


Funktionen und Variable, die im Hauptprogramm definiert sein müssen:

Für Sender und Empfänger:

byte mySecureSend_CE

Definiert den Pin der mit "Chip Enable" (CE) des RF-Moduls verbunden ist


byte mySecureSend_CSN

Definiert den Pin der mit "Chip Select" (CSN) des RF-Moduls verbunden ist


unsigned long MySecureSend_Pruefsumme(byte* eeWert, byte auswahl)

Funktion: Berechnung der Prüfsummen 1 und 2

Parameter: eeWert: byte-Array mit 6 EEPROM-Werten

                 auswahl: Auswahl, welche Prüfsumme gebildet werden soll (1 <= auswahl <= 2)

Rückgabe: Prüfsumme1 oder Prüfsumme2

Bemerkung: Die Berechnungen der beiden Prüfsummen müssen im Sender und im Empfänger identisch sein!!


Für Empfänger:

bool MySecureSend_CheckBefehl(char* befehl)

Funktion: Überprüfen, ob ein gültiger Befehl gesendet wurde

Parameter: befehl: Zeiger auf das Character-Array, mit der gesendeten Zeichenfolge

Rückgabe: TRUE, wenn gültiger Befehl gesendet wurde, sonst FALSE


void MySecureSend_ExecuteBefehl(char* befehl)

Funktion: Ausführen des Befehls

Parameter: befehl: Zeiger auf das Character-Array, mit der gesendeten Zeichenfolge

Rückgabe: keine


Zur Library Funksicherheit mit nRF24L01+