UniSet  1.4.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 ModbusRTU
00009 {
00013     enum mbErrCode
00014     {
00015         erNoError               = 0, 
00016         erUnExpectedPacketType  = 1, 
00017         erBadDataAddress        = 2, 
00018         erBadDataValue          = 3, 
00019         erHardwareError         = 4, 
00020         erAnknowledge           = 5, 
00021         erSlaveBusy             = 6, 
00022         erOperationFailed       = 7, 
00023         erMemoryParityError     = 8, 
00025         erInternalErrorCode = 10,   
00026         erInvalidFormat     = 11,   
00027         erBadCheckSum       = 12,   
00028         erBadReplyNodeAddress = 13, 
00029         erTimeOut           = 14,   
00030         erPacketTooLong     = 15    
00031     };
00032 
00033     // ---------------------------------------------------------------------
00034     std::string mbErr2Str( mbErrCode e );
00035     // ---------------------------------------------------------------------
00036     class mbException:
00037         public UniSetTypes::Exception
00038     {
00039         public:
00040             mbException():
00041                 UniSetTypes::Exception("mbException"),err(ModbusRTU::erNoError){}
00042             mbException( ModbusRTU::mbErrCode err ):
00043                 UniSetTypes::Exception(mbErr2Str(err)),err(err){}
00044             
00045             
00046             ModbusRTU::mbErrCode err;
00047 
00048             friend std::ostream& operator<<(std::ostream& os, mbException& ex )
00049             {
00050                 return os << "(" << ex.err << ") " << mbErr2Str(ex.err);
00051             }
00052     };
00053     // ---------------------------------------------------------------------
00054 }
00055 // -------------------------------------------------------------------------
00056 #endif // ModbusRTUErrors_H_
00057 // -------------------------------------------------------------------------