Commit 3db9b2c6 authored by Vitaly Lipatov's avatar Vitaly Lipatov

use timeout_t for time variable, use clock_t for save ticks

use UniSetTimer::MinQuantityTime instead UniSetTimer::MIN_QUANTITY_TIME_MS
parent 9f93e031
...@@ -54,7 +54,7 @@ interface TimerService_i: UniSetObject_i ...@@ -54,7 +54,7 @@ interface TimerService_i: UniSetObject_i
*/ */
exception TimeMSLowLimit exception TimeMSLowLimit
{ {
long lowLimitMS; unsigned long lowLimitMS; // instead timeout_t
}; };
...@@ -62,8 +62,8 @@ interface TimerService_i: UniSetObject_i ...@@ -62,8 +62,8 @@ interface TimerService_i: UniSetObject_i
struct Timer struct Timer
{ {
UniSetTypes::TimerId timerid; UniSetTypes::TimerId timerid;
long timeMS; unsigned long timeMS;
short ticks; long ticks; // instead clock_t
short msgPriority; short msgPriority;
}; };
......
...@@ -174,7 +174,7 @@ class MBSlave: ...@@ -174,7 +174,7 @@ class MBSlave:
bool activated; bool activated;
int activateTimeout; int activateTimeout;
bool pingOK; bool pingOK;
int wait_msec; timeout_t wait_msec;
bool force; /*!< , SM, */ bool force; /*!< , SM, */
bool mbregFromID; bool mbregFromID;
......
...@@ -51,13 +51,13 @@ class IONotifyController_LT: ...@@ -51,13 +51,13 @@ class IONotifyController_LT:
\return [] \return []
*/ */
void askTimer( UniSetTypes::TimerId timerid, long timeMS, short ticks=-1, void askTimer( UniSetTypes::TimerId timerid, timeout_t timeMS, short ticks=-1,
UniSetTypes::Message::Priority p=UniSetTypes::Message::High ); UniSetTypes::Message::Priority p=UniSetTypes::Message::High );
/*! */ /*! */
virtual void callback(); virtual void callback();
int sleepTime; timeout_t sleepTime;
LT_Object lt; LT_Object lt;
private: private:
......
...@@ -110,7 +110,7 @@ class LT_Object ...@@ -110,7 +110,7 @@ class LT_Object
\return [] \return []
*/ */
int askTimer( UniSetTypes::TimerId timerid, long timeMS, short ticks=-1, timeout_t askTimer( UniSetTypes::TimerId timerid, timeout_t timeMS, clock_t ticks=-1,
UniSetTypes::Message::Priority p=UniSetTypes::Message::High ); UniSetTypes::Message::Priority p=UniSetTypes::Message::High );
...@@ -120,10 +120,10 @@ class LT_Object ...@@ -120,10 +120,10 @@ class LT_Object
\return [] \return []
*/ */
int checkTimers( UniSetObject* obj ); timeout_t checkTimers( UniSetObject* obj );
/*! */ /*! */
inline int getSleepTimeMS(){ return sleepTime; } //inline timeout_t getSleepTimeMS(){ return sleepTime; }
protected: protected:
...@@ -131,7 +131,7 @@ class LT_Object ...@@ -131,7 +131,7 @@ class LT_Object
struct TimerInfo struct TimerInfo
{ {
TimerInfo():id(0), curTimeMS(0), priority(UniSetTypes::Message::High){}; TimerInfo():id(0), curTimeMS(0), priority(UniSetTypes::Message::High){};
TimerInfo(UniSetTypes::TimerId id, long timeMS, short cnt, UniSetTypes::Message::Priority p): TimerInfo(UniSetTypes::TimerId id, timeout_t timeMS, short cnt, UniSetTypes::Message::Priority p):
id(id), id(id),
curTimeMS(timeMS), curTimeMS(timeMS),
priority(p), priority(p),
...@@ -147,14 +147,14 @@ class LT_Object ...@@ -147,14 +147,14 @@ class LT_Object
} }
UniSetTypes::TimerId id; /*!< */ UniSetTypes::TimerId id; /*!< */
int curTimeMS; /*!< */ timeout_t curTimeMS; /*!< */
UniSetTypes::Message::Priority priority; /*!< */ UniSetTypes::Message::Priority priority; /*!< */
/*! /*!
* *
* \note -1 * \note -1
*/ */
short curTick; clock_t curTick;
// //
bool operator < ( const TimerInfo& ti ) const bool operator < ( const TimerInfo& ti ) const
......
...@@ -51,7 +51,7 @@ class ObjectsManager_LT: ...@@ -51,7 +51,7 @@ class ObjectsManager_LT:
\return [] \return []
*/ */
void askTimer( UniSetTypes::TimerId timerid, long timeMS, short ticks=-1, void askTimer( UniSetTypes::TimerId timerid, timeout_t timeMS, short ticks=-1,
UniSetTypes::Message::Priority p=UniSetTypes::Message::High ); UniSetTypes::Message::Priority p=UniSetTypes::Message::High );
/*! */ /*! */
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
#include <signal.h> #include <signal.h>
#include <sys/time.h> #include <sys/time.h>
#include <cc++/socket.h>
//#include "Exceptions.h" //#include "Exceptions.h"
...@@ -44,26 +45,34 @@ class UniSetTimer ...@@ -44,26 +45,34 @@ class UniSetTimer
virtual ~UniSetTimer(){}; virtual ~UniSetTimer(){};
virtual bool checkTime()=0; /*!< */ virtual bool checkTime()=0; /*!< */
virtual void setTiming( int timeMS )=0; /*!< */ virtual timeout_t setTiming( timeout_t timeMS )=0; /*!< */
virtual void reset()=0; /*!< */ virtual void reset()=0; /*!< */
virtual int getCurrent()=0; /*!< */ virtual timeout_t getCurrent()=0; /*!< */
virtual int getInterval()=0; /*!< , , */ virtual timeout_t getInterval()=0; /*!< , , */
timeout_t getLeft(timeout_t timeout) /*< , timeout getCurrent() */
{
timeout_t ct = getCurrent();
if( timeout <= ct )
return 0;
return timeout - ct;
}
// .. // ..
// //
// . // .
virtual int wait(int timeMS){ return 0;} /*!< */ virtual bool wait(timeout_t timeMS){ return 0;} /*!< */
virtual void terminate(){} /*!< */ virtual void terminate(){} /*!< */
virtual void stop(){ terminate(); }; /*!< */ virtual void stop(){ terminate(); }; /*!< */
/*! , /*! ,
* terminate() stop() * terminate() stop()
*/ */
static const int WaitUpTime = -1; static const timeout_t WaitUpTime = TIMEOUT_INF;
/*! . . */ /*! . . */
static const int MIN_QUANTITY_TIME_MS = 30; static const timeout_t MinQuantityTime = 30;
static const timeout_t MIN_QUANTITY_TIME_MS = 30; /*< , ! */
}; };
//---------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------
/*! \class PassiveTimer /*! \class PassiveTimer
...@@ -82,15 +91,15 @@ class PassiveTimer: ...@@ -82,15 +91,15 @@ class PassiveTimer:
{ {
public: public:
PassiveTimer(); PassiveTimer();
PassiveTimer( int timeMS ); /*!< */ PassiveTimer( timeout_t timeMS ); /*!< */
virtual bool checkTime(); /*!< */ virtual bool checkTime(); /*!< */
virtual void setTiming( int timeMS ); /*!< */ virtual timeout_t setTiming( timeout_t timeMS ); /*!< */
virtual void reset(); /*!< */ virtual void reset(); /*!< */
virtual int getCurrent(); /*!< , */ virtual timeout_t getCurrent(); /*!< , */
virtual int getInterval() /*!< , , */ virtual timeout_t getInterval() /*!< , , */
{ {
return timeSS*10; return timeSS*10;
} }
...@@ -98,11 +107,12 @@ public: ...@@ -98,11 +107,12 @@ public:
virtual void terminate(); /*!< */ virtual void terminate(); /*!< */
protected: protected:
int timeAct; /*!< , */ clock_t timeAct; /*!< , */
int timeSS; /*!< , */ timeout_t timeSS; /*!< , */
int timeStart; /*!< () */ clock_t timeStart; /*!< () */
private: private:
int clock_ticks; // CLK_TCK clock_t clock_ticks; //
clock_t times(); //
}; };
//---------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------
...@@ -115,7 +125,7 @@ class omni_condition; ...@@ -115,7 +125,7 @@ class omni_condition;
* \date $Date: 2007/08/02 22:52:27 $ * \date $Date: 2007/08/02 22:52:27 $
* \version $Id: PassiveTimer.h,v 1.9 2007/08/02 22:52:27 vpashka Exp $ * \version $Id: PassiveTimer.h,v 1.9 2007/08/02 22:52:27 vpashka Exp $
* \par * \par
* wait(int timeMS). * wait(timeout_t timeMS).
* (mutex condition). * (mutex condition).
* \note (WaitUpTime), * \note (WaitUpTime),
* terminate(). * terminate().
...@@ -128,7 +138,7 @@ class ThrPassiveTimer: ...@@ -128,7 +138,7 @@ class ThrPassiveTimer:
ThrPassiveTimer(); ThrPassiveTimer();
~ThrPassiveTimer(); ~ThrPassiveTimer();
virtual int wait(int timeMS); /*!< */ virtual bool wait(timeout_t timeMS); /*!< */
virtual void terminate(); /*!< */ virtual void terminate(); /*!< */
protected: protected:
private: private:
...@@ -154,13 +164,13 @@ class PassiveSysTimer: ...@@ -154,13 +164,13 @@ class PassiveSysTimer:
PassiveSysTimer(); PassiveSysTimer();
~PassiveSysTimer(); ~PassiveSysTimer();
virtual int wait(int timeMS); //throw(UniSetTypes::NotSetSignal); virtual bool wait(timeout_t timeMS); //throw(UniSetTypes::NotSetSignal);
virtual void terminate(); virtual void terminate();
protected: protected:
private: private:
struct itimerval mtimer; struct itimerval mtimer;
pid_t pid; pid_t pid;
// bool terminated; // bool terminated;
......
...@@ -139,7 +139,7 @@ class TimerService: ...@@ -139,7 +139,7 @@ class TimerService:
UniSetTypes::ConsumerInfo cinf; /*!< */ UniSetTypes::ConsumerInfo cinf; /*!< */
UniSetObject_i_var ref; /*!< */ UniSetObject_i_var ref; /*!< */
UniSetTypes::TimerId id; /*!< */ UniSetTypes::TimerId id; /*!< */
int curTimeMS; /*!< */ timeout_t curTimeMS; /*!< */
UniSetTypes::Message::Priority priority; /*!< */ UniSetTypes::Message::Priority priority; /*!< */
/*! /*!
......
...@@ -132,7 +132,7 @@ class UniSetObject: ...@@ -132,7 +132,7 @@ class UniSetObject:
inline void terminate(){ disactivate(); } inline void terminate(){ disactivate(); }
/*! timeMS */ /*! timeMS */
virtual bool waitMessage(UniSetTypes::VoidMessage& msg, int timeMS=UniSetTimer::WaitUpTime); virtual bool waitMessage(UniSetTypes::VoidMessage& msg, timeout_t timeMS=UniSetTimer::WaitUpTime);
void setID(UniSetTypes::ObjectId id); void setID(UniSetTypes::ObjectId id);
......
...@@ -51,13 +51,13 @@ class UniSetObject_LT: ...@@ -51,13 +51,13 @@ class UniSetObject_LT:
\return [] \return []
*/ */
void askTimer( UniSetTypes::TimerId timerid, long timeMS, short ticks=-1, void askTimer( UniSetTypes::TimerId timerid, timeout_t timeMS, short ticks=-1,
UniSetTypes::Message::Priority p=UniSetTypes::Message::High ); UniSetTypes::Message::Priority p=UniSetTypes::Message::High );
/*! */ /*! */
virtual void callback(); virtual void callback();
int sleepTime; timeout_t sleepTime;
LT_Object lt; LT_Object lt;
private: private:
}; };
......
...@@ -107,7 +107,7 @@ class ModbusClient ...@@ -107,7 +107,7 @@ class ModbusClient
\param part_timeout_msec - . \param part_timeout_msec - .
*/ */
ModbusRTU::FileTransferRetMessage partOfFileTransfer( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusData idFile, ModbusRTU::FileTransferRetMessage partOfFileTransfer( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusData idFile,
ModbusRTU::ModbusData numpack, int part_timeout_msec=2000 ) ModbusRTU::ModbusData numpack, timeout_t part_timeout_msec=2000 )
throw(ModbusRTU::mbException); throw(ModbusRTU::mbException);
/*! /*!
...@@ -116,17 +116,17 @@ class ModbusClient ...@@ -116,17 +116,17 @@ class ModbusClient
\param part_timeout_msec - . \param part_timeout_msec - .
*/ */
void fileTransfer( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusData idFile, void fileTransfer( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusData idFile,
const char* save2filename, int part_timeout_msec=2000 ) const char* save2filename, timeout_t part_timeout_msec=2000 )
throw(ModbusRTU::mbException); throw(ModbusRTU::mbException);
// --------------------------------------------------------------------- // ---------------------------------------------------------------------
/*! */ /*! */
void setTimeout( int msec ); void setTimeout( timeout_t msec );
/*! /*!
\return \return
*/ */
int setAfterSendPause( int msec ); int setAfterSendPause( timeout_t msec );
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 ); void setLog( DebugStream& dlog );
...@@ -146,13 +146,13 @@ class ModbusClient ...@@ -146,13 +146,13 @@ class ModbusClient
virtual int getNextData( unsigned char* buf, int len )=0; virtual int getNextData( unsigned char* buf, int len )=0;
/*! set timeout for send/receive data */ /*! set timeout for send/receive data */
virtual void setChannelTimeout( int msec )=0; virtual void setChannelTimeout( timeout_t msec )=0;
virtual ModbusRTU::mbErrCode sendData( unsigned char* buf, int len )=0; virtual ModbusRTU::mbErrCode sendData( unsigned char* buf, int len )=0;
/*! - */ /*! - */
virtual ModbusRTU::mbErrCode query( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusMessage& msg, virtual ModbusRTU::mbErrCode query( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusMessage& msg,
ModbusRTU::ModbusMessage& reply, int timeout )=0; ModbusRTU::ModbusMessage& reply, timeout_t timeout )=0;
// ------------------------------------- // -------------------------------------
/*! */ /*! */
...@@ -160,18 +160,18 @@ class ModbusClient ...@@ -160,18 +160,18 @@ class ModbusClient
/*! */ /*! */
virtual ModbusRTU::mbErrCode recv( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusByte qfunc, virtual ModbusRTU::mbErrCode recv( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusByte qfunc,
ModbusRTU::ModbusMessage& rbuf, int timeout ); ModbusRTU::ModbusMessage& rbuf, timeout_t timeout );
virtual ModbusRTU::mbErrCode recv_pdu( ModbusRTU::ModbusByte qfunc, virtual ModbusRTU::mbErrCode recv_pdu( ModbusRTU::ModbusByte qfunc,
ModbusRTU::ModbusMessage& rbuf, int timeout ); ModbusRTU::ModbusMessage& rbuf, timeout_t timeout );
ModbusRTU::ModbusMessage reply; /*!< ɣ */ ModbusRTU::ModbusMessage reply; /*!< ɣ */
ModbusRTU::ModbusMessage qbuf; /*!< */ ModbusRTU::ModbusMessage qbuf; /*!< */
int replyTimeOut_ms; /*!< */ timeout_t replyTimeOut_ms; /*!< */
int aftersend_msec; /*!< */ timeout_t aftersend_msec; /*!< */
bool crcNoCheckit; bool crcNoCheckit;
......
...@@ -43,13 +43,13 @@ class ModbusRTUMaster: ...@@ -43,13 +43,13 @@ class ModbusRTUMaster:
virtual int getNextData( unsigned char* buf, int len ); virtual int getNextData( unsigned char* buf, int len );
/*! set timeout for send/receive data */ /*! set timeout for send/receive data */
virtual void setChannelTimeout( int msec ); virtual void setChannelTimeout( timeout_t msec );
virtual ModbusRTU::mbErrCode sendData( unsigned char* buf, int len ); virtual ModbusRTU::mbErrCode sendData( unsigned char* buf, int len );
/*! - */ /*! - */
virtual ModbusRTU::mbErrCode query( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusMessage& msg, virtual ModbusRTU::mbErrCode query( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusMessage& msg,
ModbusRTU::ModbusMessage& reply, int timeout ); ModbusRTU::ModbusMessage& reply, timeout_t timeout );
std::string dev; /*!< */ std::string dev; /*!< */
......
...@@ -32,13 +32,13 @@ class ModbusRTUSlave: ...@@ -32,13 +32,13 @@ class ModbusRTUSlave:
void setSpeed( const std::string s ); void setSpeed( const std::string s );
ComPort::Speed getSpeed(); ComPort::Speed getSpeed();
virtual ModbusRTU::mbErrCode receive( ModbusRTU::ModbusAddr addr, int msecTimeout ); virtual ModbusRTU::mbErrCode receive( ModbusRTU::ModbusAddr addr, timeout_t msecTimeout );
protected: protected:
// realisation (see ModbusServer.h) // realisation (see ModbusServer.h)
virtual int getNextData( unsigned char* buf, int len ); virtual int getNextData( unsigned char* buf, int len );
virtual void setChannelTimeout( int msec ); virtual void setChannelTimeout( timeout_t msec );
virtual ModbusRTU::mbErrCode sendData( unsigned char* buf, int len ); virtual ModbusRTU::mbErrCode sendData( unsigned char* buf, int len );
std::string dev; /*!< */ std::string dev; /*!< */
......
...@@ -27,21 +27,21 @@ class ModbusServer ...@@ -27,21 +27,21 @@ class ModbusServer
\param msecTimeout - . \param msecTimeout - .
\return ModbusRTU::mbErrCode \return ModbusRTU::mbErrCode
*/ */
virtual ModbusRTU::mbErrCode receive( ModbusRTU::ModbusAddr addr, int msecTimeout )=0; virtual ModbusRTU::mbErrCode receive( ModbusRTU::ModbusAddr addr, timeout_t msecTimeout )=0;
/*! /*!
\return \return
*/ */
int setAfterSendPause( int msec ); timeout_t setAfterSendPause( timeout_t msec );
/*! /*!
\return \return
*/ */
int setReplyTimeout( int msec ); timeout_t setReplyTimeout( timeout_t msec );
/*! */ /*! */
void setRecvTimeout( int msec ); void setRecvTimeout( timeout_t msec );
inline void setCRCNoCheckit( bool set ){ crcNoCheckit = set; } inline void setCRCNoCheckit( bool set ){ crcNoCheckit = set; }
inline bool isCRCNoCheckit(){ return crcNoCheckit; } inline bool isCRCNoCheckit(){ return crcNoCheckit; }
...@@ -182,7 +182,7 @@ class ModbusServer ...@@ -182,7 +182,7 @@ class ModbusServer
/*! set timeout for receive data */ /*! set timeout for receive data */
virtual void setChannelTimeout( int msec )=0; virtual void setChannelTimeout( timeout_t msec )=0;
/*! () */ /*! () */
virtual ModbusRTU::mbErrCode send( ModbusRTU::ModbusMessage& buf ); virtual ModbusRTU::mbErrCode send( ModbusRTU::ModbusMessage& buf );
...@@ -194,13 +194,13 @@ class ModbusServer ...@@ -194,13 +194,13 @@ class ModbusServer
virtual ModbusRTU::mbErrCode processing( ModbusRTU::ModbusMessage& buf ); virtual ModbusRTU::mbErrCode processing( ModbusRTU::ModbusMessage& buf );
/*! */ /*! */
ModbusRTU::mbErrCode recv( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusMessage& buf, int timeout ); ModbusRTU::mbErrCode recv( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusMessage& buf, timeout_t timeout );
ModbusRTU::mbErrCode recv_pdu( ModbusRTU::ModbusMessage& rbuf, int timeout ); ModbusRTU::mbErrCode recv_pdu( ModbusRTU::ModbusMessage& rbuf, timeout_t timeout );
UniSetTypes::uniset_mutex recvMutex; UniSetTypes::uniset_mutex recvMutex;
int recvTimeOut_ms; /*!< ɣ */ timeout_t recvTimeOut_ms; /*!< ɣ */
int replyTimeout_ms; /*!< */ timeout_t replyTimeout_ms; /*!< */
int aftersend_msec; /*!< */ timeout_t aftersend_msec; /*!< */
bool onBroadcast; /*!< broadcst- */ bool onBroadcast; /*!< broadcst- */
bool crcNoCheckit; bool crcNoCheckit;
......
...@@ -28,10 +28,10 @@ class ModbusTCPMaster: ...@@ -28,10 +28,10 @@ class ModbusTCPMaster:
void reconnect(); void reconnect();
virtual int getNextData( unsigned char* buf, int len ); virtual int getNextData( unsigned char* buf, int len );
virtual void setChannelTimeout( int msec ); virtual void setChannelTimeout( timeout_t msec );
virtual ModbusRTU::mbErrCode sendData( unsigned char* buf, int len ); virtual ModbusRTU::mbErrCode sendData( unsigned char* buf, int len );
virtual ModbusRTU::mbErrCode query( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusMessage& msg, virtual ModbusRTU::mbErrCode query( ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusMessage& msg,
ModbusRTU::ModbusMessage& reply, int timeout ); ModbusRTU::ModbusMessage& reply, timeout_t timeout );
private: private:
ost::TCPStream* tcp; ost::TCPStream* tcp;
......
...@@ -23,7 +23,7 @@ class ModbusTCPServer: ...@@ -23,7 +23,7 @@ class ModbusTCPServer:
ModbusTCPServer( ost::InetAddress &ia, int port=502 ); ModbusTCPServer( ost::InetAddress &ia, int port=502 );
virtual ~ModbusTCPServer(); virtual ~ModbusTCPServer();
virtual ModbusRTU::mbErrCode receive( ModbusRTU::ModbusAddr addr, int msecTimeout ); virtual ModbusRTU::mbErrCode receive( ModbusRTU::ModbusAddr addr, timeout_t msecTimeout );
protected: protected:
...@@ -32,7 +32,7 @@ class ModbusTCPServer: ...@@ -32,7 +32,7 @@ class ModbusTCPServer:
// realisation (see ModbusServer.h) // realisation (see ModbusServer.h)
virtual int getNextData( unsigned char* buf, int len ); virtual int getNextData( unsigned char* buf, int len );
virtual void setChannelTimeout( int msec ); virtual void setChannelTimeout( timeout_t msec );
virtual ModbusRTU::mbErrCode sendData( unsigned char* buf, int len ); virtual ModbusRTU::mbErrCode sendData( unsigned char* buf, int len );
virtual ModbusRTU::mbErrCode tcp_processing( ost::TCPStream& tcp, ModbusTCP::MBAPHeader& mhead ); virtual ModbusRTU::mbErrCode tcp_processing( ost::TCPStream& tcp, ModbusTCP::MBAPHeader& mhead );
......
...@@ -25,15 +25,15 @@ ModbusClient::~ModbusClient() ...@@ -25,15 +25,15 @@ ModbusClient::~ModbusClient()
{ {
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
void ModbusClient::setTimeout( int msec ) void ModbusClient::setTimeout( timeout_t msec )
{ {
if( msec != UniSetTimer::WaitUpTime && msec>=0 ) if( msec != UniSetTimer::WaitUpTime )
replyTimeOut_ms = msec; replyTimeOut_ms = msec;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int ModbusClient::setAfterSendPause( int msec ) int ModbusClient::setAfterSendPause( timeout_t msec )
{ {
int old = aftersend_msec; timeout_t old = aftersend_msec;
aftersend_msec = msec; aftersend_msec = msec;
return old; return old;
} }
...@@ -172,7 +172,7 @@ SetDateTimeRetMessage ModbusClient::setDateTime( ModbusAddr addr, ModbusByte hou ...@@ -172,7 +172,7 @@ SetDateTimeRetMessage ModbusClient::setDateTime( ModbusAddr addr, ModbusByte hou
} }
// -------------------------------------------------------------------------------- // --------------------------------------------------------------------------------
void ModbusClient::fileTransfer( ModbusAddr addr, ModbusData numfile, void ModbusClient::fileTransfer( ModbusAddr addr, ModbusData numfile,
const char* save2filename, int part_timeout_msec ) const char* save2filename, timeout_t part_timeout_msec )
throw(ModbusRTU::mbException) throw(ModbusRTU::mbException)
{ {
//#warning //#warning
...@@ -256,9 +256,9 @@ void ModbusClient::fileTransfer( ModbusAddr addr, ModbusData numfile, ...@@ -256,9 +256,9 @@ void ModbusClient::fileTransfer( ModbusAddr addr, ModbusData numfile,
throw mbException(res); throw mbException(res);
} }
// -------------------------------------------------------------------------------- // --------------------------------------------------------------------------------
FileTransferRetMessage ModbusClient::partOfFileTransfer( ModbusAddr addr, FileTransferRetMessage ModbusClient::partOfFileTransfer( ModbusAddr addr,
ModbusData idFile, ModbusData numpack, ModbusData idFile, ModbusData numpack,
int part_timeout_msec ) timeout_t part_timeout_msec )
throw(ModbusRTU::mbException) throw(ModbusRTU::mbException)
{ {
FileTransferMessage msg(addr,idFile,numpack); FileTransferMessage msg(addr,idFile,numpack);
...@@ -272,7 +272,7 @@ FileTransferRetMessage ModbusClient::partOfFileTransfer( ModbusAddr addr, ...@@ -272,7 +272,7 @@ FileTransferRetMessage ModbusClient::partOfFileTransfer( ModbusAddr addr,
} }
// -------------------------------------------------------------------------------- // --------------------------------------------------------------------------------
mbErrCode ModbusClient::recv( ModbusAddr addr, ModbusByte qfunc, mbErrCode ModbusClient::recv( ModbusAddr addr, ModbusByte qfunc,
ModbusMessage& rbuf, int timeout ) ModbusMessage& rbuf, timeout_t timeout )
{ {
if( timeout == UniSetTimer::WaitUpTime ) if( timeout == UniSetTimer::WaitUpTime )
timeout = 15*60*1000*1000; // (15 ). . timeout = 15*60*1000*1000; // (15 ). .
...@@ -329,7 +329,7 @@ mbErrCode ModbusClient::recv( ModbusAddr addr, ModbusByte qfunc, ...@@ -329,7 +329,7 @@ mbErrCode ModbusClient::recv( ModbusAddr addr, ModbusByte qfunc,
} }
// -------------------------------------------------------------------------------- // --------------------------------------------------------------------------------
mbErrCode ModbusClient::recv_pdu( ModbusByte qfunc, ModbusMessage& rbuf, int timeout ) mbErrCode ModbusClient::recv_pdu( ModbusByte qfunc, ModbusMessage& rbuf, timeout_t timeout )
{ {
int bcnt=1; // receive bytes count (1 - addr) int bcnt=1; // receive bytes count (1 - addr)
try try
......
...@@ -98,7 +98,7 @@ int ModbusRTUMaster::getNextData( unsigned char* buf, int len ) ...@@ -98,7 +98,7 @@ int ModbusRTUMaster::getNextData( unsigned char* buf, int len )
return port->receiveBlock(buf, len); return port->receiveBlock(buf, len);
} }
// -------------------------------------------------------------------------------- // --------------------------------------------------------------------------------
void ModbusRTUMaster::setChannelTimeout( int msec ) void ModbusRTUMaster::setChannelTimeout( timeout_t msec )
{ {
if( port ) if( port )
port->setTimeout(msec*1000); port->setTimeout(msec*1000);
...@@ -120,7 +120,7 @@ mbErrCode ModbusRTUMaster::sendData( unsigned char* buf, int len ) ...@@ -120,7 +120,7 @@ mbErrCode ModbusRTUMaster::sendData( unsigned char* buf, int len )
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
mbErrCode ModbusRTUMaster::query( ModbusAddr addr, ModbusMessage& msg, mbErrCode ModbusRTUMaster::query( ModbusAddr addr, ModbusMessage& msg,
ModbusMessage& reply, int timeout ) ModbusMessage& reply, timeout_t timeout )
{ {
mbErrCode res = send(msg); mbErrCode res = send(msg);
if( res!=erNoError ) if( res!=erNoError )
......
...@@ -62,7 +62,7 @@ ModbusRTUSlave::~ModbusRTUSlave() ...@@ -62,7 +62,7 @@ ModbusRTUSlave::~ModbusRTUSlave()
delete port; delete port;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
mbErrCode ModbusRTUSlave::receive( ModbusRTU::ModbusAddr addr, int timeout ) mbErrCode ModbusRTUSlave::receive( ModbusRTU::ModbusAddr addr, timeout_t timeout )
{ {
uniset_mutex_lock lck(recvMutex,timeout); uniset_mutex_lock lck(recvMutex,timeout);
ModbusMessage buf; ModbusMessage buf;
...@@ -127,7 +127,7 @@ int ModbusRTUSlave::getNextData( unsigned char* buf, int len ) ...@@ -127,7 +127,7 @@ int ModbusRTUSlave::getNextData( unsigned char* buf, int len )
return port->receiveBlock(buf, len); return port->receiveBlock(buf, len);
} }
// -------------------------------------------------------------------------------- // --------------------------------------------------------------------------------
void ModbusRTUSlave::setChannelTimeout( int msec ) void ModbusRTUSlave::setChannelTimeout( timeout_t msec )
{ {
if( msec == UniSetTimer::WaitUpTime ) if( msec == UniSetTimer::WaitUpTime )
port->setTimeout(15*60*1000*1000); // (15 ). . port->setTimeout(15*60*1000*1000); // (15 ). .
......
...@@ -28,26 +28,28 @@ ModbusServer::~ModbusServer() ...@@ -28,26 +28,28 @@ ModbusServer::~ModbusServer()
{ {
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
void ModbusServer::setRecvTimeout( int msec ) void ModbusServer::setRecvTimeout( timeout_t msec )
{ {
if( msec != UniSetTimer::WaitUpTime && msec>=0 ) if( msec != UniSetTimer::WaitUpTime )
recvTimeOut_ms = msec; recvTimeOut_ms = msec;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int ModbusServer::setReplyTimeout( int msec ) timeout_t ModbusServer::setReplyTimeout( timeout_t msec )
{ {
if( msec <= 0 ) // #warning "Why msec can be 0?"
assert(msec);
if( msec == UniSetTimer::WaitUpTime )
return replyTimeout_ms; return replyTimeout_ms;
int old = replyTimeout_ms; timeout_t old = replyTimeout_ms; // ,
replyTimeout_ms = msec; replyTimeout_ms = msec;
tmProcessing.setTiming(replyTimeout_ms); tmProcessing.setTiming(replyTimeout_ms);
return old; return old;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
int ModbusServer::setAfterSendPause( int msec ) timeout_t ModbusServer::setAfterSendPause( timeout_t msec )
{ {
int old = aftersend_msec; timeout_t old = aftersend_msec;
aftersend_msec = msec; aftersend_msec = msec;
return old; return old;
} }
...@@ -448,10 +450,11 @@ mbErrCode ModbusServer::processing( ModbusMessage& buf ) ...@@ -448,10 +450,11 @@ mbErrCode ModbusServer::processing( ModbusMessage& buf )
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
mbErrCode ModbusServer::recv( ModbusRTU::ModbusAddr addr, ModbusMessage& rbuf, int timeout ) mbErrCode ModbusServer::recv( ModbusRTU::ModbusAddr addr, ModbusMessage& rbuf, timeout_t timeout )
{ {
if( timeout == UniSetTimer::WaitUpTime || timeout<=0 ) assert(timeout);
timeout = 15*60*1000; // (15 ). . if( timeout == UniSetTimer::WaitUpTime )
timeout = 15*60*1000; // (15 ), .
setChannelTimeout(timeout); setChannelTimeout(timeout);
PassiveTimer tmAbort(timeout); PassiveTimer tmAbort(timeout);
...@@ -505,7 +508,7 @@ mbErrCode ModbusServer::recv( ModbusRTU::ModbusAddr addr, ModbusMessage& rbuf, i ...@@ -505,7 +508,7 @@ mbErrCode ModbusServer::recv( ModbusRTU::ModbusAddr addr, ModbusMessage& rbuf, i
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
mbErrCode ModbusServer::recv_pdu( ModbusMessage& rbuf, int timeout ) mbErrCode ModbusServer::recv_pdu( ModbusMessage& rbuf, timeout_t timeout )
{ {
int bcnt = 1; // 1 - addr int bcnt = 1; // 1 - addr
try try
......
...@@ -31,7 +31,7 @@ int ModbusTCPMaster::getNextData( unsigned char* buf, int len ) ...@@ -31,7 +31,7 @@ int ModbusTCPMaster::getNextData( unsigned char* buf, int len )
return ModbusTCPCore::getNextData(buf,len,qrecv,tcp); return ModbusTCPCore::getNextData(buf,len,qrecv,tcp);
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
void ModbusTCPMaster::setChannelTimeout( int msec ) void ModbusTCPMaster::setChannelTimeout( timeout_t msec )
{ {
if( tcp ) if( tcp )
tcp->setTimeout(msec); tcp->setTimeout(msec);
...@@ -45,7 +45,7 @@ mbErrCode ModbusTCPMaster::sendData( unsigned char* buf, int len ) ...@@ -45,7 +45,7 @@ mbErrCode ModbusTCPMaster::sendData( unsigned char* buf, int len )
int ModbusTCPMaster::nTransaction = 0; int ModbusTCPMaster::nTransaction = 0;
mbErrCode ModbusTCPMaster::query( ModbusAddr addr, ModbusMessage& msg, mbErrCode ModbusTCPMaster::query( ModbusAddr addr, ModbusMessage& msg,
ModbusMessage& reply, int timeout ) ModbusMessage& reply, timeout_t timeout )
{ {
// if( !isConnection() ) // if( !isConnection() )
...@@ -58,13 +58,8 @@ mbErrCode ModbusTCPMaster::query( ModbusAddr addr, ModbusMessage& msg, ...@@ -58,13 +58,8 @@ mbErrCode ModbusTCPMaster::query( ModbusAddr addr, ModbusMessage& msg,
reconnect(); reconnect();
if( timeout<=0 || timeout == UniSetTimer::WaitUpTime ) assert(timeout);
{ ptTimeout.setTiming(timeout);
timeout = TIMEOUT_INF;
ptTimeout.setTiming(UniSetTimer::WaitUpTime);
}
else
ptTimeout.setTiming(timeout);
ost::Thread::setException(ost::Thread::throwException); ost::Thread::setException(ost::Thread::throwException);
...@@ -100,10 +95,10 @@ mbErrCode ModbusTCPMaster::query( ModbusAddr addr, ModbusMessage& msg, ...@@ -100,10 +95,10 @@ mbErrCode ModbusTCPMaster::query( ModbusAddr addr, ModbusMessage& msg,
if( !tcp->isPending(ost::Socket::pendingOutput,timeout) ) if( !tcp->isPending(ost::Socket::pendingOutput,timeout) )
return erTimeOut; return erTimeOut;
if( timeout != TIMEOUT_INF ) if( timeout != UniSetTimer::WaitUpTime )
{ {
timeout -= ptTimeout.getCurrent(); timeout = ptTimeout.getLeft(timeout);
if( timeout <=0 ) if( timeout == 0 )
return erTimeOut; return erTimeOut;
ptTimeout.setTiming(timeout); ptTimeout.setTiming(timeout);
......
...@@ -22,27 +22,27 @@ ModbusTCPServer::~ModbusTCPServer() ...@@ -22,27 +22,27 @@ ModbusTCPServer::~ModbusTCPServer()
{ {
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, int timeout ) mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, timeout_t timeout )
{ {
PassiveTimer ptTimeout(timeout); PassiveTimer ptTimeout(timeout);
ModbusMessage buf; ModbusMessage buf;
mbErrCode res = erTimeOut; mbErrCode res = erTimeOut;
// Thread::setException(Thread::throwException); // Thread::setException(Thread::throwException);
if( timeout<=0 || timeout == UniSetTimer::WaitUpTime ) //#warning "Why timeout can be 0 there?"
timeout = TIMEOUT_INF; assert(timeout);
ptTimeout.reset(); ptTimeout.reset();
try try
{ {
if( isPendingConnection(timeout) ) if( isPendingConnection(timeout) )
{ {
tcp.connect(*this); tcp.connect(*this);
if( timeout != TIMEOUT_INF ) if( timeout != UniSetTimer::WaitUpTime )
{ {
timeout -= ptTimeout.getCurrent(); timeout = ptTimeout.getLeft(timeout);
if( timeout <=0 ) if( timeout == 0 )
{ {
tcp.disconnect(); tcp.disconnect();
return erTimeOut; return erTimeOut;
...@@ -61,22 +61,21 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, int timeout ) ...@@ -61,22 +61,21 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, int timeout )
return res; return res;
} }
if( timeout != TIMEOUT_INF ) if( timeout != UniSetTimer::WaitUpTime )
{ {
timeout -= ptTimeout.getCurrent(); timeout = ptTimeout.getLeft(timeout);
if( timeout <=0 ) if( timeout == 0 )
{ {
tcp.disconnect(); tcp.disconnect();
return erTimeOut; return erTimeOut;
} }
} }
int msec = (timeout != TIMEOUT_INF) ? timeout : UniSetTimer::WaitUpTime;
do do
{ {
// buf.addr = curQueryHeader.uID; // buf.addr = curQueryHeader.uID;
// res = recv_pdu(buf,mec); // res = recv_pdu(buf,mec);
res = recv( addr, buf, msec ); res = recv( addr, buf, timeout );
if( res!=erNoError && res!=erBadReplyNodeAddress ) if( res!=erNoError && res!=erBadReplyNodeAddress )
{ {
...@@ -92,10 +91,10 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, int timeout ) ...@@ -92,10 +91,10 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, int timeout )
return res; return res;
} }
if( timeout != TIMEOUT_INF ) if( timeout != UniSetTimer::WaitUpTime )
{ {
timeout -= ptTimeout.getCurrent(); timeout = ptTimeout.getLeft(timeout);
if( timeout <=0 ) if( timeout == 0 )
{ {
tcp.disconnect(); tcp.disconnect();
return erTimeOut; return erTimeOut;
...@@ -125,7 +124,7 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, int timeout ) ...@@ -125,7 +124,7 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, int timeout )
} }
// -------------------------------------------------------------------------------- // --------------------------------------------------------------------------------
void ModbusTCPServer::setChannelTimeout( int msec ) void ModbusTCPServer::setChannelTimeout( timeout_t msec )
{ {
tcp.setTimeout(msec); tcp.setTimeout(msec);
} }
......
...@@ -67,7 +67,7 @@ void ObjectsManager_LT::callback() ...@@ -67,7 +67,7 @@ void ObjectsManager_LT::callback()
} }
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
void ObjectsManager_LT::askTimer( UniSetTypes::TimerId timerid, long timeMS, short ticks, UniSetTypes::Message::Priority p ) void ObjectsManager_LT::askTimer( UniSetTypes::TimerId timerid, timeout_t timeMS, short ticks, UniSetTypes::Message::Priority p )
{ {
// //
if( lt.askTimer(timerid, timeMS, ticks, p) != UniSetTimer::WaitUpTime ) if( lt.askTimer(timerid, timeMS, ticks, p) != UniSetTimer::WaitUpTime )
......
...@@ -67,7 +67,7 @@ void UniSetObject_LT::callback() ...@@ -67,7 +67,7 @@ void UniSetObject_LT::callback()
} }
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
void UniSetObject_LT::askTimer( UniSetTypes::TimerId timerid, long timeMS, short ticks, UniSetTypes::Message::Priority p ) void UniSetObject_LT::askTimer( UniSetTypes::TimerId timerid, timeout_t timeMS, short ticks, UniSetTypes::Message::Priority p )
{ {
// //
if( lt.askTimer(timerid, timeMS, ticks, p) != UniSetTimer::WaitUpTime ) if( lt.askTimer(timerid, timeMS, ticks, p) != UniSetTimer::WaitUpTime )
......
...@@ -68,7 +68,7 @@ void IONotifyController_LT::callback() ...@@ -68,7 +68,7 @@ void IONotifyController_LT::callback()
} }
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
void IONotifyController_LT::askTimer( UniSetTypes::TimerId timerid, long timeMS, short ticks, UniSetTypes::Message::Priority p ) void IONotifyController_LT::askTimer( UniSetTypes::TimerId timerid, timeout_t timeMS, short ticks, UniSetTypes::Message::Priority p )
{ {
// //
if( lt.askTimer(timerid, timeMS, ticks,p) != UniSetTimer::WaitUpTime ) if( lt.askTimer(timerid, timeMS, ticks,p) != UniSetTimer::WaitUpTime )
......
...@@ -191,11 +191,10 @@ void TimerService::work() ...@@ -191,11 +191,10 @@ void TimerService::work()
bool resort = false; bool resort = false;
terminate = false; terminate = false;
// TimerInfo* ti; // TimerInfo* ti;
int sleepTime(UniSetTimer::MIN_QUANTITY_TIME_MS); //
while(!terminate) while(!terminate)
{ {
sleepTime = UniSetTimer::MIN_QUANTITY_TIME_MS; // timeout_t sleepTime = UniSetTimer::MinQuantityTime; //
{ // lock { // lock
uniset_mutex_lock lock(lstMutex, 5000); uniset_mutex_lock lock(lstMutex, 5000);
resort = false; resort = false;
...@@ -251,9 +250,10 @@ void TimerService::work() ...@@ -251,9 +250,10 @@ void TimerService::work()
} }
else else
{ {
li->curTimeMS -= sleepTime; if( li->curTimeMS < sleepTime)
if( li->curTimeMS < 0)
li->curTimeMS = 0; li->curTimeMS = 0;
else
li->curTimeMS -= sleepTime;
} }
...@@ -270,8 +270,8 @@ void TimerService::work() ...@@ -270,8 +270,8 @@ void TimerService::work()
if( resort ) // if( resort ) //
tlst.sort(); tlst.sort();
if( sleepTime < UniSetTimer::MIN_QUANTITY_TIME_MS ) if( sleepTime < UniSetTimer::MinQuantityTime )
sleepTime=UniSetTimer::MIN_QUANTITY_TIME_MS; sleepTime=UniSetTimer::MinQuantityTime;
} // unlock } // unlock
......
...@@ -89,7 +89,7 @@ void PassiveSysTimer::terminate() ...@@ -89,7 +89,7 @@ void PassiveSysTimer::terminate()
} }
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
int PassiveSysTimer::wait(int timeMS) bool PassiveSysTimer::wait(timeout_t timeMS)
{ {
pid = getpid(); pid = getpid();
......
...@@ -49,7 +49,7 @@ clock_ticks(sysconf(_SC_CLK_TCK)) ...@@ -49,7 +49,7 @@ clock_ticks(sysconf(_SC_CLK_TCK))
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
PassiveTimer::PassiveTimer( int timeMS ): PassiveTimer::PassiveTimer( timeout_t timeMS ):
timeAct(0), timeAct(0),
timeSS(0), timeSS(0),
timeStart(0), timeStart(0),
......
...@@ -63,33 +63,30 @@ void ThrPassiveTimer::terminate() ...@@ -63,33 +63,30 @@ void ThrPassiveTimer::terminate()
} }
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
int ThrPassiveTimer::wait(int timeMS) bool ThrPassiveTimer::wait(timeout_t timeMS)
{ {
terminated = 0; terminated = 0;
{ {
tmutex->lock(); tmutex->lock();
PassiveTimer::setTiming(timeMS); // PassiveTimer- timeMS = PassiveTimer::setTiming(timeMS); // PassiveTimer-
if( timeMS < 0 || timeMS == WaitUpTime ) if( timeMS == WaitUpTime )
{ {
while( !terminated ) // , ... while( !terminated ) // , ...
tcondx->wait(); tcondx->wait();
} }
else else
{ {
if( timeMS < MIN_QUANTITY_TIME_MS )
timeMS = MIN_QUANTITY_TIME_MS;
unsigned long sec, msec; unsigned long sec, msec;
omni_thread::get_time(&sec,&msec, timeMS/1000, (timeMS%1000)*1000000 ); omni_thread::get_time(&sec,&msec, timeMS/1000, (timeMS%1000)*1000000 );
// cout <<"timer: "<< timeMS/1000 << "[] " << (timeMS%1000)*1000000 <<"[]" << endl; // cout <<"timer: "<< timeMS/1000 << "[] " << (timeMS%1000)*1000000 <<"[]" << endl;
tcondx->timedwait(sec, msec); tcondx->timedwait(sec, msec);
} }
tmutex->unlock(); tmutex->unlock();
} }
terminated = 1; terminated = 1;
return 1; return true;
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
...@@ -84,7 +84,7 @@ WaitingPassiveTimer::~WaitingPassiveTimer() ...@@ -84,7 +84,7 @@ WaitingPassiveTimer::~WaitingPassiveTimer()
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
void WaitingPassiveTimer::work() void WaitingPassiveTimer::work()
{ {
int sleepMKS = (int)(MIN_QUANTITY_TIME_MS/1000); timeout_t sleepMKS = MIN_QUANTITY_TIME_MS*1000;
terminated = false; terminated = false;
while( !terminated ) while( !terminated )
{ {
...@@ -119,7 +119,7 @@ void WaitingPassiveTimer::terminate() ...@@ -119,7 +119,7 @@ void WaitingPassiveTimer::terminate()
usleep(1000); usleep(1000);
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
void WaitingPassiveTimer::wait(int timeMS) void WaitingPassiveTimer::wait(timeout_t timeMS)
{ {
if ( !terminated ) if ( !terminated )
terminate(); terminate();
......
...@@ -37,9 +37,7 @@ using namespace UniSetTypes; ...@@ -37,9 +37,7 @@ using namespace UniSetTypes;
LT_Object::LT_Object(): LT_Object::LT_Object():
sleepTime(UniSetTimer::WaitUpTime) sleepTime(UniSetTimer::WaitUpTime)
{ {
tmLast.setTiming(100000);
tmLast.setTiming(UniSetTimer::WaitUpTime); tmLast.setTiming(UniSetTimer::WaitUpTime);
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
...@@ -47,7 +45,7 @@ LT_Object::~LT_Object() ...@@ -47,7 +45,7 @@ LT_Object::~LT_Object()
{ {
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
int LT_Object::checkTimers( UniSetObject* obj ) timeout_t LT_Object::checkTimers( UniSetObject* obj )
{ {
try try
{ {
...@@ -62,13 +60,13 @@ int LT_Object::checkTimers( UniSetObject* obj ) ...@@ -62,13 +60,13 @@ int LT_Object::checkTimers( UniSetObject* obj )
} }
// //
if( tmLast.getCurrent() < UniSetTimer::MIN_QUANTITY_TIME_MS ) if( tmLast.getCurrent() < UniSetTimer::MinQuantityTime )
{ {
// sleepTime // sleepTime
sleepTime -= tmLast.getCurrent(); sleepTime = tmLast.getLeft(sleepTime);
if( sleepTime < UniSetTimer::MIN_QUANTITY_TIME_MS ) if( sleepTime < UniSetTimer::MinQuantityTime )
{ {
sleepTime=UniSetTimer::MIN_QUANTITY_TIME_MS; sleepTime=UniSetTimer::MinQuantityTime;
return sleepTime; return sleepTime;
} }
} }
...@@ -101,10 +99,8 @@ int LT_Object::checkTimers( UniSetObject* obj ) ...@@ -101,10 +99,8 @@ int LT_Object::checkTimers( UniSetObject* obj )
} }
else else
{ {
li->curTimeMS -= tmLast.getCurrent(); li->curTimeMS = tmLast.getLeft(li->curTimeMS);
if( li->curTimeMS < 0 ) }
li->curTimeMS = 0;
}
// //
if( li->curTimeMS < sleepTime || sleepTime == UniSetTimer::WaitUpTime ) if( li->curTimeMS < sleepTime || sleepTime == UniSetTimer::WaitUpTime )
...@@ -114,8 +110,8 @@ int LT_Object::checkTimers( UniSetObject* obj ) ...@@ -114,8 +110,8 @@ int LT_Object::checkTimers( UniSetObject* obj )
if( resort ) // if( resort ) //
tlst.sort(); tlst.sort();
if( sleepTime < UniSetTimer::MIN_QUANTITY_TIME_MS ) if( sleepTime < UniSetTimer::MinQuantityTime )
sleepTime=UniSetTimer::MIN_QUANTITY_TIME_MS; sleepTime=UniSetTimer::MinQuantityTime;
} // unlock } // unlock
tmLast.reset(); tmLast.reset();
...@@ -129,15 +125,15 @@ int LT_Object::checkTimers( UniSetObject* obj ) ...@@ -129,15 +125,15 @@ int LT_Object::checkTimers( UniSetObject* obj )
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
int LT_Object::askTimer( UniSetTypes::TimerId timerid, long timeMS, short ticks, UniSetTypes::Message::Priority p ) timeout_t LT_Object::askTimer( UniSetTypes::TimerId timerid, timeout_t timeMS, clock_t ticks, UniSetTypes::Message::Priority p )
{ {
if( timeMS>0 ) // if( timeMS > 0 ) //
{ {
if( timeMS < UniSetTimer::MIN_QUANTITY_TIME_MS ) if( timeMS < UniSetTimer::MinQuantityTime )
{ {
unideb[Debug::CRIT] << "(LT_askTimer): [] " unideb[Debug::CRIT] << "(LT_askTimer): [] "
<< " ۣ " << UniSetTimer::MIN_QUANTITY_TIME_MS << endl; << " ۣ " << UniSetTimer::MinQuantityTime << endl;
timeMS = UniSetTimer::MIN_QUANTITY_TIME_MS; timeMS = UniSetTimer::MinQuantityTime;
} }
{ // lock { // lock
...@@ -170,7 +166,7 @@ int LT_Object::askTimer( UniSetTypes::TimerId timerid, long timeMS, short ticks, ...@@ -170,7 +166,7 @@ int LT_Object::askTimer( UniSetTypes::TimerId timerid, long timeMS, short ticks,
if( unideb.debugging(Debug::INFO) ) if( unideb.debugging(Debug::INFO) )
unideb[Debug::INFO] << "(LT_askTimer): (id="<< timerid << ") " << timeMS << " []\n"; unideb[Debug::INFO] << "(LT_askTimer): (id="<< timerid << ") " << timeMS << " []\n";
} }
else // else // ( timeMS == 0)
{ {
if( unideb.debugging(Debug::INFO) ) if( unideb.debugging(Debug::INFO) )
unideb[Debug::INFO] << "(LT_askTimer): id="<< timerid << endl; unideb[Debug::INFO] << "(LT_askTimer): id="<< timerid << endl;
...@@ -193,7 +189,7 @@ int LT_Object::askTimer( UniSetTypes::TimerId timerid, long timeMS, short ticks, ...@@ -193,7 +189,7 @@ int LT_Object::askTimer( UniSetTypes::TimerId timerid, long timeMS, short ticks,
if( tlst.empty() ) if( tlst.empty() )
sleepTime = UniSetTimer::WaitUpTime; sleepTime = UniSetTimer::WaitUpTime;
else else
sleepTime = UniSetTimer::MIN_QUANTITY_TIME_MS; sleepTime = UniSetTimer::MinQuantityTime;
} }
return sleepTime; return sleepTime;
......
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