Select Git revision
TestSerial.ino
-
RobertPatzke authoredRobertPatzke authored
TestSerial.ino 13.77 KiB
// =============================================================================
// Testprogramm für serielle Schnittstellen (eigene Treiber)
// =============================================================================
//
#include "TestSerial.h"
char *StartMsg =
{
"%@TestSerial "
TmpVerMsg
};
LoopCheck lc;
// Eine statische Instanz der Klasse LoopCheck
// Darüber wird das Zeitverhalten gesteuert (Software-Timer) und geprüft
#ifdef DebugTerminal
Monitor mon(modeEcho | modeNl,0,&lc);
// Eine statische Instanz (mit Konstruktordaten) der Klasse Monitor
// Darüber wird mit (direkten) Terminals (z.B. VT100) kommuniziert
// Unter Linux werden hier GtkTerm (siehe Internet) und
// ArduinoMonTerm (eigene Entwicklung mit grafischen Wertanzeigen) eingesetzt.
// Das in den IDEs integrierte Terminal ist dafür meistens nicht geeignet,
// weil damit keine direkte Kommunikation (getipptes Zeichen sofort gesendet)
// möglich ist.
// ----- Parameter ------------------------------------------------------------
// <mode Echo> Alle eintreffenden Zeichen werden sofort zurückgesendet
// <mode NL> Vor der Ausgabe des Prompt (M>) erfolgt CR/LF
// <0> Für Speicherzugriffe wird von 32 Bit ARM ausgegangen
// <&lc> Für Zeitüberwachungen und entsprechende statistische Daten
// greift die Monitor-Instanz auf die LoopCheck-Instanz zu
char *infoThis =
{
"DHE TestSerial Version 1.0.0\r\n"
"c0 Abschalten der periodischen Meldung\r\n"
"c1 Prüfen der Speicheradressen\r\n"
"c2 Testen der Ringpuffer und seriellen Schnittstellen\r\n"
//"c3 Steuern/Analysieren der Messwerterfassung\r\n"
//"c4 Testen von Peripheriezugriffen\r\n"
//"c5 Temporäre lokale Tests\r\n"
};
#endif
#ifdef DebugTerminal
#define smCycleTime 5
void smInit(); // Vorwärtsreferenz auf die weiter unten definierte Funktion
StateMachine sm(smInit, NULL, smCycleTime);
// Eine statische Instanz für die Zustandsmaschine, die hier für allgemeine
// Steuerungen, Überwachungen und zum Debugging verwendet wird
// ----- Parameter ------------------------------------------------------------
// <smInit> Der zuerst aufgerufene Zustand (Funktion). Weitere Zustände
// werden in den weiteren Zustandsfunktionen eingesetzt.
// <NULL> Hier kann eine weitere Zustandsfunktion angegeben werden,
// die dann grundsätzlich vor dem Verzweigen in einen Zustand
// aufgerufen wird.
// <smCycleTime> Die Zukluszeit (Takt) der Zustandsmaschine in Millisekunden
#endif
SerParams tty1Params, tty2Params;
// ----------------------------------------------------------------------------
nRF52840SerE tty1,tty2;
// ----------------------------------------------------------------------------
// Eine statische Instanz der Klasse nRF52840SerE (UARTE)
// Darüber werden die seriellen Schnittstellen (UARTE0 und UARTE1) des
// nRF52840 bedient.
// Die Parameter werden in einer Struktur <SerParams> über die Funktion