Commit 1fabb89d authored by Pavel Vainerman's avatar Pavel Vainerman

(MTR): добавил коды ошибок (close eterbug #8659)

parent 242176c1
......@@ -89,8 +89,17 @@ namespace MTR
ComPort::Parity get_parity( ModbusRTU::ModbusData data );
ComPort::Speed get_speed( ModbusRTU::ModbusData data );
// -------------------------------------------------------------------------
enum MTRError
{
mtrNoError,
mtrBadDeviceType,
mtrDontReadConfile,
mtrSendParamFailed,
mtrUnknownError
};
std::ostream& operator<<(std::ostream& os, MTRError& e );
// Настройка из конф. файла
bool update_configuration( ModbusRTUMaster* mb, ModbusRTU::ModbusAddr addr,
MTRError update_configuration( ModbusRTUMaster* mb, ModbusRTU::ModbusAddr addr,
const std::string mtrconfile, int verbose=0 );
// ---------------------------
// вспомогательные функции и типы данных
......@@ -99,7 +108,6 @@ namespace MTR
const int attempts = 3; //
static const ModbusRTU::ModbusData skip[] = {48, 49, 59}; // registers which should not write
bool send_param( ModbusRTUMaster* mb, DataMap& dmap, ModbusRTU::ModbusAddr addr, int verb );
bool read_param( const std::string str, std::string& str1, std::string& str2 );
DataMap read_confile( const std::string f );
......
......@@ -435,27 +435,48 @@ bool send_param( ModbusRTUMaster* mb, DataMap& dmap, ModbusRTU::ModbusAddr addr,
return true;
}
// ------------------------------------------------------------------------------------------
bool update_configuration( ModbusRTUMaster* mb, ModbusRTU::ModbusAddr slaveaddr,
MTR::MTRError update_configuration( ModbusRTUMaster* mb, ModbusRTU::ModbusAddr slaveaddr,
const std::string mtrconfile, int verb )
{
std::string m = MTR::getModelNumber(mb, slaveaddr);
if( m != "MTR315Transducer" )
{
cerr << "(mtr-setup): model number != 'MTR315Transducer' (read: " << m << ")" << endl;
return false;
return mtrBadDeviceType;
}
DataMap dmap = MTR::read_confile(mtrconfile);
if( dmap.empty() )
{
cerr << "(mtr-setup): error read confile=" << mtrconfile << endl;
return false;
return mtrDontReadConfile;
}
if( send_param(mb,dmap,slaveaddr,verb) )
return true;
return send_param(mb,dmap,slaveaddr,verb) ? mtrNoError : mtrSendParamFailed;
}
// ------------------------------------------------------------------------------------------
std::ostream& operator<<(std::ostream& os, MTR::MTRError& e )
{
switch(e)
{
case mtrNoError:
os << "mtrNoError";
break;
case mtrBadDeviceType:
os << "mtrBadDeviceType";
break;
case mtrDontReadConfile:
os << "mtrDontReadConfile";
break;
case mtrSendParamFailed:
os << "mtrSendParamFailed";
break;
default:
os << "Unknown error";
break;
}
return false;
return os;
}
// ------------------------------------------------------------------------------------------
std::ostream& operator<<(std::ostream& os, MTR::T1& t )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment