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