|
UniSet
2.2.1
|
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 // -------------------------------------------------------------------------
1.7.6.1