00001
00002 #ifndef AutomatMessages_H_
00003 #define AutomatMessages_H_
00004
00005 #include "UniSetAlgorithmsMessages.h"
00006
00008 class AutomatMessage:
00009 public UniSetAlgorithms::UniSetAlgorithmsMessage
00010 {
00011 public:
00012
00013 static const int MessageTypeID = UniSetAlgorithms::UniSetAlgorithmsMessage::AutomatInfo;
00014
00015 enum Events
00016 {
00017 Protection,
00018 ChangeMode,
00019 Command,
00020 CommandNotComplete
00021 };
00022
00023 enum AutomatMode
00024 {
00025 OffMode,
00026 OnMode,
00027 SleepMode,
00028 OffOnlyMode
00029 };
00030
00031 enum Commands
00032 {
00033 OnSync,
00034 On,
00035 Off,
00036 Reset,
00037 OffControl,
00038 OnControl
00039 };
00040
00041 AutomatMessage( UniSetTypes::ObjectId id, Events ev, int inf,
00042 Message::Priority p = Message::Medium):
00043 evnt(ev),
00044 inf(inf),
00045 id(id),
00046 errcode(UniSetTypes::DefaultMessageCode)
00047 {
00048 type = AutomatMessage::MessageTypeID;
00049 priority = p;
00050 }
00051
00052 AutomatMessage(const UniSetTypes::VoidMessage *msg)
00053 {
00054 memcpy(this,msg,sizeof(*this));
00055 assert(this->type == AutomatMessage::MessageTypeID );
00056 }
00057
00058 inline UniSetTypes::TransportMessage transport_msg() const
00059 {
00060 return transport(*this);
00061 }
00062
00063 Events evnt;
00064 int inf;
00065 UniSetTypes::ObjectId id;
00066
00067
00068 UniSetTypes::MessageCode errcode;
00069 };
00070
00071 #endif // AutomatMessages_H_