uniset-algorithms 0.2
SEESMessages.h
00001 // -------------------------------------------------------------------------
00002 #ifndef SEESMessages_H_
00003 #define SEESMessages_H_
00004 // -------------------------------------------------------------------------
00005 #include "UniSetAlgorithmsMessages.h"
00006 // -------------------------------------------------------------------------
00008 class SEESMessage:
00009     public UniSetAlgorithms::UniSetAlgorithmsMessage
00010 {
00011     public:
00012         
00013         static const int MessageTypeID = UniSetAlgorithmsMessage::SEESInfo;
00014     
00016         enum Events
00017         {
00018             Protection,     
00019             ChangeMode,     
00020             Overload95,     
00021             Overload20,     
00022             Overload105,    
00023             Fault,          
00024             CommandNotComplete, 
00025             NeedOnReserv,       
00026             NeedOffReserv,      
00027             CheckReservInfo,    
00028             CheckReservCmd,     
00029             DieselChangeMode    
00030         };
00031 
00033         enum SEESMode
00034         {
00035             OffMode,            
00036             OnMode,             
00037             ReservMode,         
00038             AutoMode,           
00039             SleepMode,          
00040             RunningMode,        
00041             ProtectionMode,     
00042             InitMode,           
00043             UdefinedMode,       
00044             WaitingMode,        
00045             AutoWaitingMode,    
00046             AcceptWaitMode,     
00047             QGOnWaitingMode,
00048             QGOffWaitingMode,
00049             DieselOffMode       
00050         };
00051 
00052         SEESMessage(Events ev, int inf, int num, int gnum, Message::Priority p = Message::Medium):
00053             evnt(ev),inf(inf),num(num),gnum(gnum),
00054             errcode(UniSetTypes::DefaultMessageCode)
00055         {
00056             type = SEESMessage::MessageTypeID;
00057             priority = p;
00058         }
00059 
00060         SEESMessage(const UniSetTypes::VoidMessage *msg)
00061         {
00062             memcpy(this,msg,sizeof(*this));
00063             assert(this->type == SEESMessage::MessageTypeID );
00064         }
00065 
00066         inline UniSetTypes::TransportMessage transport_msg() const
00067         {
00068             return transport(*this);
00069         }
00070     
00071         Events evnt;
00072         int inf;
00073         int num;
00074         int gnum;
00075         // в случае неудачного выполнения команды
00076         // здесь можно указать причину
00077         UniSetTypes::MessageCode errcode;
00078 };
00079 // -------------------------------------------------------------------------
00080 #endif // SEESMessages_H_