summaryrefslogtreecommitdiff
authortille <tille>2002-06-26 16:24:42 (UTC)
committer tille <tille>2002-06-26 16:24:42 (UTC)
commite9b05e2b93bf000777ae1c55e7d5cac35a67145d (patch) (side-by-side diff)
tree11848aecc3f8ee23fd71d84cb7b821090bad19dc
parent97e2050f5880cb27d2cd028ed61eef1dc59d1ad1 (diff)
downloadopie-e9b05e2b93bf000777ae1c55e7d5cac35a67145d.zip
opie-e9b05e2b93bf000777ae1c55e7d5cac35a67145d.tar.gz
opie-e9b05e2b93bf000777ae1c55e7d5cac35a67145d.tar.bz2
timer working
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/netsystemtime/ntp.cpp58
-rw-r--r--noncore/settings/netsystemtime/ntp.h4
-rw-r--r--noncore/settings/netsystemtime/ntpbase.ui4
-rw-r--r--noncore/settings/netsystemtime/opie-netsystemtime.control2
-rw-r--r--noncore/settings/netsystemtime/settime.cpp2
5 files changed, 41 insertions, 29 deletions
diff --git a/noncore/settings/netsystemtime/ntp.cpp b/noncore/settings/netsystemtime/ntp.cpp
index 364609d..bcbf7a1 100644
--- a/noncore/settings/netsystemtime/ntp.cpp
+++ b/noncore/settings/netsystemtime/ntp.cpp
@@ -41,13 +41,13 @@ Ntp::Ntp( QWidget* parent, const char* name, WFlags fl )
// _minLookupDiff = cfg.readNumEntry("minLookupDiff",10);
SpinBoxMinLookupDelay->setValue( cfg.readNumEntry("minLookupDiff",41) );
SpinBoxNtpDelay->setValue( cfg.readNumEntry("ntpRefreshFreq",42) );
ComboNtpSrv->setCurrentItem( cfg.readNumEntry("ntpServer", 0) );
ntpTimer = new QTimer(this);
- ntpTimer->start(SpinBoxNtpDelay->value()*100);
+ ntpTimer->start(SpinBoxNtpDelay->value()*1000*60);
ntpProcess = new OProcess( );
connect( SpinBoxNtpDelay, SIGNAL( valueChanged(int) ),
SLOT(slotNtpDelayChanged(int)) );
ntpSock = new QSocket( this );
@@ -82,51 +82,60 @@ Ntp::~Ntp()
cfg.setGroup("settings");
cfg.writeEntry("ntpServer", ComboNtpSrv->currentItem());
cfg.writeEntry( "minLookupDiff", SpinBoxMinLookupDelay->value() );
cfg.writeEntry( "ntpRefreshFreq", SpinBoxNtpDelay->value() );
}
-
-void Ntp::slotRunNtp()
+bool Ntp::ntpDelayElapsed()
{
Config cfg("ntp",Config::User);
cfg.setGroup("lookups");
- int lookupDiff = TimeConversion::toUTC(QDateTime::currentDateTime()) - cfg.readNumEntry("time",0);
+ _lookupDiff = TimeConversion::toUTC(QDateTime::currentDateTime()) - cfg.readNumEntry("time",0);
+ return (_lookupDiff - (SpinBoxNtpDelay->value()*60)) > -60;
+}
- if ( lookupDiff < SpinBoxNtpDelay->value()*60 )
+QString Ntp::getNtpServer()
+{
+ return ComboNtpSrv->currentText();
+}
+
+void Ntp::slotRunNtp()
+{
+ if ( !ntpDelayElapsed() )
{
switch (
- QMessageBox::warning(this, tr("Run ntp?"),
+ QMessageBox::warning(this, tr("Run NTP?"),
tr("You asked for a delay of ")+SpinBoxNtpDelay->text()+tr(" minutes, but only ")+
- QString::number(lookupDiff%60)+tr(" minutes elapsed since last loopup.")+
- "<br>"+tr("Rerun ntp?"),
+ QString::number(_lookupDiff/60)+tr(" minutes elapsed since last loopup.")+
+ "<br>"+tr("Rerun NTP?"),
QMessageBox::Ok,QMessageBox::Cancel)
) {
case QMessageBox::Ok: break;
case QMessageBox::Cancel: return;
default: return;
}
}
TextLabelStartTime->setText(QDateTime::currentDateTime().toString());
- MultiLineEditntpOutPut->append( "\n"+tr("Running:")+"\nntpdate "+ ComboNtpSrv->currentText()+"\n");
+ ntpOutPut( tr("Running:")+"\nntpdate "+getNtpServer() );
ntpProcess->clearArguments();
- *ntpProcess << "ntpdate" << ComboNtpSrv->currentText();
+ *ntpProcess << "ntpdate" << getNtpServer();
bool ret = ntpProcess->start(OProcess::NotifyOnExit,OProcess::AllOutput);
if ( !ret ) {
- qDebug("Error while executing ntp");
+ qDebug("Error while executing ntpdate");
+ ntpOutPut( tr("Error while executing ntpdate"));
}
}
void Ntp::getNtpOutput(OProcess *proc, char *buffer, int buflen)
{
QString lineStr, lineStrOld;
lineStr = buffer;
lineStr=lineStr.left(buflen);
if (lineStr!=lineStrOld)
{
- MultiLineEditntpOutPut->append(lineStr);
+ ntpOutPut(lineStr);
_ntpOutput += lineStr;
}
lineStrOld = lineStr;
}
void Ntp::ntpFinished(OProcess*)
@@ -148,13 +157,12 @@ void Ntp::ntpFinished(OProcess*)
if ( lastLookup > 0 && secsSinceLast > 60* SpinBoxMinLookupDelay->value())
{
lookupCount++;
cfg.writeEntry("count",lookupCount);
cfg.setGroup("lookup_"+QString::number(lookupCount));
_shiftPerSec = timeShift / secsSinceLast;
-// float nextCorr = _maxOffset / _shiftPerSec;
qDebug("secs since last lookup %i", secsSinceLast);qDebug("timeshift since last lookup %f", timeShift);qDebug("timeshift since per sec %f", _shiftPerSec);
cfg.writeEntry("secsSinceLast",secsSinceLast);
cfg.writeEntry("timeShift",QString::number(timeShift));
}
}
@@ -209,13 +217,12 @@ void Ntp::readLookups()
_shiftPerSec /= lookupCount+1;
TextLabelShift->setText(QString::number(_shiftPerSec)+tr(" seconds"));
}
void Ntp::preditctTime()
{
- qDebug("current time: %s",QDateTime::currentDateTime().toString().latin1());
Config cfg("ntp",Config::User);
cfg.setGroup("lookups");
int lastTime = cfg.readNumEntry("time",0);
setenv( "TZ", tz->currentZone(), 1 );
int now = TimeConversion::toUTC( QDateTime::currentDateTime() );
int corr = int((now - lastTime) * _shiftPerSec);
@@ -235,38 +242,41 @@ void Ntp::slotCheckNtp(int i)
{
if (i == 0)
{
TextLabelMainPredTime->hide();
ButtonSetTime->setText( tr("Get time from network") );
connect( ButtonSetTime, SIGNAL(clicked()), SLOT(slotRunNtp()) );
- Config cfg("ntp",Config::User);
- cfg.setGroup("lookups");
- int lookupDiff = TimeConversion::toUTC(QDateTime::currentDateTime()) - cfg.readNumEntry("time",0);
- if ( lookupDiff > SpinBoxNtpDelay->value()*60 )
+ if ( ntpDelayElapsed() )
{
+ slotRunNtp();
disconnect(ntpTimer, SIGNAL( timeout() ), this, SLOT(slotProbeNtpServer()) );
connect(ntpTimer, SIGNAL( timeout() ), SLOT(slotRunNtp()) );
}else{
disconnect(ntpTimer, SIGNAL( timeout() ), this, SLOT(slotRunNtp()) );
connect(ntpTimer, SIGNAL( timeout() ), SLOT(slotProbeNtpServer()) );
}
}else{
preditctTime();
ButtonSetTime->setText( tr("Set predicted time") );
+ if (i>0)ntpOutPut(tr("Could not connect to server ")+getNtpServer());
connect( ButtonSetTime, SIGNAL(clicked()), SLOT(setPredictTime()) );
connect( ntpTimer, SIGNAL( timeout() ), SLOT(slotProbeNtpServer()) );
}
+// ntpTimer->start(SpinBoxNtpDelay->value()*1000*60);
}
void Ntp::slotProbeNtpServer()
{
- Config cfg("ntp",Config::User);
- cfg.setGroup("lookups");
- int lookupDiff = TimeConversion::toUTC(QDateTime::currentDateTime()) - cfg.readNumEntry("time",0);
- if ( lookupDiff > SpinBoxNtpDelay->value()*60 )
- ntpSock->connectToHost( ComboNtpSrv->currentText() ,123);
+ if ( ntpDelayElapsed() )
+ ntpSock->connectToHost( getNtpServer() ,123);
}
void Ntp::slotNtpDelayChanged(int delay)
{
- ntpTimer->changeInterval( delay*100 );
+ ntpTimer->changeInterval( delay*1000*60 );
+}
+
+void Ntp::ntpOutPut(QString out)
+{
+ MultiLineEditntpOutPut->append(out);
+ MultiLineEditntpOutPut->setCursorPosition(MultiLineEditntpOutPut->numLines() + 1,0,FALSE);
}
diff --git a/noncore/settings/netsystemtime/ntp.h b/noncore/settings/netsystemtime/ntp.h
index 7cc309f..c78dc55 100644
--- a/noncore/settings/netsystemtime/ntp.h
+++ b/noncore/settings/netsystemtime/ntp.h
@@ -20,18 +20,22 @@ protected:
QDateTime predictedTime;
private:
QString _ntpOutput;
float _shiftPerSec;
+ int _lookupDiff;
OProcess *ntpProcess;
QTimer *ntpTimer;
QSocket *ntpSock;
float getTimeShift();
void readLookups();
+ void ntpOutPut(QString);
+ bool ntpDelayElapsed();
+ QString getNtpServer();
private slots:
void slotRunNtp();
void getNtpOutput(OProcess *proc, char *buffer, int buflen);
void ntpFinished(OProcess*);
void preditctTime();
void slotCheckNtp(int);
diff --git a/noncore/settings/netsystemtime/ntpbase.ui b/noncore/settings/netsystemtime/ntpbase.ui
index 4e10fd2..a83dc93 100644
--- a/noncore/settings/netsystemtime/ntpbase.ui
+++ b/noncore/settings/netsystemtime/ntpbase.ui
@@ -8,14 +8,14 @@
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>0</x>
<y>0</y>
- <width>331</width>
- <height>426</height>
+ <width>328</width>
+ <height>411</height>
</rect>
</property>
<property stdset="1">
<name>caption</name>
<string>Network Time</string>
</property>
diff --git a/noncore/settings/netsystemtime/opie-netsystemtime.control b/noncore/settings/netsystemtime/opie-netsystemtime.control
index 406d7b0..d3290e9 100644
--- a/noncore/settings/netsystemtime/opie-netsystemtime.control
+++ b/noncore/settings/netsystemtime/opie-netsystemtime.control
@@ -1,7 +1,7 @@
-Files: bin/netsystemtime apps/Settings/ntpdatetime.desktop
+Files: bin/netsystemtime apps/Settings/ntpdatetime.desktop etc/ntpservers
Priority: optional
Section: opie/settings
Depends: ntpdate
Conflicts: opie-systemtime
Maintainer: Patrick S. Vogt <tille@handhelds.org>
Architecture: arm
diff --git a/noncore/settings/netsystemtime/settime.cpp b/noncore/settings/netsystemtime/settime.cpp
index 2398c08..93543cd 100644
--- a/noncore/settings/netsystemtime/settime.cpp
+++ b/noncore/settings/netsystemtime/settime.cpp
@@ -297,13 +297,12 @@ void SetDateTime::updateSystem(int i)
DateBookDB db;
}
void SetDateTime::tzChange( const QString &tz )
{
- qDebug("SetDateTime::tzChange");
// set the TZ get the time and leave gracefully...
QString strSave;
strSave = getenv( "TZ" );
setenv( "TZ", tz, 1 );
QDate d = QDate::currentDate();
@@ -453,13 +452,12 @@ void SetTime::checkedPM( int c )
hour = show_hour;
}
void SetTime::slotTzChange( const QString &tz )
{
- qDebug("SetTime::slotTzChange");
// set the TZ get the time and leave gracefully...
QString strSave;
strSave = getenv( "TZ" );
setenv( "TZ", tz, 1 );
QTime t = QTime::currentTime();