UniSet  2.6.0
ModbusRTUErrors.h
00001 #ifndef ModbusRTUErrors_H_
00002 #define ModbusRTUErrors_H_
00003 // -------------------------------------------------------------------------
00004 #include <string>
00005 #include <iostream>
00006 #include "Exceptions.h"
00007 // -------------------------------------------------------------------------
00008 namespace uniset
00009 {
00010 // -------------------------------------------------------------------------
00011 namespace ModbusRTU
00012 {
00016 enum mbErrCode
00017 {
00018     erNoError               = 0,  
00019     erUnExpectedPacketType  = 1,  
00020     erBadDataAddress        = 2,  
00021     erBadDataValue          = 3,  
00022     erHardwareError         = 4,  
00023     erAnknowledge           = 5,  
00024     erSlaveBusy             = 6,  
00025     erOperationFailed       = 7,  
00026     erMemoryParityError     = 8,  
00028     erInternalErrorCode     = 10, 
00029     erInvalidFormat         = 11, 
00030     erBadCheckSum           = 12, 
00031     erBadReplyNodeAddress   = 13, 
00032     erTimeOut               = 14, 
00033     erPacketTooLong         = 15, 
00034     erSessionClosed         = 16  
00035 };
00036 
00037 // ---------------------------------------------------------------------
00038 std::string mbErr2Str( mbErrCode e );
00039 // ---------------------------------------------------------------------
00040 class mbException:
00041     public uniset::Exception
00042 {
00043     public:
00044         mbException():
00045             uniset::Exception("mbException"), err(ModbusRTU::erNoError) {}
00046         mbException( ModbusRTU::mbErrCode err ):
00047             uniset::Exception(mbErr2Str(err)), err(err) {}
00048 
00049 
00050         ModbusRTU::mbErrCode err;
00051 
00052         friend std::ostream& operator<<(std::ostream& os, mbException& ex )
00053         {
00054             return os << "(" << ex.err << ") " << mbErr2Str(ex.err);
00055         }
00056 };
00057 // ---------------------------------------------------------------------
00058 } // end of namespace ModbusRTU
00059 // -------------------------------------------------------------------------
00060 } // end of namespace uniset
00061 // -------------------------------------------------------------------------
00062 #endif // ModbusRTUErrors_H_
00063 // -------------------------------------------------------------------------