键相和转速添加下降沿和上升沿

This commit is contained in:
zhangsheng 2026-03-07 16:13:55 +08:00
parent 37ac87a797
commit 3609ab9047
6 changed files with 403 additions and 227 deletions

View File

@ -486,6 +486,7 @@ int ConfigMgr::Save(QString & file_path) {
channel_item.insert("keyphase_points",ptr->variables_[cid].keyphase_points); channel_item.insert("keyphase_points",ptr->variables_[cid].keyphase_points);
channel_item.insert("speed_delay",ptr->variables_[cid].speed_delay); channel_item.insert("speed_delay",ptr->variables_[cid].speed_delay);
channel_item.insert("zero_speed",ptr->variables_[cid].zero_speed); channel_item.insert("zero_speed",ptr->variables_[cid].zero_speed);
channel_item.insert("fail",ptr->variables_[cid].fail);
QJsonObject alarm; QJsonObject alarm;
alarm["danger_high_level"] = ptr->danger_high[cid].level; alarm["danger_high_level"] = ptr->danger_high[cid].level;
alarm["danger_high_hysteresis"] = ptr->danger_high[cid].hysteresis; alarm["danger_high_hysteresis"] = ptr->danger_high[cid].hysteresis;
@ -517,6 +518,7 @@ int ConfigMgr::Save(QString & file_path) {
channel_item.insert("point_name",ptr->variables_[cid].point_name); channel_item.insert("point_name",ptr->variables_[cid].point_name);
channel_item.insert("keyphase_points",ptr->variables_[cid].keyphase_points); channel_item.insert("keyphase_points",ptr->variables_[cid].keyphase_points);
channel_item.insert("speed_delay",ptr->variables_[cid].speed_delay); channel_item.insert("speed_delay",ptr->variables_[cid].speed_delay);
channel_item.insert("fail",ptr->variables_[cid].fail);
} }
slot_item[QString::number(cid + 1)] = channel_item; slot_item[QString::number(cid + 1)] = channel_item;
@ -1038,6 +1040,7 @@ void ConfigMgr::Load(QString filename) {
speed_data->variables_[j].keyphase_points = channel["keyphase_points"].toInt(); speed_data->variables_[j].keyphase_points = channel["keyphase_points"].toInt();
speed_data->variables_[j].speed_delay = channel["speed_delay"].toInt(); speed_data->variables_[j].speed_delay = channel["speed_delay"].toInt();
speed_data->variables_[j].zero_speed = channel["zero_speed"].toInt(); speed_data->variables_[j].zero_speed = channel["zero_speed"].toInt();
speed_data->variables_[j].fail = channel["fail"].toBool();
if(channel.contains("alarm")){ if(channel.contains("alarm")){
QJsonObject alarm = channel["alarm"].toObject(); QJsonObject alarm = channel["alarm"].toObject();
speed_data->danger_high[j].level = alarm["danger_high_level"].toDouble(); speed_data->danger_high[j].level = alarm["danger_high_level"].toDouble();
@ -1075,6 +1078,7 @@ void ConfigMgr::Load(QString filename) {
keyphase_data->variables_[j].point_name = channel["point_name"].toString(); keyphase_data->variables_[j].point_name = channel["point_name"].toString();
keyphase_data->variables_[j].keyphase_points = channel["keyphase_points"].toInt(); keyphase_data->variables_[j].keyphase_points = channel["keyphase_points"].toInt();
keyphase_data->variables_[j].speed_delay = channel["speed_delay"].toInt(); keyphase_data->variables_[j].speed_delay = channel["speed_delay"].toInt();
keyphase_data->variables_[j].fail = channel["fail"].toBool();
} }
cards_.push_back(keyphase_data); cards_.push_back(keyphase_data);

View File

@ -463,6 +463,7 @@ typedef struct {
bool alert_latching; bool alert_latching;
bool overspeed_latching; bool overspeed_latching;
bool normal_latching; bool normal_latching;
bool fail;
} TachometerVariables; } TachometerVariables;
typedef struct { typedef struct {
@ -476,6 +477,7 @@ typedef struct {
int events_per_revolution; int events_per_revolution;
int keyphase_points; int keyphase_points;
int speed_delay; int speed_delay;
bool fail;
} KeyphaseVariables; } KeyphaseVariables;
typedef struct { typedef struct {

View File

@ -92,6 +92,11 @@ void KeyPhase::UpdateData(std::shared_ptr<KeyphaseData> &keyphase_data) {
keyphase_data->variables_[i].events_per_revolution = ui->spinBox_events_per_revolution_1->value(); keyphase_data->variables_[i].events_per_revolution = ui->spinBox_events_per_revolution_1->value();
keyphase_data->variables_[i].keyphase_points = ui->spinBox_points->value(); keyphase_data->variables_[i].keyphase_points = ui->spinBox_points->value();
keyphase_data->variables_[i].speed_delay = ui->spinBox_delay->value(); keyphase_data->variables_[i].speed_delay = ui->spinBox_delay->value();
if(ui->radioButton_falling_edge->isChecked()){
keyphase_data->variables_[i].fail = true;
}else if(ui->radioButton_rising_edge->isChecked()){
keyphase_data->variables_[i].fail = false;
}
} else if (i + 1 == 2) { } else if (i + 1 == 2) {
keyphase_data->variables_[i].active = ui->checkBox_enable_2->isChecked(); keyphase_data->variables_[i].active = ui->checkBox_enable_2->isChecked();
keyphase_data->variables_[i].normal_voltage_high = ui->doubleSpinBox_high_2->value(); keyphase_data->variables_[i].normal_voltage_high = ui->doubleSpinBox_high_2->value();
@ -102,6 +107,11 @@ void KeyPhase::UpdateData(std::shared_ptr<KeyphaseData> &keyphase_data) {
keyphase_data->variables_[i].events_per_revolution = ui->spinBox_events_per_revolution_2->value(); keyphase_data->variables_[i].events_per_revolution = ui->spinBox_events_per_revolution_2->value();
keyphase_data->variables_[i].keyphase_points = ui->spinBox_points_2->value(); keyphase_data->variables_[i].keyphase_points = ui->spinBox_points_2->value();
keyphase_data->variables_[i].speed_delay = ui->spinBox_delay_2->value(); keyphase_data->variables_[i].speed_delay = ui->spinBox_delay_2->value();
if(ui->radioButton_falling_edge_2->isChecked()){
keyphase_data->variables_[i].fail = true;
}else if(ui->radioButton_rising_edge_2->isChecked()){
keyphase_data->variables_[i].fail = false;
}
} else if (i + 1 == 3) { } else if (i + 1 == 3) {
keyphase_data->variables_[i].active = ui->checkBox_enable_3->isChecked(); keyphase_data->variables_[i].active = ui->checkBox_enable_3->isChecked();
keyphase_data->variables_[i].normal_voltage_high = ui->doubleSpinBox_high_3->value(); keyphase_data->variables_[i].normal_voltage_high = ui->doubleSpinBox_high_3->value();
@ -112,6 +122,11 @@ void KeyPhase::UpdateData(std::shared_ptr<KeyphaseData> &keyphase_data) {
keyphase_data->variables_[i].events_per_revolution = ui->spinBox_events_per_revolution_3->value(); keyphase_data->variables_[i].events_per_revolution = ui->spinBox_events_per_revolution_3->value();
keyphase_data->variables_[i].keyphase_points = ui->spinBox_points_3->value(); keyphase_data->variables_[i].keyphase_points = ui->spinBox_points_3->value();
keyphase_data->variables_[i].speed_delay = ui->spinBox_delay_3->value(); keyphase_data->variables_[i].speed_delay = ui->spinBox_delay_3->value();
if(ui->radioButton_falling_edge_3->isChecked()){
keyphase_data->variables_[i].fail = true;
}else if(ui->radioButton_rising_edge_3->isChecked()){
keyphase_data->variables_[i].fail = false;
}
} else if (i + 1 == 4) { } else if (i + 1 == 4) {
keyphase_data->variables_[i].active = ui->checkBox_enable_4->isChecked(); keyphase_data->variables_[i].active = ui->checkBox_enable_4->isChecked();
keyphase_data->variables_[i].normal_voltage_high = ui->doubleSpinBox_high_4->value(); keyphase_data->variables_[i].normal_voltage_high = ui->doubleSpinBox_high_4->value();
@ -122,6 +137,11 @@ void KeyPhase::UpdateData(std::shared_ptr<KeyphaseData> &keyphase_data) {
keyphase_data->variables_[i].events_per_revolution = ui->spinBox_events_per_revolution_4->value(); keyphase_data->variables_[i].events_per_revolution = ui->spinBox_events_per_revolution_4->value();
keyphase_data->variables_[i].keyphase_points = ui->spinBox_points_4->value(); keyphase_data->variables_[i].keyphase_points = ui->spinBox_points_4->value();
keyphase_data->variables_[i].speed_delay = ui->spinBox_delay_4->value(); keyphase_data->variables_[i].speed_delay = ui->spinBox_delay_4->value();
if(ui->radioButton_falling_edge_3->isChecked()){
keyphase_data->variables_[i].fail = true;
}else if(ui->radioButton_rising_edge_3->isChecked()){
keyphase_data->variables_[i].fail = false;
}
} }
} }
} }
@ -157,6 +177,10 @@ void KeyPhase::Init() {
ui->doubleSpinBox_threshold_1->setValue(keyphase_data->variables_[i].threshold); ui->doubleSpinBox_threshold_1->setValue(keyphase_data->variables_[i].threshold);
ui->doubleSpinBox_hysteresis_1->setValue(keyphase_data->variables_[i].hysteresis); ui->doubleSpinBox_hysteresis_1->setValue(keyphase_data->variables_[i].hysteresis);
ui->spinBox_events_per_revolution_1->setValue(keyphase_data->variables_[i].events_per_revolution); ui->spinBox_events_per_revolution_1->setValue(keyphase_data->variables_[i].events_per_revolution);
if(keyphase_data->variables_[i].fail)
ui->radioButton_falling_edge->setCheckable(true);
else
ui->radioButton_rising_edge->setCheckable(true);
} else if (i + 1 == 2) { } else if (i + 1 == 2) {
ui->checkBox_enable_2->setChecked(keyphase_data->variables_[i].active); ui->checkBox_enable_2->setChecked(keyphase_data->variables_[i].active);
ui->doubleSpinBox_high_2->setValue(keyphase_data->variables_[i].normal_voltage_high); ui->doubleSpinBox_high_2->setValue(keyphase_data->variables_[i].normal_voltage_high);
@ -175,6 +199,10 @@ void KeyPhase::Init() {
ui->doubleSpinBox_threshold_2->setValue(keyphase_data->variables_[i].threshold); ui->doubleSpinBox_threshold_2->setValue(keyphase_data->variables_[i].threshold);
ui->doubleSpinBox_hysteresis_2->setValue(keyphase_data->variables_[i].hysteresis); ui->doubleSpinBox_hysteresis_2->setValue(keyphase_data->variables_[i].hysteresis);
ui->spinBox_events_per_revolution_2->setValue(keyphase_data->variables_[i].events_per_revolution); ui->spinBox_events_per_revolution_2->setValue(keyphase_data->variables_[i].events_per_revolution);
if(keyphase_data->variables_[i].fail)
ui->radioButton_falling_edge_2->setCheckable(true);
else
ui->radioButton_rising_edge_2->setCheckable(true);
} else if (i + 1 == 3) { } else if (i + 1 == 3) {
ui->checkBox_enable_3->setChecked(keyphase_data->variables_[i].active); ui->checkBox_enable_3->setChecked(keyphase_data->variables_[i].active);
ui->doubleSpinBox_high_3->setValue(keyphase_data->variables_[i].normal_voltage_high); ui->doubleSpinBox_high_3->setValue(keyphase_data->variables_[i].normal_voltage_high);
@ -193,6 +221,10 @@ void KeyPhase::Init() {
ui->doubleSpinBox_threshold_3->setValue(keyphase_data->variables_[i].threshold); ui->doubleSpinBox_threshold_3->setValue(keyphase_data->variables_[i].threshold);
ui->doubleSpinBox_hysteresis_3->setValue(keyphase_data->variables_[i].hysteresis); ui->doubleSpinBox_hysteresis_3->setValue(keyphase_data->variables_[i].hysteresis);
ui->spinBox_events_per_revolution_3->setValue(keyphase_data->variables_[i].events_per_revolution); ui->spinBox_events_per_revolution_3->setValue(keyphase_data->variables_[i].events_per_revolution);
if(keyphase_data->variables_[i].fail)
ui->radioButton_falling_edge_3->setCheckable(true);
else
ui->radioButton_rising_edge_3->setCheckable(true);
} else if (i + 1 == 4) { } else if (i + 1 == 4) {
ui->checkBox_enable_4->setChecked(keyphase_data->variables_[i].active); ui->checkBox_enable_4->setChecked(keyphase_data->variables_[i].active);
ui->doubleSpinBox_high_4->setValue(keyphase_data->variables_[i].normal_voltage_high); ui->doubleSpinBox_high_4->setValue(keyphase_data->variables_[i].normal_voltage_high);
@ -211,6 +243,10 @@ void KeyPhase::Init() {
ui->doubleSpinBox_threshold_4->setValue(keyphase_data->variables_[i].threshold); ui->doubleSpinBox_threshold_4->setValue(keyphase_data->variables_[i].threshold);
ui->doubleSpinBox_hysteresis_4->setValue(keyphase_data->variables_[i].hysteresis); ui->doubleSpinBox_hysteresis_4->setValue(keyphase_data->variables_[i].hysteresis);
ui->spinBox_events_per_revolution_4->setValue(keyphase_data->variables_[i].events_per_revolution); ui->spinBox_events_per_revolution_4->setValue(keyphase_data->variables_[i].events_per_revolution);
if(keyphase_data->variables_[i].fail)
ui->radioButton_falling_edge_4->setCheckable(true);
else
ui->radioButton_rising_edge_4->setCheckable(true);
} }
} }
ui->comboBox_relative_number->setCurrentIndex(base_ptr->relative_number); ui->comboBox_relative_number->setCurrentIndex(base_ptr->relative_number);

View File

@ -245,7 +245,7 @@
<attribute name="title"> <attribute name="title">
<string>通道 1</string> <string>通道 1</string>
</attribute> </attribute>
<layout class="QVBoxLayout" name="verticalLayout_4"> <layout class="QVBoxLayout" name="verticalLayout_14">
<item> <item>
<widget class="QCheckBox" name="checkBox_enable_1"> <widget class="QCheckBox" name="checkBox_enable_1">
<property name="text"> <property name="text">
@ -619,18 +619,21 @@
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_8"> <layout class="QVBoxLayout" name="verticalLayout_4">
<item> <item>
<widget class="QPushButton" name="pushButton"> <widget class="QRadioButton" name="radioButton_falling_edge">
<property name="text"> <property name="text">
<string>===&gt;</string> <string> 下降沿</string>
</property>
<property name="checked">
<bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="label_11"> <widget class="QRadioButton" name="radioButton_rising_edge">
<property name="text"> <property name="text">
<string>通道 2</string> <string> 上升沿</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -655,7 +658,7 @@
<attribute name="title"> <attribute name="title">
<string>通道 2</string> <string>通道 2</string>
</attribute> </attribute>
<layout class="QVBoxLayout" name="verticalLayout_12"> <layout class="QVBoxLayout" name="verticalLayout_20">
<item> <item>
<widget class="QCheckBox" name="checkBox_enable_2"> <widget class="QCheckBox" name="checkBox_enable_2">
<property name="text"> <property name="text">
@ -1029,18 +1032,21 @@
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_15"> <layout class="QVBoxLayout" name="verticalLayout_12">
<item> <item>
<widget class="QLabel" name="label_12"> <widget class="QRadioButton" name="radioButton_falling_edge_2">
<property name="text"> <property name="text">
<string>通道 1</string> <string> 下降沿</string>
</property>
<property name="checked">
<bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QPushButton" name="pushButton_4"> <widget class="QRadioButton" name="radioButton_rising_edge_2">
<property name="text"> <property name="text">
<string>&lt;===</string> <string> 上升沿</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -1071,39 +1077,6 @@
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>220</y>
<width>95</width>
<height>87</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_14">
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string>===&gt;</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_39">
<property name="text">
<string> ===</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_3">
<property name="text">
<string>&lt;===</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget> </widget>
</item> </item>
<item> <item>
@ -1115,7 +1088,7 @@
<attribute name="title"> <attribute name="title">
<string>通道 3</string> <string>通道 3</string>
</attribute> </attribute>
<layout class="QVBoxLayout" name="verticalLayout_11"> <layout class="QVBoxLayout" name="verticalLayout_21">
<item> <item>
<widget class="QCheckBox" name="checkBox_enable_3"> <widget class="QCheckBox" name="checkBox_enable_3">
<property name="text"> <property name="text">
@ -1489,18 +1462,21 @@
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_22"> <layout class="QVBoxLayout" name="verticalLayout_11">
<item> <item>
<widget class="QPushButton" name="pushButton_5"> <widget class="QRadioButton" name="radioButton_falling_edge_3">
<property name="text"> <property name="text">
<string>===&gt;</string> <string> 下降沿</string>
</property>
<property name="checked">
<bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="label_13"> <widget class="QRadioButton" name="radioButton_rising_edge_3">
<property name="text"> <property name="text">
<string>通道 4</string> <string> 上升沿</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -1525,7 +1501,7 @@
<attribute name="title"> <attribute name="title">
<string>通道 4</string> <string>通道 4</string>
</attribute> </attribute>
<layout class="QVBoxLayout" name="verticalLayout_13"> <layout class="QVBoxLayout" name="verticalLayout_22">
<item> <item>
<widget class="QCheckBox" name="checkBox_enable_4"> <widget class="QCheckBox" name="checkBox_enable_4">
<property name="text"> <property name="text">
@ -1899,18 +1875,21 @@
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_29"> <layout class="QVBoxLayout" name="verticalLayout_13">
<item> <item>
<widget class="QLabel" name="label_14"> <widget class="QRadioButton" name="radioButton_falling_edge_4">
<property name="text"> <property name="text">
<string>通道 3</string> <string> 下降沿</string>
</property>
<property name="checked">
<bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QPushButton" name="pushButton_6"> <widget class="QRadioButton" name="radioButton_rising_edge_4">
<property name="text"> <property name="text">
<string>&lt;===</string> <string> 上升沿</string>
</property> </property>
</widget> </widget>
</item> </item>

View File

@ -97,6 +97,12 @@ void Tachometer::UpdateData(std::shared_ptr<TachometerData> &speed_data) {
speed_data->variables_[i].events_per_revolution = ui->spinBox_events_per_revolution_1->value(); speed_data->variables_[i].events_per_revolution = ui->spinBox_events_per_revolution_1->value();
speed_data->variables_[i].record_output = ui->comboBox_record_output_1->currentIndex(); speed_data->variables_[i].record_output = ui->comboBox_record_output_1->currentIndex();
speed_data->variables_[i].two_ma_clamp = ui->checkBox_two_ma_clamp_1->isChecked(); speed_data->variables_[i].two_ma_clamp = ui->checkBox_two_ma_clamp_1->isChecked();
if(ui->radioButton_falling_edge->isChecked()){
speed_data->variables_[i].fail = true;
}else if(ui->radioButton_rising_edge->isChecked()){
speed_data->variables_[i].fail = false;
}
// -alarm // -alarm
speed_data->danger_high[i].level = ui->lineEdit_danger_high_level->text().toDouble(); speed_data->danger_high[i].level = ui->lineEdit_danger_high_level->text().toDouble();
speed_data->danger_high[i].hysteresis = ui->lineEdit_danger_high_hysteresis->text().toDouble(); speed_data->danger_high[i].hysteresis = ui->lineEdit_danger_high_hysteresis->text().toDouble();
@ -137,7 +143,11 @@ void Tachometer::UpdateData(std::shared_ptr<TachometerData> &speed_data) {
speed_data->variables_[i].events_per_revolution = ui->spinBox_events_per_revolution_2->value(); speed_data->variables_[i].events_per_revolution = ui->spinBox_events_per_revolution_2->value();
speed_data->variables_[i].record_output = ui->comboBox_record_output_2->currentIndex(); speed_data->variables_[i].record_output = ui->comboBox_record_output_2->currentIndex();
speed_data->variables_[i].two_ma_clamp = ui->checkBox_two_ma_clamp_2->isChecked(); speed_data->variables_[i].two_ma_clamp = ui->checkBox_two_ma_clamp_2->isChecked();
if(ui->radioButton_falling_edge_2->isChecked()){
speed_data->variables_[i].fail = true;
}else if(ui->radioButton_rising_edge_2->isChecked()){
speed_data->variables_[i].fail = false;
}
// -alarm // -alarm
speed_data->danger_high[i].level = ui->lineEdit_danger_high_level_2->text().toDouble(); speed_data->danger_high[i].level = ui->lineEdit_danger_high_level_2->text().toDouble();
speed_data->danger_high[i].hysteresis = ui->lineEdit_danger_high_hysteresis_2->text().toDouble(); speed_data->danger_high[i].hysteresis = ui->lineEdit_danger_high_hysteresis_2->text().toDouble();
@ -178,7 +188,11 @@ void Tachometer::UpdateData(std::shared_ptr<TachometerData> &speed_data) {
speed_data->variables_[i].events_per_revolution = ui->spinBox_events_per_revolution_3->value(); speed_data->variables_[i].events_per_revolution = ui->spinBox_events_per_revolution_3->value();
speed_data->variables_[i].record_output = ui->comboBox_record_output_3->currentIndex(); speed_data->variables_[i].record_output = ui->comboBox_record_output_3->currentIndex();
speed_data->variables_[i].two_ma_clamp = ui->checkBox_two_ma_clamp_3->isChecked(); speed_data->variables_[i].two_ma_clamp = ui->checkBox_two_ma_clamp_3->isChecked();
if(ui->radioButton_falling_edge_3->isChecked()){
speed_data->variables_[i].fail = true;
}else if(ui->radioButton_rising_edge_3->isChecked()){
speed_data->variables_[i].fail = false;
}
// -alarm // -alarm
speed_data->danger_high[i].level = ui->lineEdit_danger_high_level_3->text().toDouble(); speed_data->danger_high[i].level = ui->lineEdit_danger_high_level_3->text().toDouble();
speed_data->danger_high[i].hysteresis = ui->lineEdit_danger_high_hysteresis_3->text().toDouble(); speed_data->danger_high[i].hysteresis = ui->lineEdit_danger_high_hysteresis_3->text().toDouble();
@ -219,7 +233,11 @@ void Tachometer::UpdateData(std::shared_ptr<TachometerData> &speed_data) {
speed_data->variables_[i].events_per_revolution = ui->spinBox_events_per_revolution_4->value(); speed_data->variables_[i].events_per_revolution = ui->spinBox_events_per_revolution_4->value();
speed_data->variables_[i].record_output = ui->comboBox_record_output_4->currentIndex(); speed_data->variables_[i].record_output = ui->comboBox_record_output_4->currentIndex();
speed_data->variables_[i].two_ma_clamp = ui->checkBox_two_ma_clamp_4->isChecked(); speed_data->variables_[i].two_ma_clamp = ui->checkBox_two_ma_clamp_4->isChecked();
if(ui->radioButton_falling_edge_3->isChecked()){
speed_data->variables_[i].fail = true;
}else if(ui->radioButton_rising_edge_3->isChecked()){
speed_data->variables_[i].fail = false;
}
// -alarm // -alarm
speed_data->danger_high[i].level = ui->lineEdit_danger_high_level_4->text().toDouble(); speed_data->danger_high[i].level = ui->lineEdit_danger_high_level_4->text().toDouble();
speed_data->danger_high[i].hysteresis = ui->lineEdit_danger_high_hysteresis_4->text().toDouble(); speed_data->danger_high[i].hysteresis = ui->lineEdit_danger_high_hysteresis_4->text().toDouble();
@ -281,7 +299,10 @@ void Tachometer::Init() {
ui->spinBox_events_per_revolution_1->setValue(speed_data->variables_[i].events_per_revolution); ui->spinBox_events_per_revolution_1->setValue(speed_data->variables_[i].events_per_revolution);
ui->comboBox_record_output_1->setCurrentIndex(speed_data->variables_[i].record_output); ui->comboBox_record_output_1->setCurrentIndex(speed_data->variables_[i].record_output);
ui->checkBox_two_ma_clamp_1->setChecked(speed_data->variables_[i].two_ma_clamp); ui->checkBox_two_ma_clamp_1->setChecked(speed_data->variables_[i].two_ma_clamp);
if(speed_data->variables_[i].fail)
ui->radioButton_falling_edge->setCheckable(true);
else
ui->radioButton_rising_edge->setCheckable(true);
// -alarm // -alarm
ui->lineEdit_danger_high_level->setText(QString::number(speed_data->danger_high[i].level)); ui->lineEdit_danger_high_level->setText(QString::number(speed_data->danger_high[i].level));
ui->lineEdit_danger_high_hysteresis->setText(QString::number(speed_data->danger_high[i].hysteresis)); ui->lineEdit_danger_high_hysteresis->setText(QString::number(speed_data->danger_high[i].hysteresis));
@ -329,7 +350,10 @@ void Tachometer::Init() {
ui->spinBox_events_per_revolution_2->setValue(speed_data->variables_[i].events_per_revolution); ui->spinBox_events_per_revolution_2->setValue(speed_data->variables_[i].events_per_revolution);
ui->comboBox_record_output_2->setCurrentIndex(speed_data->variables_[i].record_output); ui->comboBox_record_output_2->setCurrentIndex(speed_data->variables_[i].record_output);
ui->checkBox_two_ma_clamp_2->setChecked(speed_data->variables_[i].two_ma_clamp); ui->checkBox_two_ma_clamp_2->setChecked(speed_data->variables_[i].two_ma_clamp);
if(speed_data->variables_[i].fail)
ui->radioButton_falling_edge_2->setCheckable(true);
else
ui->radioButton_rising_edge_2->setCheckable(true);
// -alarm // -alarm
ui->lineEdit_danger_high_level_2->setText(QString::number(speed_data->danger_high[i].level)); ui->lineEdit_danger_high_level_2->setText(QString::number(speed_data->danger_high[i].level));
ui->lineEdit_danger_high_hysteresis_2->setText(QString::number(speed_data->danger_high[i].hysteresis)); ui->lineEdit_danger_high_hysteresis_2->setText(QString::number(speed_data->danger_high[i].hysteresis));
@ -377,7 +401,10 @@ void Tachometer::Init() {
ui->spinBox_events_per_revolution_3->setValue(speed_data->variables_[i].events_per_revolution); ui->spinBox_events_per_revolution_3->setValue(speed_data->variables_[i].events_per_revolution);
ui->comboBox_record_output_3->setCurrentIndex(speed_data->variables_[i].record_output); ui->comboBox_record_output_3->setCurrentIndex(speed_data->variables_[i].record_output);
ui->checkBox_two_ma_clamp_3->setChecked(speed_data->variables_[i].two_ma_clamp); ui->checkBox_two_ma_clamp_3->setChecked(speed_data->variables_[i].two_ma_clamp);
if(speed_data->variables_[i].fail)
ui->radioButton_falling_edge_3->setCheckable(true);
else
ui->radioButton_rising_edge_3->setCheckable(true);
// -alarm // -alarm
ui->lineEdit_danger_high_level_3->setText(QString::number(speed_data->danger_high[i].level)); ui->lineEdit_danger_high_level_3->setText(QString::number(speed_data->danger_high[i].level));
ui->lineEdit_danger_high_hysteresis_3->setText(QString::number(speed_data->danger_high[i].hysteresis)); ui->lineEdit_danger_high_hysteresis_3->setText(QString::number(speed_data->danger_high[i].hysteresis));
@ -425,7 +452,10 @@ void Tachometer::Init() {
ui->spinBox_events_per_revolution_4->setValue(speed_data->variables_[i].events_per_revolution); ui->spinBox_events_per_revolution_4->setValue(speed_data->variables_[i].events_per_revolution);
ui->comboBox_record_output_4->setCurrentIndex(speed_data->variables_[i].record_output); ui->comboBox_record_output_4->setCurrentIndex(speed_data->variables_[i].record_output);
ui->checkBox_two_ma_clamp_4->setChecked(speed_data->variables_[i].two_ma_clamp); ui->checkBox_two_ma_clamp_4->setChecked(speed_data->variables_[i].two_ma_clamp);
if(speed_data->variables_[i].fail)
ui->radioButton_falling_edge_4->setCheckable(true);
else
ui->radioButton_rising_edge_4->setCheckable(true);
// -alarm // -alarm
ui->lineEdit_danger_high_level_4->setText(QString::number(speed_data->danger_high[i].level)); ui->lineEdit_danger_high_level_4->setText(QString::number(speed_data->danger_high[i].level));
ui->lineEdit_danger_high_hysteresis_4->setText(QString::number(speed_data->danger_high[i].hysteresis)); ui->lineEdit_danger_high_hysteresis_4->setText(QString::number(speed_data->danger_high[i].hysteresis));

View File

@ -254,7 +254,7 @@
<attribute name="title"> <attribute name="title">
<string>通道 1</string> <string>通道 1</string>
</attribute> </attribute>
<layout class="QVBoxLayout" name="verticalLayout_17"> <layout class="QVBoxLayout" name="verticalLayout_42">
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_15"> <layout class="QHBoxLayout" name="horizontalLayout_15">
<item> <item>
@ -611,7 +611,7 @@
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_11"> <layout class="QHBoxLayout" name="horizontalLayout_12">
<item> <item>
<widget class="QGroupBox" name="groupBox_10"> <widget class="QGroupBox" name="groupBox_10">
<property name="title"> <property name="title">
@ -860,7 +860,9 @@
</widget> </widget>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_12"> <layout class="QVBoxLayout" name="verticalLayout_17">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_11">
<item> <item>
<widget class="QLabel" name="label_28"> <widget class="QLabel" name="label_28">
<property name="minimumSize"> <property name="minimumSize">
@ -869,6 +871,12 @@
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<property name="text"> <property name="text">
<string>键齿数:</string> <string>键齿数:</string>
</property> </property>
@ -882,6 +890,12 @@
<height>25</height> <height>25</height>
</size> </size>
</property> </property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<property name="minimum"> <property name="minimum">
<number>1</number> <number>1</number>
</property> </property>
@ -898,6 +912,12 @@
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<property name="text"> <property name="text">
<string>1 - 10000</string> <string>1 - 10000</string>
</property> </property>
@ -905,6 +925,35 @@
</item> </item>
</layout> </layout>
</item> </item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QRadioButton" name="radioButton_falling_edge">
<property name="text">
<string> 下降沿</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup_2</string>
</attribute>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButton_rising_edge">
<property name="text">
<string> 上升沿</string>
</property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup_2</string>
</attribute>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout> </layout>
</item> </item>
<item> <item>
@ -1516,7 +1565,7 @@
<attribute name="title"> <attribute name="title">
<string>通道 2</string> <string>通道 2</string>
</attribute> </attribute>
<layout class="QVBoxLayout" name="verticalLayout_9"> <layout class="QVBoxLayout" name="verticalLayout_48">
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_27"> <layout class="QHBoxLayout" name="horizontalLayout_27">
<item> <item>
@ -2112,6 +2161,8 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_43">
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_24"> <layout class="QHBoxLayout" name="horizontalLayout_24">
<item> <item>
@ -2158,6 +2209,29 @@
</item> </item>
</layout> </layout>
</item> </item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_9">
<item>
<widget class="QRadioButton" name="radioButton_falling_edge_2">
<property name="text">
<string> 下降沿</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButton_rising_edge_2">
<property name="text">
<string> 上升沿</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout> </layout>
</item> </item>
<item> <item>
@ -2769,7 +2843,7 @@
<attribute name="title"> <attribute name="title">
<string>通道 3</string> <string>通道 3</string>
</attribute> </attribute>
<layout class="QVBoxLayout" name="verticalLayout_10"> <layout class="QVBoxLayout" name="verticalLayout_60">
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_31"> <layout class="QHBoxLayout" name="horizontalLayout_31">
<item> <item>
@ -3123,7 +3197,7 @@
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_17"> <layout class="QHBoxLayout" name="horizontalLayout_23">
<item> <item>
<widget class="QGroupBox" name="groupBox_23"> <widget class="QGroupBox" name="groupBox_23">
<property name="title"> <property name="title">
@ -3366,7 +3440,9 @@
</widget> </widget>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_36"> <layout class="QVBoxLayout" name="verticalLayout_59">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_17">
<item> <item>
<widget class="QLabel" name="label_36"> <widget class="QLabel" name="label_36">
<property name="minimumSize"> <property name="minimumSize">
@ -3411,6 +3487,29 @@
</item> </item>
</layout> </layout>
</item> </item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_10">
<item>
<widget class="QRadioButton" name="radioButton_falling_edge_3">
<property name="text">
<string> 下降沿</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButton_rising_edge_3">
<property name="text">
<string> 上升沿</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout> </layout>
</item> </item>
<item> <item>
@ -4022,7 +4121,7 @@
<attribute name="title"> <attribute name="title">
<string>通道 4</string> <string>通道 4</string>
</attribute> </attribute>
<layout class="QVBoxLayout" name="verticalLayout_11"> <layout class="QVBoxLayout" name="verticalLayout_65">
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_48"> <layout class="QHBoxLayout" name="horizontalLayout_48">
<item> <item>
@ -4379,7 +4478,7 @@
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_18"> <layout class="QHBoxLayout" name="horizontalLayout_36">
<item> <item>
<widget class="QGroupBox" name="groupBox_32"> <widget class="QGroupBox" name="groupBox_32">
<property name="title"> <property name="title">
@ -4622,7 +4721,9 @@
</widget> </widget>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_45"> <layout class="QVBoxLayout" name="verticalLayout_64">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_18">
<item> <item>
<widget class="QLabel" name="label_40"> <widget class="QLabel" name="label_40">
<property name="minimumSize"> <property name="minimumSize">
@ -4667,6 +4768,29 @@
</item> </item>
</layout> </layout>
</item> </item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_11">
<item>
<widget class="QRadioButton" name="radioButton_falling_edge_4">
<property name="text">
<string> 下降沿</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButton_rising_edge_4">
<property name="text">
<string> 上升沿</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout> </layout>
</item> </item>
<item> <item>
@ -5386,5 +5510,6 @@
<connections/> <connections/>
<buttongroups> <buttongroups>
<buttongroup name="buttonGroup"/> <buttongroup name="buttonGroup"/>
<buttongroup name="buttonGroup_2"/>
</buttongroups> </buttongroups>
</ui> </ui>