void LogSensor::answerReceived( int id, const QList<QByteArray>& answer ) //virtual { QFile mLogFile( mFileName ); if ( !mLogFile.open( QIODevice::ReadWrite | QIODevice::Append ) ) { stopLogging(); return; } switch ( id ) { case 42: { QTextStream stream( &mLogFile ); double value = 0; if ( !answer.isEmpty() ) value = answer[ 0 ].toDouble(); if ( mLowerLimitActive && value < mLowerLimit ) { timerOff(); mLimitReached = true; // send notification KNotification::event( "sensor_alarm", QString( "sensor '%1' at '%2' reached lower limit" ) .arg( mSensorName ).arg( mHostName), QPixmap(), 0 ); timerOn(); } else if ( mUpperLimitActive && value > mUpperLimit ) { timerOff(); mLimitReached = true; // send notification KNotification::event( "sensor_alarm", QString( "sensor '%1' at '%2' reached upper limit" ) .arg( mSensorName).arg( mHostName), QPixmap(), 0 ); timerOn(); } else { mLimitReached = false; } const QDate date = QDateTime::currentDateTime().date(); const QTime time = QDateTime::currentDateTime().time(); stream << QString( "%1 %2 %3 %4 %5: %6\n" ).arg( date.shortMonthName( date.month() ) ) .arg( date.day() ).arg( time.toString() ) .arg( mHostName).arg( mSensorName ).arg( value ); } } emit changed(); mLogFile.close(); }