Commit 3844a82c authored by Pavel Vainerman's avatar Pavel Vainerman

(2.0): Оптимизация: везде где можно заменил const string --> const string&

parent 07d7b048
......@@ -23,7 +23,7 @@ std::ostream& operator<<( std::ostream& os, IOControl::IOInfo& inf )
// -----------------------------------------------------------------------------
IOControl::IOControl( UniSetTypes::ObjectId id, UniSetTypes::ObjectId icID,
SharedMemory* ic, int numcards, const std::string prefix_ ):
SharedMemory* ic, int numcards, const std::string& prefix_ ):
UniSetObject(id),
polltime(150),
cards(11),
......@@ -1147,7 +1147,7 @@ void IOControl::check_testlamp()
// -----------------------------------------------------------------------------
IOControl* IOControl::init_iocontrol( int argc, const char* const* argv,
UniSetTypes::ObjectId icID, SharedMemory* ic,
const std::string prefix )
const std::string& prefix )
{
string name = conf->getArgParam("--"+prefix+"-name","IOControl1");
if( name.empty() )
......
......@@ -195,13 +195,13 @@ class IOControl:
public UniSetObject
{
public:
IOControl( UniSetTypes::ObjectId id, UniSetTypes::ObjectId icID, SharedMemory* ic=0, int numcards=2, const std::string prefix="io" );
IOControl( UniSetTypes::ObjectId id, UniSetTypes::ObjectId icID, SharedMemory* ic=0, int numcards=2, const std::string& prefix="io" );
virtual ~IOControl();
/*! глобальная функция для инициализации объекта */
static IOControl* init_iocontrol( int argc, const char* const* argv,
UniSetTypes::ObjectId icID, SharedMemory* ic=0,
const std::string prefix="io" );
const std::string& prefix="io" );
/*! глобальная функция для вывода help-а */
static void help_print( int argc, const char* const* argv );
......@@ -303,7 +303,7 @@ class IOControl:
void waitSM();
bool checkCards( const std::string func="" );
bool checkCards( const std::string& func="" );
// std::string myname;
xmlNode* cnode; /*!< xml-узел в настроечном файле */
......
......@@ -28,7 +28,7 @@ class MBExchange:
{
public:
MBExchange( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmID, SharedMemory* ic=0,
const std::string prefix="mb" );
const std::string& prefix="mb" );
virtual ~MBExchange();
/*! глобальная функция для вывода help-а */
......
......@@ -10,8 +10,8 @@ using namespace std;
using namespace UniSetTypes;
using namespace UniSetExtensions;
// -----------------------------------------------------------------------------
MBTCPMaster::MBTCPMaster( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId,
SharedMemory* ic, const std::string prefix ):
MBTCPMaster::MBTCPMaster( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId,
SharedMemory* ic, const std::string& prefix ):
MBExchange(objId,shmId,ic,prefix),
force_disconnect(true),
mbtcp(0),
......@@ -84,7 +84,7 @@ ModbusClient* MBTCPMaster::initMB( bool reopen )
{
if( !reopen )
return mbtcp;
delete mbtcp;
mb = 0;
mbtcp = 0;
......@@ -94,7 +94,7 @@ ModbusClient* MBTCPMaster::initMB( bool reopen )
{
ost::Thread::setException(ost::Thread::throwException);
mbtcp = new ModbusTCPMaster();
ost::InetAddress ia(iaddr.c_str());
mbtcp->connect(ia,port);
mbtcp->setForceDisconnect(force_disconnect);
......@@ -103,12 +103,12 @@ ModbusClient* MBTCPMaster::initMB( bool reopen )
mbtcp->setTimeout(recv_timeout);
mbtcp->setSleepPause(sleepPause_usec);
mbtcp->setAfterSendPause(aftersend_pause);
if( dlog.is_info() )
dlog.info() << myname << "(init): ipaddr=" << iaddr << " port=" << port << endl;
if( dlog.debugging(Debug::LEVEL9) )
mbtcp->setLog(dlog);
}
......@@ -175,9 +175,9 @@ void MBTCPMaster::help_print( int argc, const char* const* argv )
cout << "--prefix-persistent-connection 0,1 - Не закрывать соединение на каждом цикле опроса" << endl;
}
// -----------------------------------------------------------------------------
MBTCPMaster* MBTCPMaster::init_mbmaster( int argc, const char* const* argv,
UniSetTypes::ObjectId icID, SharedMemory* ic,
const std::string prefix )
MBTCPMaster* MBTCPMaster::init_mbmaster( int argc, const char* const* argv,
UniSetTypes::ObjectId icID, SharedMemory* ic,
const std::string& prefix )
{
string name = conf->getArgParam("--" + prefix + "-name","MBTCPMaster1");
if( name.empty() )
......@@ -191,7 +191,7 @@ MBTCPMaster* MBTCPMaster::init_mbmaster( int argc, const char* const* argv,
if( ID == UniSetTypes::DefaultObjectId )
{
if( dlog.debugging(Debug::CRIT) )
dlog.crit() << "(MBTCPMaster): идентификатор '" << name
dlog.crit() << "(MBTCPMaster): идентификатор '" << name
<< "' не найден в конф. файле!"
<< " в секции " << conf->getObjectsSection() << endl;
return 0;
......
......@@ -193,13 +193,13 @@ class MBTCPMaster:
{
public:
MBTCPMaster( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmID, SharedMemory* ic=0,
const std::string prefix="mbtcp" );
const std::string& prefix="mbtcp" );
virtual ~MBTCPMaster();
/*! глобальная функция для инициализации объекта */
static MBTCPMaster* init_mbmaster( int argc, const char* const* argv,
UniSetTypes::ObjectId shmID, SharedMemory* ic=0,
const std::string prefix="mbtcp" );
const std::string& prefix="mbtcp" );
/*! глобальная функция для вывода help-а */
static void help_print( int argc, const char* const* argv );
......
......@@ -10,8 +10,8 @@ using namespace std;
using namespace UniSetTypes;
using namespace UniSetExtensions;
// -----------------------------------------------------------------------------
MBTCPMultiMaster::MBTCPMultiMaster( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId,
SharedMemory* ic, const std::string prefix ):
MBTCPMultiMaster::MBTCPMultiMaster( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId,
SharedMemory* ic, const std::string& prefix ):
MBExchange(objId,shmId,ic,prefix),
force_disconnect(true),
pollThread(0),
......@@ -134,7 +134,7 @@ checkThread(0)
dlog.crit() << err.str() << endl;
throw UniSetTypes::SystemError(err.str());
}
mblist.sort();
mbi = mblist.rbegin();
......@@ -178,7 +178,7 @@ ModbusClient* MBTCPMultiMaster::initMB( bool reopen )
if( checktime <=0 )
{
mbi++;
if( mbi == mblist.rend() )
if( mbi == mblist.rend() )
mbi = mblist.rbegin();
mbi->init();
......@@ -250,7 +250,7 @@ bool MBTCPMultiMaster::MBSlaveInfo::init()
if( mbtcp->isConnection() && dlog.is_info() )
dlog.info() << "(init): " << myname << " connect OK" << endl;
initOK = true;
}
return mbtcp->isConnection();
......@@ -337,7 +337,7 @@ void MBTCPMultiMaster::check_thread()
catch(...){}
{
{
uniset_rwmutex_wrlock l(tcpMutex);
it->respond = r;
}
......@@ -375,9 +375,9 @@ void MBTCPMultiMaster::help_print( int argc, const char* const* argv )
cout << " Переключение на следующий канал зависит от '--prefix-timeout'" << endl;
}
// -----------------------------------------------------------------------------
MBTCPMultiMaster* MBTCPMultiMaster::init_mbmaster( int argc, const char* const* argv,
UniSetTypes::ObjectId icID, SharedMemory* ic,
const std::string prefix )
MBTCPMultiMaster* MBTCPMultiMaster::init_mbmaster( int argc, const char* const* argv,
UniSetTypes::ObjectId icID, SharedMemory* ic,
const std::string& prefix )
{
string name = conf->getArgParam("--" + prefix + "-name","MBTCPMultiMaster1");
if( name.empty() )
......@@ -389,7 +389,7 @@ MBTCPMultiMaster* MBTCPMultiMaster::init_mbmaster( int argc, const char* const*
ObjectId ID = conf->getObjectID(name);
if( ID == UniSetTypes::DefaultObjectId )
{
dlog.crit() << "(MBTCPMultiMaster): идентификатор '" << name
dlog.crit() << "(MBTCPMultiMaster): идентификатор '" << name
<< "' не найден в конф. файле!"
<< " в секции " << conf->getObjectsSection() << endl;
return 0;
......
......@@ -215,13 +215,13 @@ class MBTCPMultiMaster:
{
public:
MBTCPMultiMaster( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmID, SharedMemory* ic=0,
const std::string prefix="mbtcp" );
const std::string& prefix="mbtcp" );
virtual ~MBTCPMultiMaster();
/*! глобальная функция для инициализации объекта */
static MBTCPMultiMaster* init_mbmaster( int argc, const char* const* argv,
UniSetTypes::ObjectId shmID, SharedMemory* ic=0,
const std::string prefix="mbtcp" );
const std::string& prefix="mbtcp" );
/*! глобальная функция для вывода help-а */
static void help_print( int argc, const char* const* argv );
......
......@@ -9,7 +9,7 @@ using namespace UniSetTypes;
using namespace UniSetExtensions;
// -----------------------------------------------------------------------------
RTUExchange::RTUExchange( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmId, SharedMemory* ic,
const std::string prefix_ ):
const std::string& prefix_ ):
MBExchange(objId,shmId,ic,prefix_),
mbrtu(0),
defSpeed(ComPort::ComSpeed38400),
......@@ -329,7 +329,7 @@ void RTUExchange::poll()
}
// -----------------------------------------------------------------------------
RTUExchange* RTUExchange::init_rtuexchange( int argc, const char* const* argv, UniSetTypes::ObjectId icID,
SharedMemory* ic, const std::string prefix )
SharedMemory* ic, const std::string& prefix )
{
string name = conf->getArgParam("--" + prefix + "-name","RTUExchange1");
if( name.empty() )
......
......@@ -14,13 +14,13 @@ class RTUExchange:
{
public:
RTUExchange( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmID,
SharedMemory* ic=0, const std::string prefix="rs" );
SharedMemory* ic=0, const std::string& prefix="rs" );
virtual ~RTUExchange();
/*! глобальная функция для инициализации объекта */
static RTUExchange* init_rtuexchange( int argc, const char* const* argv,
UniSetTypes::ObjectId shmID, SharedMemory* ic=0,
const std::string prefix="rs" );
const std::string& prefix="rs" );
/*! глобальная функция для вывода help-а */
static void help_print( int argc, const char* const* argv );
......
......@@ -12,7 +12,7 @@ using namespace UniSetTypes;
using namespace UniSetExtensions;
// -----------------------------------------------------------------------------
RRDServer::RRDServer( UniSetTypes::ObjectId objId, xmlNode* cnode, UniSetTypes::ObjectId shmId, SharedMemory* ic,
const string prefix, DebugStream& log ):
const string& prefix, DebugStream& log ):
UObject_SK(objId,cnode),
shm( new SMInterface(shmId,&ui,objId,ic) ),
prefix(prefix)
......@@ -59,9 +59,9 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
bool overwrite = it.getPIntProp("overwrite",0);
if( RRDServer::dlog.is_info() )
RRDServer::dlog.info() << myname << "(init): add rrd: file='" << fname
<< " " << ff << "='" << fv
<< "' create='" << cf << "'"
RRDServer::dlog.info() << myname << "(init): add rrd: file='" << fname
<< " " << ff << "='" << fv
<< "' create='" << cf << "'"
<< " step=" << rrdstep
<< endl;
......@@ -188,7 +188,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
if( !overwrite && file_exist(fname) )
{
if( RRDServer::dlog.is_info() )
RRDServer::dlog.info() << myname << "(init): ignore create file='" << fname
RRDServer::dlog.info() << myname << "(init): ignore create file='" << fname
<< "'. File exist... overwrite=0." << endl;
}
else
......@@ -214,11 +214,11 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
rrdlist.push_back(rrd);
}
/* catch( Exception& ex )
{
{
RRDServer::dlog.crit() << myname << "(init) " << ex << std::endl;
}
catch( ... )
{
{
RRDServer::dlog.crit() << myname << "(init): catch ..." << std::endl;
}
*/
......@@ -228,14 +228,14 @@ void RRDServer::help_print( int argc, const char* const* argv )
{
cout << " Default prefix='rrd'" << endl;
cout << "--prefix-name - ID for rrdstorage. Default: RRDServer1. " << endl;
cout << "--prefix-confnode - configuration section name. Default: <NAME name='NAME'...> " << endl;
cout << "--prefix-confnode - configuration section name. Default: <NAME name='NAME'...> " << endl;
cout << "--prefix-heartbeat-id name - ID for heartbeat sensor." << endl;
cout << "--prefix-heartbeat-max val - max value for heartbeat sensor." << endl;
}
// -----------------------------------------------------------------------------
RRDServer* RRDServer::init_rrdstorage( int argc, const char* const* argv,
UniSetTypes::ObjectId icID, SharedMemory* ic,
const std::string prefix )
RRDServer* RRDServer::init_rrdstorage( int argc, const char* const* argv,
UniSetTypes::ObjectId icID, SharedMemory* ic,
const std::string& prefix )
{
string name = conf->getArgParam("--" + prefix + "-name","RRDServer");
if( name.empty() )
......@@ -247,7 +247,7 @@ RRDServer* RRDServer::init_rrdstorage( int argc, const char* const* argv,
ObjectId ID = conf->getObjectID(name);
if( ID == UniSetTypes::DefaultObjectId )
{
UniSetExtensions::dlog.crit() << "(RRDServer): Not found ID for '" << name
UniSetExtensions::dlog.crit() << "(RRDServer): Not found ID for '" << name
<< " in '" << conf->getObjectsSection() << "' section" << endl;
return 0;
}
......@@ -276,7 +276,7 @@ void RRDServer::askSensors( UniversalIO::UIOCommand cmd )
try
{
shm->askSensor(s->first,cmd);
}
}
catch( std::exception& ex )
{
if( RRDServer::dlog.is_crit() )
......@@ -296,7 +296,7 @@ void RRDServer::sysCommand( UniSetTypes::SystemMessage* sm )
try
{
askTimer(it->tid,it->sec*1000);
}
}
catch( std::exception& ex )
{
if( RRDServer::dlog.is_crit() )
......
......@@ -59,13 +59,13 @@ class RRDServer:
{
public:
RRDServer( UniSetTypes::ObjectId objId, xmlNode* cnode, UniSetTypes::ObjectId shmID, SharedMemory* ic=0,
const std::string prefix="rrd", DebugStream& log=UniSetExtensions::dlog );
const std::string& prefix="rrd", DebugStream& log=UniSetExtensions::dlog );
virtual ~RRDServer();
/*! глобальная функция для инициализации объекта */
static RRDServer* init_rrdstorage( int argc, const char* const* argv,
UniSetTypes::ObjectId shmID, SharedMemory* ic=0,
const std::string prefix="rrd" );
const std::string& prefix="rrd" );
/*! глобальная функция для вывода help-а */
static void help_print( int argc, const char* const* argv );
......
......@@ -8,8 +8,8 @@ using namespace std;
using namespace UniSetTypes;
using namespace UniSetExtensions;
// -----------------------------------------------------------------------------
UNetSender::UNetSender( const std::string s_host, const ost::tpport_t port, SMInterface* smi,
const std::string s_f, const std::string s_val, SharedMemory* ic ):
UNetSender::UNetSender( const std::string& s_host, const ost::tpport_t port, SMInterface* smi,
const std::string& s_f, const std::string& s_val, SharedMemory* ic ):
s_field(s_f),
s_fvalue(s_val),
shm(smi),
......
......@@ -19,8 +19,8 @@
class UNetSender
{
public:
UNetSender( const std::string host, const ost::tpport_t port, SMInterface* smi,
const std::string s_field="", const std::string s_fvalue="", SharedMemory* ic=0 );
UNetSender( const std::string& host, const ost::tpport_t port, SMInterface* smi,
const std::string& s_field="", const std::string& s_fvalue="", SharedMemory* ic=0 );
~UNetSender();
......
......@@ -18,7 +18,7 @@ UniExchange::NetNodeInfo::NetNodeInfo():
}
// --------------------------------------------------------------------------
UniExchange::UniExchange( UniSetTypes::ObjectId id, UniSetTypes::ObjectId shmID,
SharedMemory* ic, const std::string prefix ):
SharedMemory* ic, const std::string& prefix ):
IOController(id),
shm(0),
polltime(200),
......@@ -64,7 +64,7 @@ smReadyTimeout(15000)
for( ; it.getCurrent(); it.goNext() )
{
UniSetTypes::ObjectId id;
string n(it.getProp("id"));
if( !n.empty() )
id = it.getIntProp("id");
......@@ -73,7 +73,7 @@ smReadyTimeout(15000)
id = conf->getControllerID( it.getProp("name") );
n = it.getProp("name");
}
if( id == DefaultObjectId )
throw SystemError("(UniExchange): Uknown ID for " + n );
......@@ -90,7 +90,7 @@ smReadyTimeout(15000)
if( id == DefaultObjectId )
throw SystemError("(UniExchange): Uknown ID for node=" + n1 );
NetNodeInfo ni;
ni.oref = CORBA::Object::_nil();
ni.id = id;
......@@ -101,7 +101,7 @@ smReadyTimeout(15000)
nlst.push_back(ni);
}
}
if( shm->isLocalwork() )
{
readConfiguration();
......@@ -168,7 +168,7 @@ void UniExchange::execute()
{
dlog.info() << myname << "(execute): catch ..." << endl;
}
if( it->sidConnection != DefaultObjectId )
{
try
......@@ -179,8 +179,8 @@ void UniExchange::execute()
{
if( dlog.is_crit() )
dlog.crit()<< myname << "(execute): sensor not avalible "
<< conf->oind->getNameById( it->sidConnection)
<< endl;
<< conf->oind->getNameById( it->sidConnection)
<< endl;
}
}
......@@ -193,7 +193,7 @@ void UniExchange::execute()
updateLocalData();
ptUpdate.reset();
}
msleep(polltime);
}
}
......@@ -207,7 +207,7 @@ void UniExchange::NetNodeInfo::update( IOController_i::ShortMapSeq_var& map, SMI
// init new map...
smap.resize(map->length());
}
int size = map->length();
for( int i=0; i<size; i++ )
{
......@@ -221,7 +221,7 @@ void UniExchange::NetNodeInfo::update( IOController_i::ShortMapSeq_var& map, SMI
}
s->val = m->value;
try
{
/*
......@@ -285,7 +285,7 @@ void UniExchange::updateLocalData()
dlog.warn() << "(update): catch ..." << endl;
}
}
init_ok = true;
}
// --------------------------------------------------------------------------
......@@ -346,12 +346,12 @@ void UniExchange::sysCommand( SystemMessage* sm )
askSensors(UniversalIO::UIONotify);
break;
}
case SystemMessage::FoldUp:
case SystemMessage::Finish:
askSensors(UniversalIO::UIODontNotify);
break;
case SystemMessage::WatchDog:
askSensors(UniversalIO::UIONotify);
break;
......@@ -372,12 +372,12 @@ void UniExchange::sensorInfo( UniSetTypes::SensorMessage* sm )
// -----------------------------------------------------------------------------
void UniExchange::timerInfo( UniSetTypes::TimerMessage* tm )
{
}
// -----------------------------------------------------------------------------
UniExchange* UniExchange::init_exchange( int argc, const char* const* argv,
UniSetTypes::ObjectId icID, SharedMemory* ic,
const std::string prefix )
UniSetTypes::ObjectId icID, SharedMemory* ic,
const std::string& prefix )
{
string p("--" + prefix + "-name");
string nm(UniSetTypes::getArgParam(p,argc,argv,"UniExchange"));
......@@ -415,7 +415,7 @@ void UniExchange::readConfiguration()
if( UniSetTypes::check_filter(it,s_field,s_fvalue) )
initItem(it);
}
// readconf_ok = true;
}
// ------------------------------------------------------------------------------------------
......@@ -440,11 +440,11 @@ bool UniExchange::initItem( UniXML_iterator& it )
if( i.id <=0 )
i.id = DefaultObjectId;
}
if( i.id == DefaultObjectId )
{
if( dlog )
dlog.crit() << myname << "(initItem): Unknown ID for "
dlog.crit() << myname << "(initItem): Unknown ID for "
<< it.getProp("name") << endl;
return false;
}
......@@ -453,7 +453,7 @@ bool UniExchange::initItem( UniXML_iterator& it )
if( i.type == UniversalIO::UnknownIOType )
{
if( dlog )
dlog.crit() << myname << "(initItem): Unknown iotype= "
dlog.crit() << myname << "(initItem): Unknown iotype= "
<< it.getProp("iotype") << " for " << it.getProp("name") << endl;
return false;
}
......
......@@ -11,14 +11,14 @@
// -----------------------------------------------------------------------------
/*!
\page pageUniExchange Обмен между узлами на основе TCP/IP (UniNet).
\par Обмен построен на основе функций IOControl-ера получения списка дискретных
и аналоговых датчиков. Работает через удалённые CORBA-вызовы.
\par Процесс считывает из конфигурационного файла список узлов которые необходимо
опрашивать (точнее список IOControl-еров), запускается поток обмена, в котором
эти узлы ПОСЛЕДОВАТЕЛЬНО опрашиваются..
\par Пример записи в конфигурационном файле для опроса пяти узлов...
\code
<UniExchange name="UniExchange">
......@@ -36,15 +36,15 @@ class UniExchange:
public IOController
{
public:
UniExchange( UniSetTypes::ObjectId id, UniSetTypes::ObjectId shmID,
SharedMemory* ic=0, const std::string prefix="unet" );
UniExchange( UniSetTypes::ObjectId id, UniSetTypes::ObjectId shmID,
SharedMemory* ic=0, const std::string& prefix="unet" );
virtual ~UniExchange();
void execute();
static UniExchange* init_exchange( int argc, const char* const* argv,
UniSetTypes::ObjectId shmID, SharedMemory* ic=0,
const std::string prefix="unet" );
const std::string& prefix="unet" );
/*! глобальная функция для вывода help-а */
static void help_print( int argc, const char** argv );
......@@ -64,7 +64,7 @@ class UniExchange:
std::string s_field;
std::string s_fvalue;
SMInterface* shm;
struct SInfo
{
SInfo():
......@@ -79,13 +79,13 @@ class UniExchange:
UniversalIO::IOType type;
UniSetTypes::uniset_rwmutex val_lock;
};
typedef std::vector<SInfo> SList;
struct NetNodeInfo
{
NetNodeInfo();
CORBA::Object_var oref;
IOController_i_var shm;
UniSetTypes::ObjectId id;
......@@ -93,10 +93,10 @@ class UniExchange:
UniSetTypes::ObjectId sidConnection; /*!< датчик связи */
IOController::IOStateList::iterator conn_it;
SList smap;
void update(IOController_i::ShortMapSeq_var& map, SMInterface* shm );
};
typedef std::list<NetNodeInfo> NetNodeList;
NetNodeList nlst;
......@@ -105,15 +105,15 @@ class UniExchange:
bool initItem( UniXML_iterator& it );
void updateLocalData();
void initIterators();
int polltime;
PassiveTimer ptUpdate;
bool init_ok;
SList mymap;
size_t maxIndex;
int smReadyTimeout;
private:
};
// -----------------------------------------------------------------------------
......
......@@ -25,7 +25,7 @@ class Calibration
{
public:
Calibration();
Calibration( const std::string name, const std::string confile="calibration.xml" );
Calibration( const std::string& name, const std::string& confile="calibration.xml" );
Calibration( xmlNode* node );
~Calibration();
......@@ -75,7 +75,7 @@ class Calibration
\param confile - файл содержащий данные
\param node - если node!=0, то используется этот узел...
*/
void build( const std::string name, const std::string confile, xmlNode* node=0 );
void build( const std::string& name, const std::string& confile, xmlNode* node=0 );
/*! Тип для хранения текущего значения */
......
......@@ -101,7 +101,7 @@ myname("")
// ----------------------------------------------------------------------------
Calibration::Calibration( const string name, const string confile ):
Calibration::Calibration( const string& name, const string& confile ):
minRaw(0),maxRaw(0),minVal(0),maxVal(0),rightVal(0),leftVal(0),rightRaw(0),leftRaw(0),
myname(name)
{
......@@ -121,7 +121,7 @@ Calibration::~Calibration()
{
}
// ----------------------------------------------------------------------------
void Calibration::build( const string name, const string confile, xmlNode* root )
void Calibration::build( const string& name, const string& confile, xmlNode* root )
{
UniXML xml;
try
......
......@@ -43,7 +43,7 @@ namespace UniSetTypes
LimitTimers():Exception("LimitTimers"){ printException(); }
/*! Конструктор позволяющий вывести в сообщении об ошибке дополнительную информацию err */
LimitTimers(const std::string err):Exception(err){ printException(); }
LimitTimers(const std::string& err):Exception(err){ printException(); }
};
};
//@}
......
......@@ -66,37 +66,37 @@ public:
TwoBits=3
};
ComPort( const std::string comDevice, bool nocreate=false );
ComPort( const std::string& comDevice, bool nocreate=false );
virtual ~ComPort();
inline std::string getDevice(){ return dev; }
void setSpeed( Speed s );
void setSpeed( std::string speed );
void setSpeed( const std::string& speed );
inline Speed getSpeed(){ return speed; }
static Speed getSpeed( const std::string s );
static Speed getSpeed( const std::string& s );
static std::string getSpeed( Speed s );
void setParity(Parity);
void setCharacterSize(CharacterSize);
void setStopBits(StopBits sBit);
virtual void setTimeout(int timeout);
void setWaiting(bool waiting);
inline int getTimeout(){ return uTimeout*1000; } // msec
virtual unsigned char receiveByte();
virtual void sendByte(unsigned char x);
virtual int receiveBlock(unsigned char*msg,int len);
virtual int sendBlock(unsigned char*msg,int len);
void setBlocking(bool blocking);
virtual void cleanupChannel();
virtual void reopen();
protected:
void openPort();
......@@ -109,9 +109,9 @@ protected:
bool waiting;
Speed speed;
std::string dev;
virtual unsigned char m_receiveByte( bool wait );
private:
struct termios oldTermios;
};
......
......@@ -45,8 +45,8 @@ class SystemGuard;
namespace UniSetTypes
{
/*!
Конфигуратор системы
\note В случае обнаружения критической ошибки в настроечном файле файле.
Конфигуратор системы
\note В случае обнаружения критической ошибки в настроечном файле файле.
Вырабатывает исключение и прекращает работу.
*/
class Configuration
......@@ -55,30 +55,30 @@ namespace UniSetTypes
virtual ~Configuration();
/*! конфигурирование xml-файлом ( предпочтительный способ ) */
Configuration( int argc, const char* const* argv, const std::string xmlfile="" );
Configuration( int argc, const char* const* argv, const std::string& xmlfile="" );
/*! конфигурирование xml-файлом */
Configuration( int argc, const char* const* argv, ObjectIndex* oind, const std::string xmlfile="" );
Configuration( int argc, const char* const* argv, ObjectIndex* oind, const std::string& xmlfile="" );
/*! устаревший вариант, для поддержки старых проектов */
Configuration( int argc, const char* const* argv,
const std::string fileConf, UniSetTypes::ObjectInfo* objectsMap );
const std::string& fileConf, UniSetTypes::ObjectInfo* objectsMap );
/// Получить значение полей с путём path
std::string getField(const std::string path);
std::string getField(const std::string& path);
/// Получить число из поле с путём path
int getIntField(const std::string path);
int getIntField(const std::string& path);
/// Получить число из поле с путём path (или def, если значение <= 0)
int getPIntField(const std::string path, int def);
xmlNode* findNode(xmlNode* node, const std::string searchnode, const std::string name = "" );
int getPIntField(const std::string& path, int def);
xmlNode* findNode(xmlNode* node, const std::string& searchnode, const std::string& name="" );
// Получить узел
xmlNode* getNode(const std::string& path);
// Получить указанное свойство пути
std::string getProp(xmlNode*, const std::string name);
int getIntProp(xmlNode*, const std::string name);
int getPIntProp(xmlNode*, const std::string name, int def);
std::string getProp(xmlNode*, const std::string& name);
int getIntProp(xmlNode*, const std::string& name);
int getPIntProp(xmlNode*, const std::string& name, int def);
// Получить указанное свойство по имени узла
std::string getPropByNodeName(const std::string& nodename, const std::string& prop);
......@@ -90,8 +90,8 @@ namespace UniSetTypes
inline ObjectId getDBServer() const { return localDBServer; } /*!< получение идентификатора DBServer-а */
inline ObjectId getLocalNode() const { return localNode; } /*!< получение идентификатора локального узла */
inline std::string getLocalNodeName() const { return localNodeName; } /*!< получение название локального узла */
inline const std::string getNSName() const { return NSName; }
inline const std::string getNSName() const { return NSName; }
// repository
inline std::string getRootSection() const { return secRoot; }
inline std::string getSensorsSection() const { return secSensors; }
......@@ -106,18 +106,18 @@ namespace UniSetTypes
xmlNode* getXMLNodesSection();
xmlNode* getXMLObjectNode( UniSetTypes::ObjectId );
UniversalIO::IOType getIOType( UniSetTypes::ObjectId );
UniversalIO::IOType getIOType( const std::string name );
UniversalIO::IOType getIOType( const std::string& name );
// net
inline unsigned int getCountOfNet() const { return countOfNet; }
inline unsigned int getRepeatTimeout() const { return repeatTimeout; }
inline unsigned int getRepeatCount() const { return repeatCount; }
UniSetTypes::ObjectId getSensorID( const std::string name );
UniSetTypes::ObjectId getControllerID( const std::string name );
UniSetTypes::ObjectId getObjectID( const std::string name );
UniSetTypes::ObjectId getServiceID( const std::string name );
UniSetTypes::ObjectId getNodeID( const std::string name, const std::string alias="" );
UniSetTypes::ObjectId getSensorID( const std::string& name );
UniSetTypes::ObjectId getControllerID( const std::string& name );
UniSetTypes::ObjectId getObjectID( const std::string& name );
UniSetTypes::ObjectId getServiceID( const std::string& name );
UniSetTypes::ObjectId getNodeID( const std::string& name, const std::string& alias="" );
inline const std::string getConfFileName() const { return fileConfName; }
inline std::string getImagesDir() const { return imagesDir; } // временно
......@@ -135,14 +135,14 @@ namespace UniSetTypes
inline bool isLocalIOR(){ return localIOR; }
inline bool isTransientIOR(){ return transientIOR; }
/*! получить значение указанного параметра, или значение по умолчанию */
std::string getArgParam(const std::string name, const std::string defval="");
std::string getArgParam(const std::string& name, const std::string& defval="");
/*! получить числовое значение параметра, если не число, то 0. Если параметра нет, используется значение defval */
int getArgInt(const std::string name, const std::string defval="");
int getArgInt(const std::string& name, const std::string& defval="");
/*! получить числовое значение параметра, но если оно не положительное, вернуть defval */
int getArgPInt(const std::string name, int defval);
int getArgPInt(const std::string name, const std::string strdefval, int defval);
int getArgPInt(const std::string& name, int defval);
int getArgPInt(const std::string& name, const std::string& strdefval, int defval);
xmlNode* initDebug( DebugStream& deb, const std::string& nodename );
......@@ -155,10 +155,10 @@ namespace UniSetTypes
{
return lnodes.end();
}
/*! интерфейс к карте объектов */
ObjectIndex* oind;
/*! интерфейс к работе с локальнымми ior-файлами */
IORFile iorfile;
......@@ -172,18 +172,18 @@ namespace UniSetTypes
Configuration();
virtual void initConfiguration(int argc, const char* const* argv);
void createNodesList();
virtual void initNode( UniSetTypes::NodeInfo& ninfo, UniXML_iterator& it);
void initRepSections();
std::string getRepSectionName(const std::string sec, xmlNode* secnode=0 );
void setConfFileName(const std::string fn="");
std::string getRepSectionName(const std::string& sec, xmlNode* secnode=0 );
void setConfFileName( const std::string& fn="" );
void initParameters();
void setLocalNode( std::string nodename );
std::string getPort(const std::string port="");
void setLocalNode( const std::string& nodename );
std::string getPort( const std::string& port="" );
friend class ::SystemGuard;
// friend bool SystemGuard::pingNode();
std::string rootDir;
......@@ -193,7 +193,7 @@ namespace UniSetTypes
const char* const* _argv;
CORBA::ORB_var orb;
CORBA::PolicyList policyList;
std::string NSName; /*!< имя сервиса именования на ланной машине (обычно "NameService") */
unsigned int countOfNet; /*!< количество резервных каналов */
unsigned int repeatCount; /*!< количество попыток получить доступ к удаленному объекту
......@@ -207,7 +207,7 @@ namespace UniSetTypes
std::string secRoot;
std::string secSensors;
std::string secObjects;
std::string secControlles;
std::string secControlles;
std::string secServices;
// xml
......@@ -219,7 +219,7 @@ namespace UniSetTypes
ObjectId localDBServer;
ObjectId localNode;
std::string localNodeName;
std::string fileConfName;
std::string imagesDir;
......@@ -232,22 +232,22 @@ namespace UniSetTypes
std::string lockDir;
bool localIOR;
bool transientIOR;
int heartbeat_msec;
};
/*! Глобальный указатель на конфигуратор */
extern Configuration* conf;
/*! Глобальный объект для вывода логов */
extern DebugStream ulog;
// Инициализация UniSetTypes::conf.
// ( учитываются параметры командной строки --confile и --id-from-config )
void uniset_init( int argc, const char* const* argv, const std::string& xmlfile="configure.xml" );
} // end of UniSetTypes namespace
#endif // Configuration_H_
......@@ -112,10 +112,10 @@ public:
}
/// Sets the debugstreams' logfile to f.
void logFile(const std::string f);
void logFile( const std::string& f );
inline std::string getLogFile(){ return fname; }
/// Returns true if t is part of the current debug level.
inline bool debugging(Debug::type t = Debug::ANY) const
{ return (dt & t); }
......@@ -138,13 +138,13 @@ public:
return debug(t);
}
/**
/**
Вывод продолжения логов (без даты и времени)
*/
inline std::ostream& to_end(Debug::type t)
{ return this->operator()(t); }
/**
/**
Вывод продолжения логов (без даты и времени) "log()"
*/
std::ostream& operator()(Debug::type t);
......@@ -189,11 +189,11 @@ public:
std::ostream& printDate(Debug::type t, char brk='/');
std::ostream& printTime(Debug::type t, char brk=':');
std::ostream& printDateTime(Debug::type t);
std::ostream& pos(int x, int y);
const DebugStream &operator=(const DebugStream& r);
private:
/// The current debug level
Debug::type dt;
......@@ -205,7 +205,7 @@ private:
debugstream_internal * internal;
bool show_datetime;
std::string fname;
};
#endif
......@@ -87,7 +87,7 @@ class OutOfRange: public Exception
{
public:
OutOfRange():Exception("OutOfRange"){}
OutOfRange(const std::string err):Exception(err){}
OutOfRange(const std::string& err):Exception(err){}
};
......@@ -107,7 +107,7 @@ public:
LimitWaitingPTimers():Exception("LimitWaitingPassiveTimers"){}
/*! Конструктор, позволяющий вывести в сообщении об ошибке дополнительную информацию err */
LimitWaitingPTimers(const std::string err):Exception(err){}
LimitWaitingPTimers(const std::string& err):Exception(err){}
};
......@@ -121,7 +121,7 @@ public:
ORepFailed():Exception("ORepFailed"){}
/*! Конструктор, позволяющий вывести в сообщении об ошибке дополнительную информацию err */
ORepFailed(const std::string err):Exception(err){}
ORepFailed(const std::string& err):Exception(err){}
};
......@@ -134,7 +134,7 @@ public:
SystemError():Exception("SystemError"){}
/*! Конструктор, позволяющий вывести в сообщении об ошибке дополнительную информацию err */
SystemError(const std::string err):Exception(err){}
SystemError(const std::string& err):Exception(err){}
};
class CRCError: public Exception
......@@ -153,7 +153,7 @@ public:
CommFailed():Exception("CommFailed"){}
/*! Конструктор, позволяющий вывести в сообщении об ошибке дополнительную информацию err */
CommFailed(const std::string err):Exception(err){}
CommFailed(const std::string& err):Exception(err){}
};
......@@ -167,7 +167,7 @@ class TimeOut: public CommFailed
TimeOut():CommFailed("TimeOut") {}
/*! Конструктор, позволяющий вывести в сообщении об ошибке дополнительную информацию err */
TimeOut(const std::string err):CommFailed(err){}
TimeOut(const std::string& err):CommFailed(err){}
};
......@@ -178,7 +178,7 @@ class ResolveNameError: public ORepFailed
{
public:
ResolveNameError():ORepFailed("ResolveNameError"){}
ResolveNameError(const std::string err):ORepFailed(err){}
ResolveNameError(const std::string& err):ORepFailed(err){}
};
......@@ -186,7 +186,7 @@ class NSResolveError: public ORepFailed
{
public:
NSResolveError():ORepFailed("NSResolveError"){}
NSResolveError(const std::string err):ORepFailed(err){}
NSResolveError(const std::string& err):ORepFailed(err){}
};
......@@ -200,7 +200,7 @@ public:
ObjectNameAlready():ResolveNameError("ObjectNameAlready"){}
/*! Конструктор, позволяющий вывести в сообщении об ошибке дополнительную информацию err */
ObjectNameAlready(const std::string err):ResolveNameError(err){}
ObjectNameAlready(const std::string& err):ResolveNameError(err){}
};
/*!
......@@ -213,7 +213,7 @@ class IOBadParam: public Exception
IOBadParam():Exception("IOBadParam"){}
/*! Конструктор, позволяющий вывести в сообщении об ошибке дополнительную информацию err */
IOBadParam(const std::string err):Exception(err){}
IOBadParam(const std::string& err):Exception(err){}
};
/*!
......@@ -224,7 +224,7 @@ class InvalidObjectName: public ResolveNameError
{
public:
InvalidObjectName():ResolveNameError("InvalidObjectName"){}
InvalidObjectName(const std::string err):ResolveNameError(err){}
InvalidObjectName(const std::string& err):ResolveNameError(err){}
};
/*! Исключение, вырабатываемое в случае если не удалось установить обработчик сигнала */
......@@ -232,14 +232,14 @@ class NotSetSignal: public Exception
{
public:
NotSetSignal():Exception("NotSetSignal"){}
NotSetSignal(const std::string err):Exception(err){}
NotSetSignal(const std::string& err):Exception(err){}
};
class NameNotFound: public ResolveNameError
{
public:
NameNotFound():ResolveNameError("NameNotFound"){}
NameNotFound(const std::string err):ResolveNameError(err){}
NameNotFound(const std::string& err):ResolveNameError(err){}
};
//@}
......
......@@ -40,14 +40,14 @@ class IOController:
public POA_IOController_i
{
public:
IOController(const std::string name, const std::string section);
IOController(const std::string& name, const std::string& section);
IOController(UniSetTypes::ObjectId id);
~IOController();
virtual UniSetTypes::ObjectType getType(){ return UniSetTypes::getObjectType("IOController"); }
virtual CORBA::Long getValue( const IOController_i::SensorInfo& si );
virtual CORBA::Long getValue( const IOController_i::SensorInfo& si );
// -------------------- !!!!!!!!! ---------------------------------
// Реализуются конкретным i/o контроллером
......@@ -59,8 +59,8 @@ class IOController:
UniSetTypes::ObjectId sup_id = UniSetTypes::DefaultObjectId );
// ----------------------------------------------------------------
virtual void setUndefinedState(const IOController_i::SensorInfo& si,
CORBA::Boolean undefined,
virtual void setUndefinedState(const IOController_i::SensorInfo& si,
CORBA::Boolean undefined,
UniSetTypes::ObjectId sup_id = UniSetTypes::DefaultObjectId );
......@@ -74,13 +74,13 @@ class IOController:
virtual IOController_i::SensorIOInfo getSensorIOInfo(const IOController_i::SensorInfo& si);
virtual CORBA::Long getRawValue(const IOController_i::SensorInfo& si);
virtual void calibrate(const IOController_i::SensorInfo& si,
virtual void calibrate(const IOController_i::SensorInfo& si,
const IOController_i::CalibrateInfo& ci,
UniSetTypes::ObjectId adminId );
IOController_i::CalibrateInfo getCalibrateInfo(const IOController_i::SensorInfo& si);
inline IOController_i::SensorInfo SensorInfo(UniSetTypes::ObjectId id,
inline IOController_i::SensorInfo SensorInfo(UniSetTypes::ObjectId id,
UniSetTypes::ObjectId node=UniSetTypes::conf->getLocalNode())
{
IOController_i::SensorInfo si;
......@@ -89,9 +89,9 @@ class IOController:
return si;
};
UniSetTypes::Message::Priority getPriority(const IOController_i::SensorInfo& si,
UniSetTypes::Message::Priority getPriority(const IOController_i::SensorInfo& si,
UniversalIO::IOType type);
virtual IOController_i::ShortIOInfo getChangedTime(const IOController_i::SensorInfo& si);
virtual IOController_i::ShortMapSeq* getSensors();
......@@ -106,7 +106,7 @@ class IOController:
/*!
// \warning В сигнале напрямую передаётся итератор (т.е. по сути указатель на внутреннюю структуру!)
// Это не очень хорошо, с точки зрения "архитектуры", но оптимальнее по быстродействию!
// необходимо в обработчике не забывать использовать uniset_rwmutex_wrlock(val_lock) или uniset_rwmutex_rlock(val_lock)
// необходимо в обработчике не забывать использовать uniset_rwmutex_wrlock(val_lock) или uniset_rwmutex_rlock(val_lock)
*/
typedef sigc::signal<void, IOStateList::iterator&, IOController*> ChangeSignal;
typedef sigc::signal<void, IOStateList::iterator&, IOController*> ChangeUndefinedStateSignal;
......@@ -150,12 +150,12 @@ class IOController:
// Дополнительные (вспомогательные поля)
UniSetTypes::uniset_rwmutex val_lock; /*!< флаг блокирующий работу со значением */
IOStateList::iterator it;
void* any; /*!< расширение для возможности хранения своей информации */
// сигнал для реализации механизма зависимостией..
// сигнал для реализации механизма зависимостией..
// (все зависимые датчики подключаются к нему (см. NCRestorer::init_depends_signals)
ChangeSignal sigChange;
ChangeUndefinedStateSignal sigUndefChange;
......@@ -178,9 +178,9 @@ class IOController:
CORBA::Long value, UniSetTypes::ObjectId sup_id );
virtual long localGetValue( IOStateList::iterator& it, const IOController_i::SensorInfo& si );
/*! функция выставления признака неопределённого состояния для аналоговых датчиков
/*! функция выставления признака неопределённого состояния для аналоговых датчиков
// для дискретных датчиков необходимости для подобной функции нет.
// см. логику выставления в функции localSaveState
*/
......@@ -199,7 +199,7 @@ class IOController:
virtual void sensorsRegistration(){};
/*! удаление из репозитория датчиков за информацию о которых отвечает данный IOController */
virtual void sensorsUnregistration();
typedef sigc::signal<void, IOStateList::iterator&, IOController*> InitSignal;
// signal по изменению определённого датчика
inline InitSignal signal_init(){ return sigInit; }
......@@ -211,12 +211,12 @@ class IOController:
/*! разрегистрация датчика */
void ioUnRegistration( const IOController_i::SensorInfo& si );
UniSetTypes::Message::Priority getMessagePriority(UniSetTypes::KeyType k, UniversalIO::IOType type);
// ------------------------------
inline IOController_i::SensorIOInfo
SensorIOInfo(long v, UniversalIO::IOType t, const IOController_i::SensorInfo& si,
SensorIOInfo(long v, UniversalIO::IOType t, const IOController_i::SensorInfo& si,
UniSetTypes::Message::Priority p = UniSetTypes::Message::Medium,
long defval=0, IOController_i::CalibrateInfo* ci=0 )
{
......@@ -238,16 +238,16 @@ class IOController:
ai.ci.maxCal = 0;
ai.ci.precision = 0;
}
return ai;
return ai;
};
//! сохранение информации об изменении состояния датчика
virtual void logging(UniSetTypes::SensorMessage& sm);
//! сохранение состояния всех датчиков в БД
virtual void dumpToDB();
IOController();
IOController();
// доступ к списку c изменением только для своих
IOStateList::iterator myioBegin();
......@@ -255,7 +255,7 @@ class IOController:
IOStateList::iterator myiofind(UniSetTypes::KeyType k);
// --------------------------
// ФИЛЬТРОВАНИЕ
//
//
typedef sigc::slot<bool,const USensorInfo&, CORBA::Long, UniSetTypes::ObjectId> IOFilterSlot;
typedef std::list<IOFilterSlot> IOFilterSlotList;
......@@ -263,8 +263,8 @@ class IOController:
Фильтрующая функция должна возвращать:
TRUE - если значение 'нормальное'
FALSE - если значение не подходит (отбрасывается)
Пример использования:
Пример использования:
addIOFilter( sigc::mem_fun(my,&MyClass::my_filter) );
*/
IOFilterSlotList::iterator addIOFilter( IOFilterSlot sl, bool push_front=false );
......@@ -276,16 +276,16 @@ class IOController:
inline bool iofiltersEmpty(){ return iofilters.empty(); }
inline int iodiltersSize(){ return iofilters.size(); }
private:
private:
friend class NCRestorer;
ChangeSignal sigAnyChange;
ChangeSignal sigAnyUndefChange;
InitSignal sigInit;
IOStateList ioList; /*!< список с текущим состоянием аналоговых входов/выходов */
UniSetTypes::uniset_rwmutex ioMutex; /*!< замок для блокирования совместного доступа к ioList */
bool isPingDBServer; // флаг связи с DBServer-ом
bool isPingDBServer; // флаг связи с DBServer-ом
IOFilterSlotList iofilters; /*!< список фильтров для аналоговых значений */
......
......@@ -88,9 +88,9 @@ class NCRestorer;
\endcode
"Статический" способ заказа гарантирует, что при перезапуске
\b IONC список заказчиков будет восстановлен по конфигурационному файлу.
\section sec_NC_Thresholds Пороговые датчики
\section sec_NC_Depends Механизм зависимостей между датчиками
Механизм зависимостей позволяет задать зависимость одного датчика, от другого.
Например пока "разрешающий" датчик не равен "1", у зависимого держится значение "0".
......@@ -119,9 +119,9 @@ class NCRestorer;
* \todo Сделать логирование выходов
\section AskSensors Заказ датчиков
....
ConsumerMaxAttempts - максимальное число неудачных
ConsumerMaxAttempts - максимальное число неудачных
попыток послать сообщение "заказчику". Настраивается в
конфигурационном файле. По умолчанию = 5.
*/
......@@ -130,8 +130,8 @@ class IONotifyController:
public POA_IONotifyController_i
{
public:
IONotifyController(const std::string name, const std::string section, NCRestorer* dumper=0);
IONotifyController(const std::string& name, const std::string& section, NCRestorer* dumper=0);
IONotifyController(UniSetTypes::ObjectId id, NCRestorer* dumper=0);
virtual ~IONotifyController();
......@@ -139,23 +139,23 @@ class IONotifyController:
virtual UniSetTypes::ObjectType getType(){ return UniSetTypes::getObjectType("IONotifyController"); }
virtual void askSensor(const IOController_i::SensorInfo& si, const UniSetTypes::ConsumerInfo& ci, UniversalIO::UIOCommand cmd);
virtual void askThreshold(const IOController_i::SensorInfo& si, const UniSetTypes::ConsumerInfo& ci,
UniSetTypes::ThresholdId tid,
CORBA::Long lowLimit, CORBA::Long hiLimit, CORBA::Boolean invert,
virtual void askThreshold(const IOController_i::SensorInfo& si, const UniSetTypes::ConsumerInfo& ci,
UniSetTypes::ThresholdId tid,
CORBA::Long lowLimit, CORBA::Long hiLimit, CORBA::Boolean invert,
UniversalIO::UIOCommand cmd );
virtual IONotifyController_i::ThresholdInfo getThresholdInfo( const IOController_i::SensorInfo& si, UniSetTypes::ThresholdId tid );
virtual IONotifyController_i::ThresholdList* getThresholds(const IOController_i::SensorInfo& si );
virtual IONotifyController_i::ThresholdsListSeq* getThresholdsList();
virtual UniSetTypes::IDSeq* askSensorsSeq(const UniSetTypes::IDSeq& lst,
virtual UniSetTypes::IDSeq* askSensorsSeq(const UniSetTypes::IDSeq& lst,
const UniSetTypes::ConsumerInfo& ci, UniversalIO::UIOCommand cmd);
// --------------------------------------------
// функция для работы напрямую черех iterator (оптимизация)
virtual void localSetValue( IOController::IOStateList::iterator& it,
virtual void localSetValue( IOController::IOStateList::iterator& it,
const IOController_i::SensorInfo& si,
CORBA::Long value, UniSetTypes::ObjectId sup_id );
......@@ -195,17 +195,17 @@ class IONotifyController:
/*! идентификатор дискретного датчика связанного с данным порогом */
UniSetTypes::ObjectId sid;
/*! итератор в списке датчиков (для оптимально-быстрого доступа) */
IOController::IOStateList::iterator sit;
/*! инверсная логика */
bool invert;
bool invert;
inline bool operator== ( const ThresholdInfo& r ) const
{
return ((id == r.id) &&
(hilimit == r.hilimit) &&
return ((id == r.id) &&
(hilimit == r.hilimit) &&
(lowlimit == r.lowlimit) &&
(invert == r.invert) );
}
......@@ -223,25 +223,25 @@ class IONotifyController:
return r;
}
};
typedef std::list<ThresholdInfoExt> ThresholdExtList;
/*! массив пар датчик->список потребителей */
typedef std::map<UniSetTypes::KeyType,ConsumerList> AskMap;
struct ThresholdsListInfo
{
ThresholdsListInfo(){}
ThresholdsListInfo( IOController_i::SensorInfo& si, ThresholdExtList& list,
ThresholdsListInfo( IOController_i::SensorInfo& si, ThresholdExtList& list,
UniversalIO::IOType t=UniversalIO::AI ):
si(si),type(t),list(list){}
IOController_i::SensorInfo si;
IOStateList::iterator ait;
UniversalIO::IOType type;
ThresholdExtList list;
};
/*! массив пар [датчик,список порогов] */
typedef std::map<UniSetTypes::KeyType,ThresholdsListInfo> AskThresholdMap;
......@@ -257,16 +257,16 @@ class IONotifyController:
virtual void send(ConsumerList& lst, UniSetTypes::SensorMessage& sm);
//! проверка срабатывания пороговых датчиков
virtual void checkThreshold( IOStateList::iterator& li,
virtual void checkThreshold( IOStateList::iterator& li,
const IOController_i::SensorInfo& si, bool send=true );
//! поиск информации о пороговом датчике
ThresholdExtList::iterator findThreshold( UniSetTypes::KeyType k, UniSetTypes::ThresholdId tid );
//! сохранение информации об изменении состояния датчика в базу
virtual void loggingInfo(UniSetTypes::SensorMessage& sm);
/*! сохранение списка заказчиков
/*! сохранение списка заказчиков
По умолчанию делает dump, если объявлен dumper.
*/
virtual void dumpOrdersList(const IOController_i::SensorInfo& si, const IONotifyController::ConsumerList& lst);
......@@ -292,10 +292,10 @@ class IONotifyController:
//----------------------
bool addConsumer(ConsumerList& lst, const UniSetTypes::ConsumerInfo& cons ); //!< добавить потребителя сообщения
bool removeConsumer(ConsumerList& lst, const UniSetTypes::ConsumerInfo& cons ); //!< удалить потребителя сообщения
//! обработка заказа
void ask(AskMap& askLst, const IOController_i::SensorInfo& si,
const UniSetTypes::ConsumerInfo& ci, UniversalIO::UIOCommand cmd);
//! обработка заказа
void ask(AskMap& askLst, const IOController_i::SensorInfo& si,
const UniSetTypes::ConsumerInfo& ci, UniversalIO::UIOCommand cmd);
/*! добавить новый порог для датчика */
bool addThreshold(ThresholdExtList& lst, ThresholdInfoExt& ti, const UniSetTypes::ConsumerInfo& cons);
......@@ -305,14 +305,15 @@ class IONotifyController:
AskMap askIOList; /*!< список потребителей по аналоговым датчикам */
AskThresholdMap askTMap; /*!< список порогов по аналоговым датчикам */
/*! замок для блокирования совместного доступа к cписку потребителей датчиков */
UniSetTypes::uniset_rwmutex askIOMutex;
/*! замок для блокирования совместного доступа к cписку потребителей пороговых датчиков */
/*! замок для блокирования совместного доступа к cписку потребителей пороговых датчиков */
UniSetTypes::uniset_rwmutex trshMutex;
int maxAttemtps; /*! timeout for consumer */
};
// --------------------------------------------------------------------------
#endif
// --------------------------------------------------------------------------
......@@ -38,11 +38,11 @@ class IORFile
IORFile();
std::string getIOR( const ObjectId id, const ObjectId node );
void setIOR( const ObjectId id, const ObjectId node, const std::string sior );
void setIOR( const ObjectId id, const ObjectId node, const std::string& sior );
void unlinkIOR( const ObjectId id, const ObjectId node );
protected:
std::string genFName( const ObjectId id, const ObjectId node);
std::string genFName( const ObjectId id, const ObjectId node );
private:
};
......
......@@ -83,12 +83,12 @@ class Restorer_XML
/*! Установить фильтр на чтение списка датчиков
\note Функцию необходимо вызывать до вызова read(...)
*/
void setItemFilter( const std::string filterField, const std::string filterValue="" );
void setItemFilter( const std::string& filterField, const std::string& filterValue="" );
/*! Установить фильтр на чтение списка заказчиков (по каждому датчику)
\note Функцию необходимо вызывать до вызова read(...)
*/
void setConsumerFilter( const std::string filterField, const std::string filterValue="" );
void setConsumerFilter( const std::string& filterField, const std::string& filterValue="" );
/*! универсальная функция получения информации о заказчике (id и node)
......@@ -108,7 +108,7 @@ class Restorer_XML
/*! Функция поиска по текущему уровню (без рекурсии для дочерних узлов) */
static xmlNode* find_node( UniXML& xml, xmlNode* root, const std::string& nodename, const std::string nm="" );
static xmlNode* find_node( UniXML& xml, xmlNode* root, const std::string& nodename, const std::string& nm="" );
protected:
......
......@@ -35,7 +35,7 @@ class SViewer
{
public:
SViewer(const std::string ControllersSection, bool isShort=true);
SViewer(const std::string& ControllersSection, bool isShort=true);
virtual ~SViewer();
void view();
......@@ -45,7 +45,7 @@ class SViewer
friend class SViewer_glade;
void on_SViewer_destroy();
void readSection(const std::string sec, const std::string secRoot);
void readSection(const std::string& sec, const std::string& secRoot);
void getInfo(UniSetTypes::ObjectId id);
virtual void updateSensors( IOController_i::SensorInfoSeq_var& amap, UniSetTypes::ObjectId oid );
......
......@@ -196,11 +196,11 @@ class UInterface
// Работа с ID, Name
/*! получение идентификатора объекта по имени */
inline UniSetTypes::ObjectId getIdByName(const char* name)
inline UniSetTypes::ObjectId getIdByName( const char* name )
{
return oind->getIdByName(name);
}
inline UniSetTypes::ObjectId getIdByName(const string name)
inline UniSetTypes::ObjectId getIdByName( const std::string& name )
{
return getIdByName(name.c_str());
}
......
......@@ -19,7 +19,7 @@
// --------------------------------------------------------------------------
/*! \file
* \author Pavel Vainerman
* \brief базовые типы и вспомогательные функции библиотеки UniSet
* \brief базовые типы и вспомогательные функции библиотеки UniSet
*/
// --------------------------------------------------------------------------
#ifndef UniSetTypes_H_
......@@ -56,15 +56,15 @@ namespace UniSetTypes
const ThresholdId DefaultTimerId = -1; /*!< идентификатор таймера по умолчанию */
typedef long KeyType; /*!< уникальный ключ объекта */
/*! генератор уникального положительного ключа
* Уникальность гарантируется только для пары значений
* id и node.
* \warning что тут у нас с переполнением..
* \warning Уникальность генерируемого ключа еще не проверялась,
* \warning Уникальность генерируемого ключа еще не проверялась,
но нареканий по использованию тоже не было :)
* \todo Желательно продумать что-нибудь с использованием хэш.
*/
*/
inline static KeyType key( const UniSetTypes::ObjectId id, const UniSetTypes::ObjectId node )
{
return KeyType((id*node)+(id+2*node));
......@@ -84,7 +84,7 @@ namespace UniSetTypes
/*! Функция делает ObjectType из const char * (переводит const-строку в обычную, что плохо, но мы обещаем не писать в неё :) ) */
inline static UniSetTypes::ObjectType getObjectType(const char * name) { const void *t = name; return (UniSetTypes::ObjectType)t; }
UniversalIO::IOType getIOType( const std::string s );
UniversalIO::IOType getIOType( const std::string& s );
std::ostream& operator<<( std::ostream& os, const UniversalIO::IOType t );
/*! Команды для управления лампочками */
......@@ -101,26 +101,26 @@ namespace UniSetTypes
class IDList
{
public:
public:
IDList();
~IDList();
void add( ObjectId id );
void del( ObjectId id );
inline int size(){ return lst.size(); }
inline bool empty(){ return lst.empty(); }
std::list<ObjectId> getList();
// за освобождение выделеной памяти
// отвечает вызывающий!
IDSeq* getIDSeq();
//
//
ObjectId getFirst();
ObjectId node; // узел, на котором находятся датчики
private:
std::list<ObjectId> lst;
};
......@@ -136,13 +136,13 @@ namespace UniSetTypes
char* repName; /*!< текстовое имя для регистрации в репозитории */
char* textName; /*!< текстовое имя */
void* data;
inline bool operator < ( const ObjectInfo& o ) const
{
return (id < o.id);
}
};
typedef std::list<NodeInfo> ListOfNode;
/*! Запрещенные для использования в именах объектов символы */
......@@ -160,43 +160,43 @@ namespace UniSetTypes
std::sscanf(str, "%i", &n);
return n;
}
inline int uni_atoi( const std::string str )
inline int uni_atoi( const std::string& str )
{
return uni_atoi(str.c_str());
}
std::string timeToString(time_t tm=time(0), const std::string brk=":"); /*!< Преобразование времени в строку HH:MM:SS */
std::string dateToString(time_t tm=time(0), const std::string brk="/"); /*!< Преобразование даты в строку DD/MM/YYYY */
std::string timeToString(time_t tm=time(0), const std::string& brk=":"); /*!< Преобразование времени в строку HH:MM:SS */
std::string dateToString(time_t tm=time(0), const std::string& brk="/"); /*!< Преобразование даты в строку DD/MM/YYYY */
/*! Разбивка строки по указанному символу */
IDList explode( const std::string str, char sep=',' );
std::list<std::string> explode_str( const std::string str, char sep=',' );
IDList explode( const std::string& str, char sep=',' );
std::list<std::string> explode_str( const std::string& str, char sep=',' );
struct ParamSInfo
{
IOController_i::SensorInfo si;
long val;
std::string fname; // fullname id@node or id
};
/*! Функция разбора строки вида: id1@node1=val1,id2@node2=val2,...
Если '=' не указано, возвращается val=0
Если @node не указано, возвращается node=DefaultObjectId */
std::list<ParamSInfo> getSInfoList( std::string s, Configuration* conf=UniSetTypes::conf);
std::list<ParamSInfo> getSInfoList( const std::string& s, Configuration* conf=UniSetTypes::conf );
/*! проверка является текст в строке - числом..*/
bool is_digit( const std::string s );
bool is_digit( const std::string& s );
// ---------------------------------------------------------------
// Работа с командной строкой
/*! Получение параметра командной строки
/*! Получение параметра командной строки
\param name - название параметра
\param defval - значение, которое будет возвращено, если параметр не найден
*/
inline std::string getArgParam( const std::string name,
inline std::string getArgParam( const std::string& name,
int _argc, const char* const* _argv,
const std::string defval="" )
const std::string& defval="" )
{
for( int i=1; i < (_argc - 1) ; i++ )
{
......@@ -206,7 +206,7 @@ namespace UniSetTypes
return defval;
}
inline int getArgInt( const std::string name,
inline int getArgInt( const std::string& name,
int _argc, const char* const* _argv,
const std::string defval="" )
{
......@@ -215,10 +215,10 @@ namespace UniSetTypes
/*! Проверка наличия параметра в командной строке
\param name - название параметра
\return Возвращает -1, если параметр не найден.
\return Возвращает -1, если параметр не найден.
Или позицию параметра, если найден.
*/
inline int findArgParam( const std::string name, int _argc, const char* const* _argv )
inline int findArgParam( const std::string& name, int _argc, const char* const* _argv )
{
for( int i=1; i<_argc; i++ )
{
......@@ -239,7 +239,7 @@ namespace UniSetTypes
// rawMax - максимальная граница исходного диапазона
// calMin - минимальная граница калиброванного диапазона
// calMin - минимальная граница калиброванного диапазона
// limit - обрезать итоговое значение по границам
// limit - обрезать итоговое значение по границам
float fcalibrate(float raw, float rawMin, float rawMax, float calMin, float calMax, bool limit=true );
long lcalibrate(long raw, long rawMin, long rawMax, long calMin, long calMax, bool limit=true );
......@@ -251,11 +251,11 @@ namespace UniSetTypes
// ---------------------------------------------------------------
// Всякие helper-ы
bool file_exist( const std::string filename );
bool file_exist( const std::string& filename );
// Проверка xml-узла на соответствие <...f_prop="f_val">,
// если не задано f_val, то проверяется, что просто f_prop!=""
bool check_filter( UniXML_iterator& it, const std::string f_prop, const std::string f_val="" );
bool check_filter( UniXML_iterator& it, const std::string& f_prop, const std::string& f_val="" );
/*! алгоритм копирования элементов последовательности удовлетворяющих условию */
template<typename InputIterator,
......
......@@ -11,7 +11,7 @@
class WDTInterface
{
public:
WDTInterface(const std::string dev);
WDTInterface(const std::string& dev);
~WDTInterface();
bool ping();
......
......@@ -143,7 +143,7 @@ class ModbusClient
/*! установить паузу при ожидании символа */
inline void setSleepPause( timeout_t usec ){ sleepPause_usec = usec; }
void initLog( UniSetTypes::Configuration* conf, const std::string name, const std::string logfile="" );
void initLog( UniSetTypes::Configuration* conf, const std::string& name, const std::string& logfile="" );
void setLog( DebugStream& dlog );
......
......@@ -20,13 +20,13 @@ class ModbusRTUMaster:
public:
ModbusRTUMaster( ComPort* com );
ModbusRTUMaster( const std::string dev, bool use485=false, bool tr_ctl=false );
ModbusRTUMaster( const std::string& dev, bool use485=false, bool tr_ctl=false );
virtual ~ModbusRTUMaster();
virtual void cleanupChannel(){ if( port ) port->cleanupChannel(); }
void setSpeed( ComPort::Speed s );
void setSpeed( const std::string s );
void setSpeed( const std::string& s );
ComPort::Speed getSpeed();
void setParity( ComPort::Parity parity );
......
......@@ -18,7 +18,7 @@ class ModbusRTUSlaveSlot:
{
public:
ModbusRTUSlaveSlot( ComPort* com );
ModbusRTUSlaveSlot( const std::string dev, bool use485=false, bool tr_ctl=false );
ModbusRTUSlaveSlot( const std::string& dev, bool use485=false, bool tr_ctl=false );
virtual ~ModbusRTUSlaveSlot();
virtual void sigterm( int signo );
......
......@@ -16,12 +16,12 @@ class ModbusTCPMaster:
ModbusTCPMaster();
virtual ~ModbusTCPMaster();
void connect( const std::string addr, int port );
void connect( const std::string& addr, int port );
void connect( ost::InetAddress addr, int port );
void disconnect();
bool isConnection();
static bool checkConnection( const std::string ip, int port, int timeout_msec=100 );
static bool checkConnection( const std::string& ip, int port, int timeout_msec=100 );
inline void setForceDisconnect( bool s )
{
......
......@@ -129,8 +129,8 @@ namespace ModbusRTU
/*! вывод сообщения */
std::ostream& mbPrintMessage( std::ostream& os, ModbusByte* b, int len );
// -------------------------------------------------------------------------
ModbusAddr str2mbAddr( const std::string val );
ModbusData str2mbData( const std::string val );
ModbusAddr str2mbAddr( const std::string& val );
ModbusData str2mbData( const std::string& val );
std::string dat2str( const ModbusData dat );
std::string addr2str( const ModbusAddr addr );
std::string b2str( const ModbusByte b );
......@@ -1082,7 +1082,7 @@ namespace ModbusRTU
struct RDIObjectInfo
{
RDIObjectInfo():id(0),val(""){}
RDIObjectInfo( ModbusByte id, const std::string v ):id(id),val(v){}
RDIObjectInfo( ModbusByte id, const std::string& v ):id(id),val(v){}
RDIObjectInfo( ModbusByte id, ModbusByte* dat, ModbusByte len );
ModbusByte id;
......@@ -1130,7 +1130,7 @@ namespace ModbusRTU
* \return TRUE - если удалось
* \return FALSE - если НЕ удалось
*/
bool addData( ModbusByte id, const std::string value );
bool addData( ModbusByte id, const std::string& value );
bool addData( RDIObjectInfo& dat );
/*! очистка данных */
......
......@@ -35,7 +35,7 @@ ComPort::~ComPort()
}
}
// --------------------------------------------------------------------------------
ComPort::ComPort( const string comDevice, bool nocreate ):
ComPort::ComPort( const string& comDevice, bool nocreate ):
curSym(0), bufLength(0),fd(-1),uTimeout(10000),
waiting(true),dev(comDevice)
{
......@@ -53,12 +53,12 @@ void ComPort::openPort()
string strErr="Unable to open "+dev+" [Error: "+strerror(errno)+"]";
throw UniSetTypes::SystemError(strErr.c_str());
}
/* Get the current options for the port */
tcgetattr(fd, &options);
oldTermios=options;
cfsetispeed(&options, B19200); /* Set the baud rates to 19200 */
cfsetospeed(&options, B19200);
......@@ -93,7 +93,7 @@ void ComPort::reopen()
openPort();
if( fd > 0 )
tcsetattr(fd, TCSAFLUSH, &options);
}
}
}
// --------------------------------------------------------------------------------
void ComPort::setSpeed( Speed s )
......@@ -114,7 +114,7 @@ void ComPort::setParity(Parity parity)
struct termios options;
tcgetattr(fd, &options);
switch(parity)
{
case Odd:
......@@ -205,14 +205,14 @@ unsigned char ComPort::m_receiveByte( bool wait )
{
fd_set set;
timeval timeout;
FD_ZERO (&set);
FD_SET (fd, &set);
/* Initialize the timeout data structure. */
timeout.tv_sec = 0;
timeout.tv_usec = uTimeout;
/* select' returns 0 if timeout, 1 if input available, -1 if error. */
if(select(FD_SETSIZE, &set, NULL, NULL, &timeout)==1)
......@@ -287,10 +287,10 @@ int ComPort::sendBlock(unsigned char* msg, int len)
int ComPort::receiveBlock(unsigned char* msg, int len)
{
int k;
if(!len)
return 0;
for(k=0;k<len;k++)
{
try
......@@ -302,12 +302,12 @@ int ComPort::receiveBlock(unsigned char* msg, int len)
break;
}
}
if(!k)
{
throw UniSetTypes::TimeOut();
}
return k;
}
......@@ -346,7 +346,7 @@ void ComPort::cleanupChannel()
waiting = old_waiting;
}
// --------------------------------------------------------------------------------
void ComPort::setSpeed( std::string s )
void ComPort::setSpeed( const std::string& s )
{
Speed sp=getSpeed(s);
if( sp != ComPort::ComSpeed0 )
......@@ -424,13 +424,13 @@ std::string ComPort::getSpeed( Speed s )
// --------------------------------------------------------------------------------
#define CHECK_SPEED(var,speed) \
if( var == __STRING(speed) ) \
return ComPort::ComSpeed##speed;
ComPort::Speed ComPort::getSpeed( const string s )
return ComPort::ComSpeed##speed;
ComPort::Speed ComPort::getSpeed( const string& s )
{
// см. ComPort.h
// см. ComPort.h
// сперва самые вероятные
// сперва самые вероятные
CHECK_SPEED(s,9600)
CHECK_SPEED(s,19200)
CHECK_SPEED(s,38400)
......@@ -450,7 +450,7 @@ ComPort::Speed ComPort::getSpeed( const string s )
CHECK_SPEED(s,1800)
CHECK_SPEED(s,2400)
CHECK_SPEED(s,4800)
CHECK_SPEED(s,230400)
CHECK_SPEED(s,460800)
CHECK_SPEED(s,500000)
......
......@@ -11,7 +11,7 @@ using namespace ModbusRTU;
using namespace UniSetTypes;
// -------------------------------------------------------------------------
ModbusRTUMaster::ModbusRTUMaster( const string dev, bool use485, bool tr_ctl ):
ModbusRTUMaster::ModbusRTUMaster( const string& dev, bool use485, bool tr_ctl ):
port(NULL),
myport(true)
{
......@@ -67,7 +67,7 @@ void ModbusRTUMaster::setSpeed( ComPort::Speed s )
port->setSpeed(s);
}
// --------------------------------------------------------------------------------
void ModbusRTUMaster::setSpeed( const std::string s )
void ModbusRTUMaster::setSpeed( const std::string& s )
{
if( port != NULL )
port->setSpeed(s);
......
......@@ -3,7 +3,7 @@
using namespace ModbusRTU;
using namespace std;
// -------------------------------------------------------------------------
ModbusRTUSlaveSlot::ModbusRTUSlaveSlot( const std::string dev, bool use485, bool tr_ctl ):
ModbusRTUSlaveSlot::ModbusRTUSlaveSlot( const std::string& dev, bool use485, bool tr_ctl ):
ModbusRTUSlave(dev,use485,tr_ctl)
{
}
......
......@@ -271,7 +271,7 @@ void ModbusTCPMaster::cleanInputStream()
while( ret > 0);
}
// -------------------------------------------------------------------------
bool ModbusTCPMaster::checkConnection( const std::string ip, int port, int timeout_msec )
bool ModbusTCPMaster::checkConnection( const std::string& ip, int port, int timeout_msec )
{
try
{
......@@ -334,7 +334,7 @@ void ModbusTCPMaster::reconnect()
}
}
// -------------------------------------------------------------------------
void ModbusTCPMaster::connect( const std::string addr, int port )
void ModbusTCPMaster::connect( const std::string& addr, int port )
{
ost::InetAddress ia(addr.c_str());
connect(ia,port);
......
......@@ -2539,7 +2539,7 @@ MEIMessageRetRDI::MEIMessageRetRDI( ModbusAddr _addr, ModbusByte devID, ModbusBy
func = fnMEI;
}
// -------------------------------------------------------------------------
bool MEIMessageRetRDI::addData( ModbusByte id, const std::string val )
bool MEIMessageRetRDI::addData( ModbusByte id, const std::string& val )
{
if( isFull() )
return false;
......@@ -2813,7 +2813,7 @@ float ModbusRTU::dat2f( const ModbusData dat1, const ModbusData dat2 )
return f;
}
// -------------------------------------------------------------------------
ModbusAddr ModbusRTU::str2mbAddr( const std::string val )
ModbusAddr ModbusRTU::str2mbAddr( const std::string& val )
{
if( val.empty() )
return 0;
......@@ -2821,7 +2821,7 @@ ModbusAddr ModbusRTU::str2mbAddr( const std::string val )
return (ModbusAddr)UniSetTypes::uni_atoi(val);
}
// -------------------------------------------------------------------------
ModbusData ModbusRTU::str2mbData( const std::string val )
ModbusData ModbusRTU::str2mbData( const std::string& val )
{
if( val.empty() )
return 0;
......
......@@ -1202,7 +1202,7 @@ bool UInterface::isExist( UniSetTypes::ObjectId id, UniSetTypes::ObjectId node )
return false;
}
// --------------------------------------------------------------------------------------------
string UInterface::set_err(const string& pre, UniSetTypes::ObjectId id, UniSetTypes::ObjectId node)
string UInterface::set_err(const std::string& pre, UniSetTypes::ObjectId id, UniSetTypes::ObjectId node)
{
if( id==UniSetTypes::DefaultObjectId )
return string(pre+" DefaultObjectId");
......
......@@ -47,7 +47,7 @@ string IORFile::getIOR( const ObjectId id, const ObjectId node )
return sior;
}
// -----------------------------------------------------------------------------------------
void IORFile::setIOR( const ObjectId id, const ObjectId node, const string sior )
void IORFile::setIOR( const ObjectId id, const ObjectId node, const string& sior )
{
string fname( genFName(id,node) );
ofstream ior_file(fname.c_str(), ios::out | ios::trunc);
......
......@@ -31,7 +31,7 @@ using namespace std;
using namespace UniSetTypes;
// -----------------------------------------------------------------------------
float UniSetTypes::fcalibrate( float raw, float rawMin, float rawMax,
float UniSetTypes::fcalibrate( float raw, float rawMin, float rawMax,
float calMin, float calMax, bool limit )
{
if( rawMax == rawMin ) return 0; // деление на 0!!!
......@@ -52,7 +52,7 @@ using namespace UniSetTypes;
if( ret < calMax )
return calMax;
}
return ret;
}
// -------------------------------------------------------------------------
......@@ -61,7 +61,7 @@ using namespace UniSetTypes;
{
if( rawMax == rawMin ) return 0; // деление на 0!!!
long ret = lroundf( (float)(raw - rawMin) * (float)(calMax - calMin) /
long ret = lroundf( (float)(raw - rawMin) * (float)(calMax - calMin) /
(float)( rawMax - rawMin ) + calMin );
if( !limit )
......@@ -85,7 +85,7 @@ using namespace UniSetTypes;
if( ret < calMax )
return calMax;
}
return ret;
}
......@@ -106,9 +106,9 @@ using namespace UniSetTypes;
UniSetTypes::IDList::IDList():
node(UniSetTypes::conf->getLocalNode())
{
}
UniSetTypes::IDList::~IDList()
{
}
......@@ -120,11 +120,11 @@ using namespace UniSetTypes;
if( (*it) == id )
return;
}
lst.push_back(id);
}
void UniSetTypes::IDList::del( ObjectId id )
{
for( list<ObjectId>::iterator it=lst.begin(); it!=lst.end(); ++it )
......@@ -146,7 +146,7 @@ using namespace UniSetTypes;
{
if( lst.empty() )
return UniSetTypes::DefaultObjectId;
return (*lst.begin());
}
......@@ -159,18 +159,18 @@ using namespace UniSetTypes;
int i=0;
for( list<ObjectId>::iterator it=lst.begin(); it!=lst.end(); ++it,i++ )
(*seq)[i] = (*it);
return seq;
}
// -------------------------------------------------------------------------
bool UniSetTypes::file_exist( const std::string filename )
bool UniSetTypes::file_exist( const std::string& filename )
{
std::ifstream file;
#ifdef HAVE_IOS_NOCREATE
file.open( filename.c_str(), std::ios::in | std::ios::nocreate );
#else
#else
file.open( filename.c_str(), std::ios::in );
#endif
#endif
bool result = false;
if( file )
result = true;
......@@ -179,7 +179,7 @@ using namespace UniSetTypes;
return result;
}
// -------------------------------------------------------------------------
UniSetTypes::IDList UniSetTypes::explode( const string str, char sep )
UniSetTypes::IDList UniSetTypes::explode( const string& str, char sep )
{
UniSetTypes::IDList l;
......@@ -196,11 +196,11 @@ using namespace UniSetTypes;
}
}
while( pos!=string::npos );
return l;
}
// -------------------------------------------------------------------------
std::list<std::string> UniSetTypes::explode_str( const string str, char sep )
std::list<std::string> UniSetTypes::explode_str( const string& str, char sep )
{
std::list<std::string> l;
......@@ -217,31 +217,31 @@ using namespace UniSetTypes;
}
}
while( pos!=string::npos );
return l;
}
}
// ------------------------------------------------------------------------------------------
bool UniSetTypes::is_digit( const std::string s )
bool UniSetTypes::is_digit( const std::string& s )
{
for( std::string::const_iterator it=s.begin(); it!=s.end(); it++ )
{
if( !isdigit(*it) )
return false;
}
return true;
//return (std::count_if(s.begin(),s.end(),std::isdigit) == s.size()) ? true : false;
}
// --------------------------------------------------------------------------------------
std::list<UniSetTypes::ParamSInfo> UniSetTypes::getSInfoList( string str, Configuration* conf )
std::list<UniSetTypes::ParamSInfo> UniSetTypes::getSInfoList( const string& str, Configuration* conf )
{
std::list<UniSetTypes::ParamSInfo> res;
std::list<std::string> l = UniSetTypes::explode_str(str,',');
for( std::list<std::string>::iterator it=l.begin(); it!=l.end(); it++ )
{
UniSetTypes::ParamSInfo item;
std::list<std::string> p = UniSetTypes::explode_str((*it),'=');
std::string s = "";
if( p.size() == 1 )
......@@ -258,8 +258,8 @@ using namespace UniSetTypes;
{
cerr << "WARNING: parse error for '" << (*it) << "'. IGNORE..." << endl;
continue;
}
}
item.fname = s;
std::list<std::string> t = UniSetTypes::explode_str(s,'@');
if( t.size() == 1 )
......@@ -279,7 +279,7 @@ using namespace UniSetTypes;
item.si.id = uni_atoi(s_id);
else
item.si.id = conf->getSensorID(s_id);
if( is_digit(s_node.c_str()) )
item.si.node = uni_atoi(s_node);
else
......@@ -293,12 +293,12 @@ using namespace UniSetTypes;
res.push_back(item);
}
return res;
}
// --------------------------------------------------------------------------------------
UniversalIO::IOType UniSetTypes::getIOType( const std::string stype )
UniversalIO::IOType UniSetTypes::getIOType( const std::string& stype )
{
if ( stype == "DI" || stype == "di" )
return UniversalIO::DI;
......@@ -336,7 +336,7 @@ using namespace UniSetTypes;
<< " precision=" << c.precision;
}
// ------------------------------------------------------------------------------------------
bool UniSetTypes::check_filter( UniXML_iterator& it, const std::string f_prop, const std::string f_val )
bool UniSetTypes::check_filter( UniXML_iterator& it, const std::string& f_prop, const std::string& f_val )
{
if( f_prop.empty() )
return true;
......@@ -352,23 +352,23 @@ using namespace UniSetTypes;
return true;
}
// ------------------------------------------------------------------------------------------
string UniSetTypes::timeToString(time_t tm, const std::string brk )
string UniSetTypes::timeToString(time_t tm, const std::string& brk )
{
struct tm *tms = localtime(&tm);
ostringstream time;
time << std::setw(2) << std::setfill('0') << tms->tm_hour << brk;
time << std::setw(2) << std::setfill('0') << tms->tm_min << brk;
time << std::setw(2) << std::setfill('0') << tms->tm_sec;
time << std::setw(2) << std::setfill('0') << tms->tm_sec;
return time.str();
}
string UniSetTypes::dateToString(time_t tm, const std::string brk )
string UniSetTypes::dateToString(time_t tm, const std::string& brk )
{
struct tm *tms = localtime(&tm);
ostringstream date;
date << std::setw(4) << std::setfill('0') << tms->tm_year+1900 << brk;
date << std::setw(2) << std::setfill('0') << tms->tm_mon+1 << brk;
date << std::setw(2) << std::setfill('0') << tms->tm_mday;
date << std::setw(2) << std::setfill('0') << tms->tm_mday;
return date.str();
}
......
......@@ -40,7 +40,7 @@ IOController::IOController():
// ------------------------------------------------------------------------------------------
IOController::IOController(const string name, const string section):
IOController::IOController(const string& name, const string& section):
UniSetManager(name, section),
ioMutex(name+"_ioMutex"),
isPingDBServer(true)
......
......@@ -47,7 +47,7 @@ maxAttemtps(conf->getPIntField("ConsumerMaxAttempts", 5))
}
IONotifyController::IONotifyController(const string name, const string section, NCRestorer* d ):
IONotifyController::IONotifyController(const string& name, const string& section, NCRestorer* d ):
IOController(name, section),
restorer(d),
askIOMutex(name+"askIOMutex"),
......
......@@ -221,7 +221,7 @@ const DebugStream& DebugStream::operator=( const DebugStream& r )
}
//--------------------------------------------------------------------------
/// Sets the debugstreams' logfile to f.
void DebugStream::logFile(const std::string f)
void DebugStream::logFile( const std::string& f )
{
fname = f;
if (internal) {
......
......@@ -44,13 +44,13 @@ Restorer_XML::~Restorer_XML()
{
}
// -----------------------------------------------------------------------------
void Restorer_XML::setItemFilter( const string field, const string val )
void Restorer_XML::setItemFilter( const string& field, const string& val )
{
i_filterField = field;
i_filterValue = val;
}
// -----------------------------------------------------------------------------
void Restorer_XML::setConsumerFilter( const string field, const string val )
void Restorer_XML::setConsumerFilter( const string& field, const string& val )
{
c_filterField = field;
c_filterValue = val;
......@@ -184,7 +184,7 @@ bool Restorer_XML::check_consumer_item( UniXML_iterator& it )
}
// -----------------------------------------------------------------------------
xmlNode* Restorer_XML::find_node( UniXML& xml, xmlNode* root,
const string& nodename, const string nm )
const string& nodename, const string& nm )
{
UniXML_iterator it(root);
if( it.goChildren() )
......
......@@ -35,7 +35,7 @@ using namespace UniSetTypes;
using namespace UniversalIO;
using namespace std;
// --------------------------------------------------------------------------
SViewer::SViewer(const string csec, bool sn):
SViewer::SViewer(const string& csec, bool sn):
csec(csec),
rep(UniSetTypes::conf),
cache(500, 15),
......@@ -79,7 +79,7 @@ void SViewer::view()
// ---------------------------------------------------------------------------
void SViewer::readSection(const string section, const string secRoot)
void SViewer::readSection( const string& section, const string& secRoot )
{
ListObjectName lst;
string curSection;
......
......@@ -12,7 +12,7 @@
// --------------------------------------------------------------------------
using namespace std;
// --------------------------------------------------------------------------
WDTInterface::WDTInterface( const std::string _dev ):
WDTInterface::WDTInterface( const std::string& _dev ):
dev(_dev)
{
}
......
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