#ifndef MPB
#define MPB

enum MPB_CMDS { MP_VERSION = 0x20,  // Version Nr. 
        MP_SYSTEMZEIT,              // uint32
        MP_ALLES_AUS,               // Motore + Ventile
        MP_STEPPER_STATUS,          // uint8

        MP_SCHALTE_VENTIL,          // kanal= Nr. Typ = 1(ein)/0(aus)
        MP_TESTE_VENTIL,            // kanal= Nr. Typ = 1(ein)/0(aus)
        MP_LESE_INPUT,              // uint8
        MP_LESE_ADC,                // int, kanal=Eingang

        MP_STEPPER_INIT,            // langsam, schnell, rampe, modus
        MP_STEPPER_PARA1,           // Ruhestrom, Fahrtstrom, Steigung
        MP_STEPPER_PARA2,           // Indexgeschw., Indexversatz, Indexschritte
        MP_STEPPER_STOP,
        MP_STEPPER_ZIELFAHRT,       // int32 Ziel, timeout
        MP_STEPPER_AUF_INDEX,       // max_schritte, timeout
        MP_STEPPER_IST_POS,         // der aktuellen Pos. Wert zuweisen
        MP_STEPPER_SPEED,           // neue geschwindigkeit
        MP_STEPPER_DIREKT,          // ziel schritte

        MP_TAB_ENDE
        };

#define ME_ADRESSE  0x30            // individuelle Adresse eines Moduls


#define ADR_TIMEOUT 5               // fuer Adresierung
#define SER_TIMEOUT 20              // normalerweise 20 ms
#define DEF_TIMEOUT 20              // normalerweise 20 ms
#define VERSUCHE    3               // normalerweise 3

#define LF          10
#define CR          13

#define RX_QUITTUNG '*'
#define RX_FEHLER   '?'
#define ERROR       -1
#define TIMEOUT_ERR -2

#define MAX_HEX_BYTE    40
#define MAX_BEF_BYTE    32
#define MAX_TEMP_STR    32

#define LEN_HEX     0               // laenge im ihex
#define BEF_HEX     1               // adresse
#define KANAL_HEX   2               // kanalnummer
#define TYP_HEX     3               // typ
#define DATA_HEX    4               // im ihex-str beginnen hier die Daten
#define MP_DATEN_ZUSATZ 5           // 5 bytes mehr uebertragen

#endif
