UniSet  2.2.1
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         erSessionClosed         = 16  
00032     };
00033 
00034     // ---------------------------------------------------------------------
00035     std::string mbErr2Str( mbErrCode e );
00036     // ---------------------------------------------------------------------
00037     class mbException:
00038         public UniSetTypes::Exception
00039     {
00040         public:
00041             mbException():
00042                 UniSetTypes::Exception("mbException"), err(ModbusRTU::erNoError) {}
00043             mbException( ModbusRTU::mbErrCode err ):
00044                 UniSetTypes::Exception(mbErr2Str(err)), err(err) {}
00045 
00046 
00047             ModbusRTU::mbErrCode err;
00048 
00049             friend std::ostream& operator<<(std::ostream& os, mbException& ex )
00050             {
00051                 return os << "(" << ex.err << ") " << mbErr2Str(ex.err);
00052             }
00053     };
00054     // ---------------------------------------------------------------------
00055 }
00056 // -------------------------------------------------------------------------
00057 #endif // ModbusRTUErrors_H_
00058 // -------------------------------------------------------------------------