protocol.h

00001 /*
00002 
00003 ~~~~~~~~~~~~~~
00004 ~ protocol.h ~
00005 ~~~~~~~~~~~~~~
00006 
00007 Definitionen für das Netzwerkprotkoll, das zur Kommunikation mit dem Roboter
00008 verwendet wird. Weiterführende Informationen finden sich in der
00009 Projektddokumentation.
00010 
00011 Dieser Quelltext ist ursprünglich Teil des Programmes Eukalyptos, welches zur
00012 Netzwerkfernsteuerung von Lego-RCX-2-Robotern dient und von Lutz Büch, Bastian
00013 Rieck und Carlos Franke im Rahmen eines Praktikums am Interdisziplinären 
00014 Zentrum für Wissenschaftliches Rechnen (IWR) der Universität Heidelberg 
00015 geschaffen wurde.
00016 
00017 */
00018 
00019 #ifndef PROTOCOL_H
00020 #define PROTOCOL_H
00021 
00022 #include <string>
00023 
00024 using namespace std;
00025 
00026 const unsigned char MSG_TYPE_SYSTEM = 1;        
00027 const unsigned char MSG_TYPE_ROBOT = 2;         
00028 const unsigned char MSG_PING = 1;               
00029 
00030 const unsigned char MSG_ANIMA = 2;              
00031 
00032 const unsigned char MSG_REANIMA = 3;            
00033 const unsigned char MSG_INANIMA = 4;            
00034 const unsigned char MSG_EXECUTION_TIME = 5;     
00035 
00036 const unsigned char MSG_EXECUTED_COMMANDS = 6;  
00037 
00038 const unsigned char MSG_BATTERY_VOLTAGE = 7;    
00039 
00040 const unsigned char MSG_LOG = 8;                
00041 
00042                          
00043 const unsigned short CONVERSATION_READ_ARCHIVED_COMMANDS = 0;
00044 const unsigned short CONVERSATION_READ_RECEIVED_COMMANDS = 1;
00045 const unsigned short CONVERSATION_READ_EXECUTED_COMMANDS = 2;
00046 
00048 class net_msg_hdr
00049 {
00050         public:
00051         
00052                 net_msg_hdr( void );    
00053                 net_msg_hdr( unsigned char type, unsigned char cmd, size_t param_size = 0 );
00054                 
00055                 int set_type( unsigned char type );
00056                 int set_cmd( unsigned char cmd );
00057                 int set_chksum( void );
00058                 int set_size( size_t size );
00059                 
00060                 unsigned char get_type( void ) const;
00061                 unsigned char get_cmd( void ) const;
00062                 
00063                 size_t get_size( void ) const;
00064 
00065         private:
00066 
00067 
00068                 unsigned char type;     
00069                 unsigned char cmd;      
00070                 size_t param_size;      
00071 };
00072 
00074 struct saved_net_msg
00075 {
00076         net_msg_hdr header;
00077         string params;
00078 };
00079 
00080 #endif

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