#include "CounterWindow.h" #include "ui_CounterWindow.h" #include <iostream> #include <QTimer> #include <QDateTime> CounterWindow::CounterWindow(QWidget *parent) : QWidget(parent), ui(new Ui::CounterWindow) { ui->setupUi(this); QString portNames = SettingConfig::getInstance().PORT_NAMES; int baudRate = SettingConfig::getInstance().BAUD_RATE; QString devCodes = SettingConfig::getInstance().DEV_CODES; QStringList comDevList = portNames.split(","); QStringList devCodeList = devCodes.split(","); for (int i = 0; i < comDevList.size(); i++) { CounterDevice * device = new CounterDevice(this); // // connect(device, &CounterDevice::sendDataToDraw, // this, &CounterWindow::drawPhaseDataOnPage); device->setComName(comDevList.at(i)); device->setBaudRate(baudRate); device->setDevCode(devCodeList.at(i)); // this->deviceList.append(device); device->initSerialPort(); // device->startWork(); } timer = new QTimer(this); timer->start(1000 * 10); } CounterWindow::~CounterWindow() { delete ui; } void CounterWindow::on_pushButton_clicked() { connect(timer, &QTimer::timeout, this, &CounterWindow::mockOneFrame); } void CounterWindow::mockOneFrame() { qlonglong deviceId = 9101; QKafkaUtil * kafkaUtil = new QKafkaUtil(this); kafkaUtil->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); kafkaUtil->setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); kafkaUtil->createProducer(); QDateTime now = QDateTime::currentDateTime(); QString frameId = QString("%1").arg(now.toSecsSinceEpoch() % 10000); qlonglong ts = now.toMSecsSinceEpoch(); for (int i = 0; i < 16; i++) { CounterDataDto channelDataDto; channelDataDto.devCode = deviceId; channelDataDto.frameId = frameId; channelDataDto.channelData = qrand() % 400; channelDataDto.channelRefId = 0; channelDataDto.channelId = i; channelDataDto.milisecond = ts; channelDataDto.timestamp = now.toString("yyyyMMddHHmmssZZZ"); QJsonObject dtoJson = channelDataDto.toJSON(); dtoJson.insert("clientId", SettingConfig::getInstance().CLIENT_ID); dtoJson.insert("deviceId", deviceId); std::cout << QString(QJsonDocument(dtoJson).toJson(QJsonDocument::Compact)).toStdString() << std::endl; kafkaUtil->produceMessage(QString(QJsonDocument(dtoJson).toJson(QJsonDocument::Compact))); } } void CounterWindow::on_pushButton_2_clicked() { disconnect(timer, &QTimer::timeout, this, &CounterWindow::mockOneFrame); }