Example #1
0
int ReadNas::compute(const char *)
{
    const char *fileName = p_filename->getValue();

    // Try to open file
    d_file = fopen(fileName, "r");
    if (!d_file)
    {
        sendError("Could not read %s: %s", fileName, strerror(errno));
        return STOP_PIPELINE;
    }
    // Now, this must be an error:
    //     No message, readHeader already cries if problems occur
    if (!d_file)
        return STOP_PIPELINE;


    int result;
    result = readASCII();
    // add filename as an attribute
    coDistributedObject *obj = p_polyOut->getCurrentObject();
    if (obj)
        obj->addAttribute("OBJECTNAME", p_filename->getValue());

    return result;
}
// mt: removed the QCustomEvent. As QThread can emit signals in Qt4
// I've changed it into a signal
void
DMM::readEventSLOT( const QByteArray & data, int id, ReadEvent::DataFormat df )
//DMM::customEvent( QCustomEvent *ev )
{
  //if (QEvent::User == ev->type())
  {
    if (ReaderThread::Ok == m_readerThread->status())
    {
      //ReadEvent *re = (ReadEvent *)ev;
      
      if (m_consoleLogging)
      {
        for (int i=0; i<data.size(); ++i)
        //for (int i=0; i<re->length(); ++i)
        {
          fprintf( stdout, "%02X ", data[i] & 0x0ff );
          //fprintf( stdout, "%02X ", re->string()[i] & 0x0ff );
        }
        fprintf( stdout, "\n" );
      }

      switch (df)
      {
      case ReadEvent::Metex14:
      case ReadEvent::PeakTech10:
      case ReadEvent::Voltcraft14Continuous:
      case ReadEvent::Voltcraft15Continuous:
        readASCII( data, id, df );
        //readASCII( re );
        break;
      case ReadEvent::M9803RContinuous:
        readM9803RContinuous( data, id, df );
        //readM9803RContinuous( re );
        break;
      case ReadEvent::VC820Continuous:
        readVC820Continuous( data, id, df );
        //readVC820Continuous( re );
        break;
      case ReadEvent::IsoTech:
        readIsoTechContinuous( data, id, df );
        //readIsoTechContinuous( re );
        break;
      case ReadEvent::VC940Continuous:
        readVC940Continuous( data, id, df );
        //readVC940Continuous( re );
        break;
      case ReadEvent::QM1537Continuous:
        readQM1537Continuous( data, id, df );
        //readQM1537Continuous( re );
        break;
      case ReadEvent::RS22812Continuous:
        readRS22812Continuous( data, id, df );
        //readRS22812Continuous( re );
        break;
      case ReadEvent::DTM0660Continuous:
        readDTM0660Continuous( data, id, df );
        //readDTM0660Continuous( re );
        break;
      }
    }
    else
    {
      if (ReaderThread::Error == m_readerThread->status())
      {
        m_error = tr( "Read error on device" );
        m_error += " ";
        m_error += m_device;
        m_error += ". ";
        m_error += tr( "DMM connected and switched on?" );
      }
      else if (ReaderThread::Timeout == m_readerThread->status())
      {
        m_error = tr( "Timeout on device" );
        m_error += " ";
        m_error += m_device;
        m_error += ". ";
        m_error += tr( "DMM connected and switched on?" );
      }
      else if (ReaderThread::NotConnected == m_readerThread->status())
      {
        m_error = tr( "Not connected" );
      }
    }
    if (m_oldStatus != m_readerThread->status())
    {
      emit error( m_error );
    }
    m_oldStatus = m_readerThread->status();
  }
}