Commit da30e9ae authored by Pavel Vainerman's avatar Pavel Vainerman

Небольшая оптимизация...

parent 1fd3e894
...@@ -28,8 +28,6 @@ Version 2.0 ...@@ -28,8 +28,6 @@ Version 2.0
- сделать MultiChannelSlave (слушает несколько каналов, но в SM сохраняет данные - сделать MultiChannelSlave (слушает несколько каналов, но в SM сохраняет данные
только от одного, при пропаже связи переключается на другой и т.д. по кругу) только от одного, при пропаже связи переключается на другой и т.д. по кругу)
- Сделать поддержку threshold_aid (порогов) для процесса ModbusMaster
// --- Оптимизация.. --- // // --- Оптимизация.. --- //
- сделать ли ObjectId short? - сделать ли ObjectId short?
- "продумать" функцию key()... может наложить ограничение на диапазон id.. - "продумать" функцию key()... может наложить ограничение на диапазон id..
......
...@@ -74,7 +74,7 @@ bool DBInterface::insert( const string& q ) ...@@ -74,7 +74,7 @@ bool DBInterface::insert( const string& q )
queryok=false; queryok=false;
return false; return false;
} }
queryok=true; queryok=true;
return true; return true;
} }
...@@ -90,7 +90,6 @@ bool DBInterface::query( const string& q ) ...@@ -90,7 +90,6 @@ bool DBInterface::query( const string& q )
return false; return false;
} }
lastQ = q; lastQ = q;
result = mysql_store_result(mysql); // _use_result - некорректно работает с _num_rows result = mysql_store_result(mysql); // _use_result - некорректно работает с _num_rows
if( numRows()==0 ) if( numRows()==0 )
...@@ -200,7 +199,7 @@ MYSQL_RES* DBInterface::listFields( const string& table, const string& wild ) ...@@ -200,7 +199,7 @@ MYSQL_RES* DBInterface::listFields( const string& table, const string& wild )
// MYSQL_FIELD *field = mysql_fetch_fields(res); // MYSQL_FIELD *field = mysql_fetch_fields(res);
// cout << field << " | "; // cout << field << " | ";
for( unsigned int i = 0; i<cols; i++) for( unsigned int i = 0; i<cols; i++)
{ {
cout << row[i] << " | "; cout << row[i] << " | ";
} }
...@@ -241,6 +240,6 @@ string DBInterface::addslashes( const string& str ) ...@@ -241,6 +240,6 @@ string DBInterface::addslashes( const string& str )
tmp << "\\"; tmp << "\\";
tmp << str[i]; tmp << str[i];
} }
return tmp.str(); return tmp.str();
} }
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
class DBInterface class DBInterface
{ {
public: public:
DBInterface(); DBInterface();
~DBInterface(); ~DBInterface();
...@@ -45,13 +45,13 @@ class DBInterface ...@@ -45,13 +45,13 @@ class DBInterface
bool connect( const std::string& host, const std::string& user, const std::string& pswd, bool connect( const std::string& host, const std::string& user, const std::string& pswd,
const std::string& dbname); const std::string& dbname);
bool close(); bool close();
bool query(const std::string& q); bool query(const std::string& q);
const std::string lastQuery(); const std::string lastQuery();
bool insert(const std::string& q); bool insert(const std::string& q);
std::string addslashes(const std::string& str); std::string addslashes(const std::string& str);
/*! /*!
проверка связи с БД. проверка связи с БД.
в случае отсутсвия попытка восстановить... в случае отсутсвия попытка восстановить...
...@@ -60,7 +60,7 @@ class DBInterface ...@@ -60,7 +60,7 @@ class DBInterface
/*! связь с БД установлена (была) */ /*! связь с БД установлена (была) */
bool isConnection(); bool isConnection();
bool nextRecord(); bool nextRecord();
void freeResult(); void freeResult();
...@@ -68,20 +68,20 @@ class DBInterface ...@@ -68,20 +68,20 @@ class DBInterface
unsigned int numRows(); unsigned int numRows();
bool moveToRow(int ind); bool moveToRow(int ind);
int insert_id(); int insert_id();
const MYSQL_ROW getRow(); const MYSQL_ROW getRow();
const std::string error(); const std::string error();
MYSQL_ROW Row; MYSQL_ROW Row;
// ******************* // *******************
const char* gethostinfo(); const char* gethostinfo();
protected: protected:
private: private:
MYSQL_RES *result; MYSQL_RES *result;
MYSQL *mysql; MYSQL *mysql;
std::string lastQ; std::string lastQ;
......
...@@ -31,8 +31,6 @@ ...@@ -31,8 +31,6 @@
#include <sqlite3.h> #include <sqlite3.h>
#include "PassiveTimer.h" #include "PassiveTimer.h"
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
class SQLiteResult;
// ----------------------------------------------------------------------------
/*! \page SQLiteIntarface Интерфейс к SQLite /*! \page SQLiteIntarface Интерфейс к SQLite
Пример использования: Пример использования:
...@@ -83,6 +81,8 @@ class SQLiteResult; ...@@ -83,6 +81,8 @@ class SQLiteResult;
// PRAGMA journal_mode = MEMORY // PRAGMA journal_mode = MEMORY
// При этом конечно есть риск потерять данные при выключении.. // При этом конечно есть риск потерять данные при выключении..
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
class SQLiteResult;
// ----------------------------------------------------------------------------
class SQLiteInterface class SQLiteInterface
{ {
public: public:
......
...@@ -25,8 +25,8 @@ class PID ...@@ -25,8 +25,8 @@ class PID
\param Ts - интервал расчёта данных, [сек] (интервал между шагами расчёта). \param Ts - интервал расчёта данных, [сек] (интервал между шагами расчёта).
Ts - должно быть больше нуля Ts - должно быть больше нуля
*/ */
void step( double X, double Z, double Ts ); void step( const double& X, const double& Z, const double& Ts );
/*! рестарт регулятора... */ /*! рестарт регулятора... */
void reset(); void reset();
...@@ -41,7 +41,6 @@ class PID ...@@ -41,7 +41,6 @@ class PID
double vlim; /*!< максимальное(минимальное) разрешённое значение (для любого растущего во времени коэффициента) double vlim; /*!< максимальное(минимальное) разрешённое значение (для любого растущего во времени коэффициента)
защита от переполнения защита от переполнения
*/ */
double d0; double d0;
double d1; double d1;
double d2; double d2;
...@@ -51,7 +50,7 @@ class PID ...@@ -51,7 +50,7 @@ class PID
double prevTs; double prevTs;
friend std::ostream& operator<<(std::ostream& os, PID& p ); friend std::ostream& operator<<(std::ostream& os, PID& p );
friend std::ostream& operator<<(std::ostream& os, PID* p ) friend std::ostream& operator<<(std::ostream& os, PID* p )
{ {
return os << (*p); return os << (*p);
......
...@@ -23,7 +23,7 @@ PID::~PID() ...@@ -23,7 +23,7 @@ PID::~PID()
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void PID::step( double X, double Z, double Ts ) void PID::step( const double& X, const double& Z, const double& Ts )
{ {
// Чтобы не пересчитывать коэффициенты на каждом шаге // Чтобы не пересчитывать коэффициенты на каждом шаге
...@@ -39,9 +39,9 @@ void PID::step( double X, double Z, double Ts ) ...@@ -39,9 +39,9 @@ void PID::step( double X, double Z, double Ts )
recalc(); recalc();
} }
sub2 = sub1; // ошибка 2 шага назад sub2 = sub1;// ошибка 2 шага назад
sub1 = sub; // ошибка 1 шаг назад sub1 = sub; // ошибка 1 шаг назад
sub = Z-X; // текущая ошибка sub = Z-X; // текущая ошибка
// NOTE: в первоисточнике было "текущее"(X) - "заданное"(Z), // NOTE: в первоисточнике было "текущее"(X) - "заданное"(Z),
// но правильно именно Z-X (проверено!) // но правильно именно Z-X (проверено!)
......
...@@ -70,12 +70,6 @@ void PassiveObject::setID( UniSetTypes::ObjectId id_ ) ...@@ -70,12 +70,6 @@ void PassiveObject::setID( UniSetTypes::ObjectId id_ )
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
void PassiveObject::init( ProxyManager* _mngr ) void PassiveObject::init( ProxyManager* _mngr )
{ {
if(mngr)
mngr->detachObject(id);
mngr->attachObject(this,id);
#if 0
if( _mngr == mngr || !_mngr ) if( _mngr == mngr || !_mngr )
return; return;
...@@ -85,7 +79,6 @@ void PassiveObject::init( ProxyManager* _mngr ) ...@@ -85,7 +79,6 @@ void PassiveObject::init( ProxyManager* _mngr )
mngr = _mngr; mngr = _mngr;
mngr->attachObject(this,id); mngr->attachObject(this,id);
#endif
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
......
...@@ -783,7 +783,7 @@ string Configuration::getRepSectionName( const string& sec, xmlNode* secnode ) ...@@ -783,7 +783,7 @@ string Configuration::getRepSectionName( const string& sec, xmlNode* secnode )
ucrit << msg.str() << endl; ucrit << msg.str() << endl;
throw SystemError(msg.str()); throw SystemError(msg.str());
} }
secnode = node; secnode = node;
string ret(unixml.getProp(node,"section")); string ret(unixml.getProp(node,"section"));
......
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