| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #include "assictscalet2000.h"
- #include <QList>
- #include "globalinfo.h"
- #include <QLog/qlog.h>
- AssicTScaleT2000::AssicTScaleT2000()
- {
- }
- AssicTScaleT2000::~AssicTScaleT2000()
- {
- }
- bool AssicTScaleT2000::needSend()
- {
- return false;
- }
- QByteArray AssicTScaleT2000::sendData()
- {
- return QByteArray();
- }
- void AssicTScaleT2000::handle(QByteArray &data)
- {
- int newstart = 0;
- int scan = m_inbuffer.size();
- m_inbuffer.append(data);
- while (newstart < m_inbuffer.size()) {
- int start = newstart;
- int end = m_inbuffer.indexOf('\n', scan);
- if (end < 0) {
- m_inbuffer.remove(0, start);
- return;
- }
- newstart = end + 1;
- scan = newstart;
- if (end == start)
- continue;
- if (m_inbuffer.at(end - 1) == '\r') {
- --end;
- if (end == start)
- continue;
- }
- QByteArray line(m_inbuffer.constData() + start, end - start);
- readData(line);
- }
- m_inbuffer.clear();
- }
- void AssicTScaleT2000::readData(QByteArray & data)
- {
- QList<QByteArray> list = data.split(',');
- auto buff = list.last();
- // QDInfo << data ;
- // Token is a sequence of numbers.
- QByteArray dt;
- for (int i = 0; i < buff.size(); ++i){
- auto ch = buff.at(i);
- if (ch == '.' || ch == '-' || (ch >= '0' && ch <= '9'))
- dt.append(ch);
- }
- if (!dt.isEmpty()) {
- double token = dt.toDouble();
- scaledata _scaledata;
- _scaledata.gross_widget = token;
- GlobalInfo::this_()->SetScaleData(_scaledata);
- }
- }
|