UniSet
1.4.0
|
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 // -------------------------------------------------------------------------