mirror of
https://github.com/Sani7/remote-ui.git
synced 2026-10-27 06:01:14 +01:00
82 lines
3.9 KiB
C++
82 lines
3.9 KiB
C++
#include "can_transceive.h"
|
|
#include "ui_can_transceive.h"
|
|
|
|
Can_Transceive::Can_Transceive(QWidget* parent) : QWidget(parent), ui(new Ui::Can_Transceive) {
|
|
ui->setupUi(this);
|
|
|
|
can_send_hexspinboxes = {
|
|
ui->s_can_send_data0,
|
|
ui->s_can_send_data1,
|
|
ui->s_can_send_data2,
|
|
ui->s_can_send_data3,
|
|
ui->s_can_send_data4,
|
|
ui->s_can_send_data5,
|
|
ui->s_can_send_data6,
|
|
ui->s_can_send_data7,
|
|
};
|
|
|
|
enable_can_send_data();
|
|
connect(ui->c_can_send_dlc, &QComboBox::currentIndexChanged, this, [=, this]{enable_can_send_data();});
|
|
connect(ui->b_can_send_send, &QPushButton::clicked, this, [=, this]{emit send_can_message(ui->s_can_send_sid->value(), ui->c_can_send_dlc->currentIndex(), std::array<uint8_t, 8>({(uint8_t)(can_send_hexspinboxes[0]->value()), (uint8_t)(can_send_hexspinboxes[1]->value()),(uint8_t)(can_send_hexspinboxes[2]->value()),(uint8_t)(can_send_hexspinboxes[3]->value()),(uint8_t)(can_send_hexspinboxes[4]->value()),(uint8_t)(can_send_hexspinboxes[5]->value()),(uint8_t)(can_send_hexspinboxes[6]->value()),(uint8_t)(can_send_hexspinboxes[7]->value())}));});
|
|
connect(ui->b_clear, &QPushButton::clicked, this, [=, this]{emit can_clear();});
|
|
}
|
|
|
|
Can_Transceive::~Can_Transceive() {
|
|
delete ui;
|
|
}
|
|
|
|
void Can_Transceive::enable_can_send_data()
|
|
{
|
|
uint8_t selected = atoi(ui->c_can_send_dlc->currentText().toLocal8Bit());
|
|
for (size_t i = 0; i < can_send_hexspinboxes.size(); i++)
|
|
{
|
|
can_send_hexspinboxes[i]->setEnabled(i < selected);
|
|
if (i >= selected)
|
|
{
|
|
can_send_hexspinboxes[i]->setValue(0);
|
|
}
|
|
}
|
|
}
|
|
|
|
void Can_Transceive::clear()
|
|
{
|
|
ui->recvd_list->setRowCount(0);
|
|
ui->send_list->setRowCount(0);
|
|
}
|
|
|
|
void Can_Transceive::add_send_item(uint32_t id, uint8_t dlc, std::array<uint8_t, 8> payload)
|
|
{
|
|
size_t rc = ui->send_list->rowCount();
|
|
ui->send_list->setRowCount(rc + 1);
|
|
|
|
ui->send_list->setItem(rc, 0, new QTableWidgetItem(QString("%0").arg(id)));
|
|
ui->send_list->setItem(rc, 1, new QTableWidgetItem(QString("%0").arg(dlc)));
|
|
ui->send_list->setItem(rc, 2, new QTableWidgetItem(QString("%0").arg(payload[0])));
|
|
ui->send_list->setItem(rc, 3, new QTableWidgetItem(QString("%0").arg(payload[1])));
|
|
ui->send_list->setItem(rc, 4, new QTableWidgetItem(QString("%0").arg(payload[2])));
|
|
ui->send_list->setItem(rc, 5, new QTableWidgetItem(QString("%0").arg(payload[3])));
|
|
ui->send_list->setItem(rc, 6, new QTableWidgetItem(QString("%0").arg(payload[4])));
|
|
ui->send_list->setItem(rc, 7, new QTableWidgetItem(QString("%0").arg(payload[5])));
|
|
ui->send_list->setItem(rc, 8, new QTableWidgetItem(QString("%0").arg(payload[6])));
|
|
ui->send_list->setItem(rc, 9, new QTableWidgetItem(QString("%0").arg(payload[7])));
|
|
ui->send_list->resizeColumnsToContents();
|
|
}
|
|
|
|
void Can_Transceive::add_receive_item(uint32_t id, uint8_t dlc, std::array<uint8_t, 8> payload)
|
|
{
|
|
size_t rc = ui->recvd_list->rowCount();
|
|
ui->recvd_list->setRowCount(rc + 1);
|
|
|
|
ui->recvd_list->setItem(rc, 0, new QTableWidgetItem(QString("%0").arg(id)));
|
|
ui->recvd_list->setItem(rc, 1, new QTableWidgetItem(QString("%0").arg(dlc)));
|
|
ui->recvd_list->setItem(rc, 2, new QTableWidgetItem(QString("%0").arg(payload[0])));
|
|
ui->recvd_list->setItem(rc, 3, new QTableWidgetItem(QString("%0").arg(payload[1])));
|
|
ui->recvd_list->setItem(rc, 4, new QTableWidgetItem(QString("%0").arg(payload[2])));
|
|
ui->recvd_list->setItem(rc, 5, new QTableWidgetItem(QString("%0").arg(payload[3])));
|
|
ui->recvd_list->setItem(rc, 6, new QTableWidgetItem(QString("%0").arg(payload[4])));
|
|
ui->recvd_list->setItem(rc, 7, new QTableWidgetItem(QString("%0").arg(payload[5])));
|
|
ui->recvd_list->setItem(rc, 8, new QTableWidgetItem(QString("%0").arg(payload[6])));
|
|
ui->recvd_list->setItem(rc, 9, new QTableWidgetItem(QString("%0").arg(payload[7])));
|
|
ui->recvd_list->resizeColumnsToContents();
|
|
}
|