command.h

00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 #ifndef command
00009 #define command
00010 
00011 const int max_params = 255; 
00012 
00013 class cmd
00014 {
00015         public:
00016            
00019                 unsigned char calc_checksum_mod( void );                                
00020                 
00021     private:
00022             
00023                 unsigned char type;  
00024                 unsigned char content;  
00025                 unsigned char param_number;  
00026                 unsigned char params[max_params];  
00027                 unsigned char checksum_mod;  
00028                 
00029                 //Konstruktor am besten mit Parametern aufrufen!
00030                 cmd( unsigned char atype, unsigned char acontent, unsigned char aparams[] );
00031                 //Falls man ihn ohne Parameter aufruft, unbedingt sicherstellen, dass
00032                 //Prüfsumme checksum_mod und param_number korrekt gesetzt werden!
00033                 cmd( void );
00034 
00035 /*
00036 Wir brauchen OBdA nicht mehr als 255 Parameter pro Befehl
00037 Die feste Größe des Parameterfeldes gewährleistet, dass wir mit der durch 255
00038 beschränkten Variable param_number immer alle Parameter zählen können und
00039 außerdem bleibt so die Größe eines jeden Befehls konstant (259 Bytes bis jetzt)
00040 */
00041 
00042 };
00043 
00044 
00045 /*
00046 Dies ist mein Vorschlag für eine Vergabe von Typennummern:
00047   1: Systemmeldung, z.B.
00048      - Ping
00049      - Befehl zum ausführen der zwischengespeicherten Roboterbefehle
00050      - Befehl: Programm schließen [und System herunterfahren]
00051   2: Roboterbefehl
00052      - Vorwärts
00053      - Rückwärts
00054      - Rechts
00055      - Links
00056      - Mozart 1
00057      - Mozart 2
00058      - ...
00059      - Mozart n
00060      - Weltherrschaft
00061 */  
00062 
00063 #endif

Generated on Sun Sep 3 23:47:22 2006 by  doxygen 1.4.7