#include "ivchart_impl.h" namespace iv { ivchart_impl::ivchart_impl() { mmsg = QDBusMessage::createSignal("/catarc/adc", "adciv.interface", "ivchart"); mmsg<<1; } ivchart_impl::~ivchart_impl() { requestInterruption(); int i; for(i=0;i<100;i++) { if(isFinished()) break; msleep(1); } } void ivchart_impl::chartvalue(std::string varname, const double fvalue, const double fvalue_RangeMin, const double fvalue_RangeMax) { iv::ivchart::ivchartunit xivchartunit; xivchartunit.set_strvarname(varname); xivchartunit.set_timex(QDateTime::currentMSecsSinceEpoch()); xivchartunit.set_fvalue(fvalue); xivchartunit.set_fvalue_rangemin(fvalue_RangeMin); xivchartunit.set_fvalue_rangemax(fvalue_RangeMax); if(mvectorchart.xivchartunit_size() > 10000) { qDebug("ivchart_impl::chartvalue ivchartunit is big value is %d ",mvectorchart.xivchartunit_size()); return; } mMutexVector.lock(); iv::ivchart::ivchartunit * p = mvectorchart.add_xivchartunit(); p->CopyFrom(xivchartunit); mMutexVector.unlock(); } int ivchart_impl::writechart(iv::ivchart::ivchartarray *pxvectorchart) { char * str; int ndatasize = pxvectorchart->ByteSize(); str = new char[ndatasize]; std::shared_ptr pstr; pstr.reset(str); if(!pxvectorchart->SerializeToArray(str,ndatasize)) { qDebug("ivchart_impl::writechart SerializeToArray error."); return -1; } QByteArray ba; ba.append(str,ndatasize); QList x; x<0) { writechart(&xvectorchart); } } } }