369 lines
16 KiB
C++
369 lines
16 KiB
C++
#include "landinggear.h"
|
|
#include "ui_landinggear.h"
|
|
|
|
landinggear::landinggear(QWidget *parent)
|
|
: ToolsWidget(parent)
|
|
, ui(new Ui::landinggear)
|
|
{
|
|
ui->setupUi(this);
|
|
|
|
//load qss
|
|
QFile file(":/qss/LandingGear.qss");
|
|
file.open(QFile::ReadOnly);
|
|
QTextStream filetext(&file);
|
|
QString stylesheet = filetext.readAll();
|
|
this->setStyleSheet(stylesheet);
|
|
file.close();
|
|
|
|
|
|
|
|
setColor(ui->checkBox,state::success);
|
|
setColor(ui->checkBox_2,state::success);
|
|
setColor(ui->checkBox_3,state::success);
|
|
setColor(ui->checkBox_4,state::success);
|
|
setColor(ui->checkBox_5,state::success);
|
|
setColor(ui->checkBox_6,state::success);
|
|
setColor(ui->checkBox_7,state::success);
|
|
setColor(ui->checkBox_8,state::success);
|
|
|
|
setColor(ui->checkBox_9,state::success);
|
|
setColor(ui->checkBox_10,state::success);
|
|
setColor(ui->checkBox_11,state::success);
|
|
setColor(ui->checkBox_12,state::success);
|
|
setColor(ui->checkBox_13,state::success);
|
|
setColor(ui->checkBox_14,state::success);
|
|
setColor(ui->checkBox_15,state::success);
|
|
setColor(ui->checkBox_16,state::success);
|
|
|
|
setColor(ui->checkBox_17,state::success);
|
|
setColor(ui->checkBox_18,state::success);
|
|
setColor(ui->checkBox_19,state::success);
|
|
setColor(ui->checkBox_20,state::success);
|
|
setColor(ui->checkBox_21,state::success);
|
|
setColor(ui->checkBox_22,state::success);
|
|
setColor(ui->checkBox_23,state::success);
|
|
setColor(ui->checkBox_24,state::success);
|
|
|
|
|
|
setColor(ui->checkBox_DO_CH_1,state::success);
|
|
setColor(ui->checkBox_DO_CH_2,state::success);
|
|
setColor(ui->checkBox_DO_CH_3,state::success);
|
|
setColor(ui->checkBox_DO_CH_4,state::success);
|
|
setColor(ui->checkBox_DO_CH_5,state::success);
|
|
setColor(ui->checkBox_DO_CH_6,state::success);
|
|
setColor(ui->checkBox_DO_CH_7,state::success);
|
|
setColor(ui->checkBox_DO_CH_8,state::success);
|
|
|
|
setColor(ui->checkBox_DO_CH_9,state::success);
|
|
setColor(ui->checkBox_DO_CH_10,state::success);
|
|
setColor(ui->checkBox_DO_CH_11,state::success);
|
|
setColor(ui->checkBox_DO_CH_12,state::success);
|
|
setColor(ui->checkBox_DO_CH_13,state::success);
|
|
setColor(ui->checkBox_DO_CH_14,state::success);
|
|
setColor(ui->checkBox_DO_CH_15,state::success);
|
|
setColor(ui->checkBox_DO_CH_16,state::success);
|
|
|
|
setColor(ui->checkBox_DO_CH_17,state::success);
|
|
setColor(ui->checkBox_DO_CH_18,state::success);
|
|
setColor(ui->checkBox_DO_CH_19,state::success);
|
|
setColor(ui->checkBox_DO_CH_20,state::success);
|
|
setColor(ui->checkBox_DO_CH_21,state::success);
|
|
setColor(ui->checkBox_DO_CH_22,state::success);
|
|
setColor(ui->checkBox_DO_CH_23,state::success);
|
|
setColor(ui->checkBox_DO_CH_24,state::success);
|
|
|
|
setColor(ui->checkBox_DO_CH_25,state::success);
|
|
setColor(ui->checkBox_DO_CH_26,state::success);
|
|
setColor(ui->checkBox_DO_CH_27,state::success);
|
|
setColor(ui->checkBox_DO_CH_28,state::success);
|
|
setColor(ui->checkBox_DO_CH_29,state::success);
|
|
setColor(ui->checkBox_DO_CH_30,state::success);
|
|
setColor(ui->checkBox_DO_CH_31,state::success);
|
|
setColor(ui->checkBox_DO_CH_32,state::success);
|
|
|
|
|
|
|
|
connect(ui->checkBox_DO_CH_1,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_2,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_3,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_4,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_5,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_6,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_7,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_8,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
|
|
connect(ui->checkBox_DO_CH_9,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_10,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_11,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_12,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_13,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_14,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_15,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_16,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
|
|
connect(ui->checkBox_DO_CH_17,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_18,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_19,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_20,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_21,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_22,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_23,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_24,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
|
|
connect(ui->checkBox_DO_CH_25,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_26,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_27,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_28,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_29,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_30,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_31,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
connect(ui->checkBox_DO_CH_32,&QCheckBox::toggled,this,&landinggear::setDO);
|
|
|
|
|
|
timer = new QTimer(this);
|
|
timer->setInterval(20);//100Hz
|
|
|
|
/*
|
|
connect(timer,&QTimer::timeout,
|
|
this,&landinggear::timerOut);
|
|
*/
|
|
|
|
|
|
|
|
}
|
|
|
|
landinggear::~landinggear()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void landinggear::timerOut(void)
|
|
{
|
|
uint8_t byte[4] = {0};
|
|
|
|
uint8_t sendByte = 0;
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_1->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_2->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_3->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_4->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_5->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_6->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_7->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_8->isChecked()?(0x01):(0x00);
|
|
|
|
sendByte++;
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_9->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_10->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_11->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_12->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_13->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_14->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_15->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_16->isChecked()?(0x01):(0x00);
|
|
|
|
sendByte++;
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_17->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_18->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_19->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_20->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_21->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_22->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_23->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_24->isChecked()?(0x01):(0x00);
|
|
|
|
sendByte++;
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_25->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_26->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_27->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_28->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_29->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_30->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_31->isChecked()?(0x01):(0x00);
|
|
byte[sendByte] <<= 1; byte[sendByte] |= ui->checkBox_DO_CH_32->isChecked()?(0x01):(0x00);
|
|
|
|
|
|
|
|
sendByte++;
|
|
emit SendMessageTo(2,byte,sendByte);
|
|
|
|
uint16_t pwm[4] = {0};
|
|
uint8_t pwmByte[8] = {0};
|
|
|
|
pwm[0] = ui->horizontalSlider_pwm1->value();
|
|
pwm[1] = ui->horizontalSlider_pwm2->value();
|
|
pwm[2] = ui->horizontalSlider_pwm3->value();
|
|
pwm[3] = ui->horizontalSlider_pwm4->value();
|
|
|
|
pwmByte[0] = pwm[0];
|
|
pwmByte[1] = pwm[0] >> 8;
|
|
pwmByte[2] = pwm[1];
|
|
pwmByte[3] = pwm[1] >> 8;
|
|
pwmByte[4] = pwm[2];
|
|
pwmByte[5] = pwm[2] >> 8;
|
|
pwmByte[6] = pwm[3];
|
|
pwmByte[7] = pwm[3] >> 8;
|
|
|
|
emit SendMessageTo(3,pwmByte,8);
|
|
}
|
|
|
|
void landinggear::recieveData(const int &id, const QByteArray &data)
|
|
{
|
|
//return;
|
|
|
|
if(id == 0)
|
|
{
|
|
Parse *parse = new Parse;
|
|
|
|
connect(this,&landinggear::parseData,
|
|
parse,&Parse::parseData);
|
|
|
|
connect(parse,&Parse::gear_Info,
|
|
this,&landinggear::gear_Info);
|
|
|
|
connect(parse,&Parse::actuator_info,
|
|
this,&landinggear::actuator_info);
|
|
|
|
connect(parse,&Parse::actuator1_info,
|
|
this,&landinggear::actuator1_info);
|
|
|
|
connect(parse,&Parse::actuator2_info,
|
|
this,&landinggear::actuator2_info);
|
|
|
|
|
|
QThreadPool::globalInstance()->start(parse);
|
|
emit parseData(id,data);
|
|
}
|
|
/*
|
|
else if(id == 1)
|
|
{
|
|
Parse *parse = new Parse;
|
|
|
|
connect(this,&landinggear::parseData,
|
|
parse,&Parse::parseData);
|
|
|
|
connect(parse,&Parse::actuator_info,
|
|
this,&landinggear::actuator_info);
|
|
|
|
connect(parse,&Parse::actuator1_info,
|
|
this,&landinggear::actuator1_info);
|
|
|
|
connect(parse,&Parse::actuator2_info,
|
|
this,&landinggear::actuator2_info);
|
|
|
|
QThreadPool::globalInstance()->start(parse);
|
|
emit parseData(id,data);
|
|
}*/
|
|
}
|
|
|
|
void landinggear::gear_Info(Parse::_gear info)
|
|
{
|
|
setColor(ui->checkBox, (info.SW[0])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_2,(info.SW[2])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_3,(info.SW[3])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_4,(info.SW[4])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_5,(info.SW[5])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_6,(info.SW[6])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_7,(info.SW[7])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_8,(info.SW[8])?(state::failure):(state::success));
|
|
|
|
setColor(ui->checkBox_9, (info.SW[9])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_10,(info.SW[10])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_11,(info.SW[11])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_12,(info.SW[12])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_13,(info.SW[13])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_14,(info.SW[14])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_15,(info.SW[15])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_16,(info.SW[16])?(state::failure):(state::success));
|
|
|
|
setColor(ui->checkBox_17,(info.SW[17])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_18,(info.SW[18])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_19,(info.SW[19])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_20,(info.SW[20])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_21,(info.SW[21])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_22,(info.SW[22])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_23,(info.SW[23])?(state::failure):(state::success));
|
|
setColor(ui->checkBox_24,(info.SW[24])?(state::failure):(state::success));
|
|
|
|
ui->lineEdit_p1->setText(QString::number(info.LeftPressure,'f',3));
|
|
ui->lineEdit_p2->setText(QString::number(info.RightPressure,'f',3));
|
|
ui->lineEdit_p3->setText(QString::number(info.AirPressure,'f',3));
|
|
ui->lineEdit_rpm1->setText(QString::number(info.LeftWheel,'f',0));
|
|
ui->lineEdit_rpm2->setText(QString::number(info.RightPressure,'f',0));
|
|
ui->lineEdit_rpm3->setText(QString::number(info.rpm3,'f',0));
|
|
ui->lineEdit_rpm4->setText(QString::number(info.rpm4,'f',0));
|
|
ui->lineEdit_rpm5->setText(QString::number(info.fuel,'f',0));
|
|
|
|
ui->label_cpuload->setText(QString::number(info.cpu_load) + "us");
|
|
}
|
|
|
|
|
|
void landinggear::setDO(void)
|
|
{
|
|
QObject *obj = sender();
|
|
if(obj)
|
|
{
|
|
QCheckBox *ckb = qobject_cast<QCheckBox *>(obj);
|
|
if(ckb)
|
|
{
|
|
setColor(ckb, (ckb->isChecked())?(state::failure):(state::success));
|
|
}
|
|
}
|
|
}
|
|
|
|
void landinggear::actuator_info(Parse::_actuator info)
|
|
{
|
|
ui->label_0_type->setText(QString::number(info.type,16).toUpper());
|
|
ui->label_0_id->setText(QString::number(info.id,16).toUpper());
|
|
ui->label_0_wheel->setText(QString::number(info.wheel));
|
|
ui->label_0_trans_left->setText(QString::number(info.left_trans));
|
|
ui->label_0_trans_right->setText(QString::number(info.right_trans));
|
|
ui->label_0_status->setText(QString::number(info.status));
|
|
ui->label_0_current->setText(QString::number(info.current,'f',1));
|
|
ui->label_0_temp->setText(QString::number(info.temp));
|
|
|
|
}
|
|
|
|
void landinggear::actuator1_info(Parse::_actuator1 info)
|
|
{
|
|
ui->label_1_type->setText(QString::number(info.type,16).toUpper());
|
|
ui->label_1_id->setText(QString::number(info.id,16).toUpper());
|
|
ui->label_1_ail_left->setText(QString::number(info.left_ail));
|
|
ui->label_1_ail_right->setText(QString::number(info.right_ail));
|
|
ui->label_1_rud_left->setText(QString::number(info.left_rud));
|
|
ui->label_1_rud_right->setText(QString::number(info.right_rud));
|
|
ui->label_1_status->setText(QString::number(info.status));
|
|
ui->label_1_current->setText(QString::number(info.current,'f',1));
|
|
ui->label_1_temp->setText(QString::number(info.temp));
|
|
}
|
|
|
|
void landinggear::actuator2_info(Parse::_actuator2 info)
|
|
{
|
|
ui->label_2_type->setText(QString::number(info.type,16).toUpper());
|
|
ui->label_2_id->setText(QString::number(info.id,16).toUpper());
|
|
ui->label_2_ele_left->setText(QString::number(info.left_ele));
|
|
ui->label_2_ele_right->setText(QString::number(info.right_ele));
|
|
ui->label_2_brake_left->setText(QString::number(info.left_brake));
|
|
ui->label_2_brake_right->setText(QString::number(info.right_brake));
|
|
ui->label_2_status->setText(QString::number(info.status));
|
|
ui->label_2_current->setText(QString::number(info.current,'f',1));
|
|
ui->label_2_temp->setText(QString::number(info.temp));
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|