Skip to content
Snippets Groups Projects
Select Git revision
  • 784778f6d50e39e7443fc568aec172c50bef828b
  • main default protected
  • SOAPP_2.0_development
  • Developement_Karger
4 results

TestSerial.ino

Blame
  • 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