last week

This commit is contained in:
2026-06-15 09:57:51 +08:00
parent a9341db9c8
commit be39714c5e
16 changed files with 423 additions and 181 deletions
+126 -102
View File
@@ -51,77 +51,6 @@
#include "rfid/rfidfunction.h" #include "rfid/rfidfunction.h"
#include <QElapsedTimer> #include <QElapsedTimer>
#define PRINT_CTRL_ADDR_BASE 0xa400
#define PRINT_DIGITAL_CHAR_BASE_ADDR (0xe000)
#define WRITE_CALENDAR_DAT_ADDR (0xb100)
#define RECYCLE_SLOT_STOP 0x1
#define RECYCLE_SLOT_CLOSE 0x2
#define RECYCLE_SLOT_OPEN 0x0
#define PRINT_START_STOP_CTRL (PRINT_CTRL_ADDR_BASE + 0x40)
#define PRINT_RESET_PRODUCT_CNT (PRINT_CTRL_ADDR_BASE + 0x41)
#define RECYCLE_SLOT_CTRL_ADDR (PRINT_CTRL_ADDR_BASE + 0x42)
#define RESUME_FAULT_ADDR (PRINT_CTRL_ADDR_BASE + 0x43)
#define VAR_CNT_ADDR (PRINT_CTRL_ADDR_BASE + 0x50)
#define VAR_CTRL_REG_ADDR (PRINT_CTRL_ADDR_BASE + 0x51)
#define MAININKCTRL_ADDR (PRINT_CTRL_ADDR_BASE + 0x59)
//#define MAININKCTRL_ADDR (PRINT_CTRL_ADDR_BASE + 0x5a)
#define WRITE_CNT1GROUP_COUNT 0xB13E
#define WRITE_CNT1GROUP_NUM 0xB13F
#define WRITE_CNT1GROUP_SETTING 0xB140
#define READ_CNT1GROUP_CURR_LOOP 0x0190
#define READ_CNT1GROUP_CURR_INDEX 0x0194
#define FPGA_STATUS_BASE_ADDR 0x0000
#define FPGA_VERSOIN_NUM (FPGA_STATUS_BASE_ADDR + 0xfe)
#define READ_BUILD_DAT (FPGA_STATUS_BASE_ADDR + 0xf0)
#define READ_PRINTDATA_XOR (FPGA_STATUS_BASE_ADDR + 0xf2)
#define READ_SYNC_COUNTER (FPGA_STATUS_BASE_ADDR + 0xf4)
#define PHASE_DETECT_HIGH_VOLTAGE_TM 0x100
#define READ_CALENDAR_DAT_ADDR 0x180
#define READ_RAND_FIFO_ADDR 0x200 // 读FPGA的随机码FIFO
#define ROW_PRINT_SEQNENCE_ADDR 0xb200 //行扫描顺序
#define DAC_TABLE_ADDR 0xb280 //每一个行点对应的DAC值
#define NOT_GAP_DAC_TABLE_ADDR 0xb380 //每一个不隔点对应的DAC值
#define FULL_COL_DAC_TABLE_ADDR 0xb480 //每一个不隔点对应的DAC值
#define MATCH_FULL_DAC_TABLE_ADDR 0xB500 // 匹配满列 DAC表 起始地址
#define MATCH_1_DAC_TABLE_ADDR 0xB600 // 匹配单点 DAC表 起始地址
#define MATCH_2_DAC_TABLE_ADDR 0xB700 // 匹配两点 DAC表 起始地址
#define MATCH_3_DAC_TABLE_ADDR 0xB800 // 匹配三点 DAC表 起始地址
#define MATCH_4_DAC_TABLE_ADDR 0xB900 // 匹配四点 DAC表 起始地址
#define MATCH_5_DAC_TABLE_ADDR 0xBA00 // 匹配五点 DAC表 起始地址
#define MATCH_G1_DAC_TABLE_ADDR 0xBC00 // 匹配空一点 DAC表 起始地址
#define MATCH_G2_DAC_TABLE_ADDR 0xBC80 // 匹配空两点 DAC表 起始地址
#define MATCH_G3_DAC_TABLE_ADDR 0xBD00 // 匹配空三点 DAC表 起始地址
#define MATCH_G4_DAC_TABLE_ADDR 0xBD80 // 匹配空四点 DAC表 起始地址
#define MATCH_G5_DAC_TABLE_ADDR 0xBE00 // 匹配空五点 DAC表 起始地址
#define MATCH_G6_DAC_TABLE_ADDR 0xBE80 // 匹配空六点 DAC表 起始地址
#define MATCH_P1_DAC_TABLE_ADDR 0xBF00 // 匹配预备一 DAC表 起始地址
#define MATCH_P2_DAC_TABLE_ADDR 0xBF80 // 匹配预备二 DAC表 起始地址
#define MATCH_C_DAC_TABLE_ADDR 0xC000 // 匹配复杂 DAC表 起始地址
#define WRITE_COUNTER3_ADDR (0xb150)
#define WRITE_COUNTER4_ADDR (0xb164)
//#define READ_CNT3_CURVALUE_ADDR 0x01b4
#define READ_CNT3_CURVALUE_ADDR 0x1834
#define LOCADDR '1'
#define NOLEDLIGHT 0x10
#define REDLIGHTCODE 0X11
#define YELLOWLIGHTCODE 0X13
#define GREENLIGHTCODE 0X12
unsigned short DACArray[64]; unsigned short DACArray[64];
quint16 notGapDACArray[64]; quint16 notGapDACArray[64];
quint16 fullColDACArray[64]; quint16 fullColDACArray[64];
@@ -2629,16 +2558,16 @@ int DevOp::writeFpgaPrintPara(bool ignoreWarn){
} }
} }
} }
else if(type == 6 || type == 8){ else if(sysPara->status.build_dat.builTime == 73){
if(sysPara->status.currVoltageVersion != sysPara->status.lastVoltageVersion){ if(sysPara->status.currVoltageVersion != sysPara->status.lastVoltageVersion){
writeDacValue2Fpga_No72NewVoltData(); writeDacValue2Fpga_No73();
sysPara->status.lastVoltageVersion = sysPara->status.currVoltageVersion; sysPara->status.lastVoltageVersion = sysPara->status.currVoltageVersion;
} }
} }
else if(sysPara->status.build_dat.builTime == 73){ else if(type == 6 || type == 8){
if(sysPara->status.currVoltageVersion != sysPara->status.lastVoltageVersion){ if(sysPara->status.currVoltageVersion != sysPara->status.lastVoltageVersion){
writeDacValue2Fpga_No73(); writeDacValue2Fpga_No72NewVoltData();
sysPara->status.lastVoltageVersion = sysPara->status.currVoltageVersion; sysPara->status.lastVoltageVersion = sysPara->status.currVoltageVersion;
} }
} }
@@ -2827,38 +2756,54 @@ int DevOp::writeFpgaPrintPara(bool ignoreWarn){
sysPara->status.configDone = 1; sysPara->status.configDone = 1;
return 0; return 0;
} }
template<typename T>
QString arrayToStr(const T* arr, int n) {
if (n <= 0) return QString();
QString result;
for (int i = 0; i < n; ++i) {
if (i != 0) result += ',';
result += QString::number(arr[i]);
}
return result;
}
void DevOp::writeDacValue2Fpga_No73() void DevOp::writeDacValue2Fpga_No73()
{ {
// LogInfo::setRunStatusText(tr("No73 send DAC Data.")); LogInfo::setRunStatusText(tr("No73 send DAC Data."));
quint16 matchFullDACArray[48]; static quint16 matchFullDACArray[48];
quint16 matchStealDACArray[48]; static quint16 matchStealDACArray[48];
quint16 matchContinousDACArray[48]; static quint16 matchContinousDACArray[48];
quint16 rowDelayArray[64]; static quint16 rowDelayArray[64];
quint16 head1RowDelayArray[64]; static quint8 head1RowDelayArray[64];
static quint8 fullColRowDelayArray[64];
quint8 adjDACParameter[64]; static quint8 adjDACParameter[64];
quint8 matchTotalTableDACArray[15][64]; static quint16 matchTotalTableDACArray[15][64];
quint8* matchOneDACArray = &matchTotalTableDACArray[0][0]; quint16* matchOneDACArray = &matchTotalTableDACArray[0][0];
quint8* matchTwoDACArray = &matchTotalTableDACArray[1][0]; quint16* matchTwoDACArray = &matchTotalTableDACArray[1][0];
quint8* matchThreeDACArray = &matchTotalTableDACArray[3][0]; quint16* matchThreeDACArray = &matchTotalTableDACArray[3][0];
quint8* matchFourDACArray = &matchTotalTableDACArray[6][0]; quint16* matchFourDACArray = &matchTotalTableDACArray[6][0];
quint8* matchFiveDACArray = &matchTotalTableDACArray[10][0]; quint16* matchFiveDACArray = &matchTotalTableDACArray[10][0];
quint8 matchPrevious1DotDACArray[48]; static quint8 matchPrevious1DotDACArray[48];
quint8 matchPrevious2DotDACArray[48]; static quint8 matchPrevious2DotDACArray[48];
quint8 matchPrevious3DotDACArray[48]; static quint8 matchPrevious3DotDACArray[48];
quint8 matchPrevious4DotDACArray[48]; static quint8 matchPrevious4DotDACArray[48];
quint8 matchPrevious5DotDACArray[48]; static quint8 matchPrevious5DotDACArray[48];
quint8 matchGapDACArray[64][5]; static quint8 matchGapDACArray[64][5];
quint8 matchP3dotGapDACArray[64][5]; static quint8 matchP3dotGapDACArray[64][5];
memset(matchFullDACArray, 0, sizeof(matchFullDACArray)); memset(matchFullDACArray, 0, sizeof(matchFullDACArray));
memset(matchStealDACArray, 0, sizeof(matchStealDACArray)); memset(matchStealDACArray, 0, sizeof(matchStealDACArray));
memset(matchContinousDACArray, 0, sizeof(matchContinousDACArray)); memset(matchContinousDACArray, 0, sizeof(matchContinousDACArray));
memset(rowDelayArray, 0, sizeof(rowDelayArray)); memset(rowDelayArray, 0, sizeof(rowDelayArray));
memset(head1RowDelayArray, 0, sizeof(head1RowDelayArray)); memset(head1RowDelayArray, 0, sizeof(head1RowDelayArray));
memset(fullColRowDelayArray, 0, sizeof(fullColRowDelayArray));
memset(matchTotalTableDACArray, 0, sizeof(matchTotalTableDACArray)); memset(matchTotalTableDACArray, 0, sizeof(matchTotalTableDACArray));
@@ -2871,6 +2816,8 @@ void DevOp::writeDacValue2Fpga_No73()
memset(matchP3dotGapDACArray, 0, sizeof(matchP3dotGapDACArray)); memset(matchP3dotGapDACArray, 0, sizeof(matchP3dotGapDACArray));
memset(adjDACParameter, 0, sizeof(adjDACParameter)); memset(adjDACParameter, 0, sizeof(adjDACParameter));
int baseDacScale = sysPara->para.endVoltage;
QFile file("./conf/full_dac_raw.txt"); QFile file("./conf/full_dac_raw.txt");
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);
for (int i = 0; i < 48; i++) for (int i = 0; i < 48; i++)
@@ -2920,13 +2867,24 @@ void DevOp::writeDacValue2Fpga_No73()
out << sysPara->voltePara_No73.head1_row_delay_table[i]<< "\n"; out << sysPara->voltePara_No73.head1_row_delay_table[i]<< "\n";
} }
file.close(); file.close();
file.setFileName("./conf/full_row_delay.txt");
file.open(QIODevice::WriteOnly);
for (int i = 0; i < 48; i++)
{
QTextStream out(&file);
fullColRowDelayArray[i] = sysPara->voltePara_No73.full_row_delay_table[i];
out << sysPara->voltePara_No73.full_row_delay_table[i]<< "\n";
}
file.close();
file.setFileName("./conf/1_table_dac_raw.txt"); file.setFileName("./conf/1_table_dac_raw.txt");
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);
for (int i = 0; i < 48; i++) for (int i = 0; i < 48; i++)
{ {
QTextStream out(&file); QTextStream out(&file);
*matchOneDACArray = sysPara->voltePara_No73.pixel_1_table[i];// - head1_base_table[i]; *matchOneDACArray = sysPara->voltePara_No73.pixel_1_table[i];// - head1_base_table[i];
out << sysPara->voltePara_No73.pixel_1_table[i] <<" "<< *matchOneDACArray << "\n"; out << sysPara->voltePara_No73.pixel_1_table[i] << "\n";
++matchOneDACArray; ++matchOneDACArray;
} }
file.close(); file.close();
@@ -3065,27 +3023,92 @@ void DevOp::writeDacValue2Fpga_No73()
file.setFileName("./conf/general_dac_parameter.txt"); file.setFileName("./conf/general_dac_parameter.txt");
file.open(QIODevice::WriteOnly); file.open(QIODevice::WriteOnly);
for (int i = 0; i < sizeof(sysPara->voltePara_No73.pixel_general_dac_parameter)/sizeof(sysPara->voltePara_No73.pixel_general_dac_parameter[0]); i++) for (int i = 0; i < sizeof(sysPara->voltePara_No73.pixel_para_table)/sizeof(sysPara->voltePara_No73.pixel_para_table[0]); i++)
{ {
adjDACParameter[i] = sysPara->voltePara_No73.pixel_general_dac_parameter[i]; adjDACParameter[i] = sysPara->voltePara_No73.pixel_para_table[i];
QTextStream out(&file); QTextStream out(&file);
out << adjDACParameter[i]; out << adjDACParameter[i];
out << "\n"; out << "\n";
} }
file.close(); file.close();
#if 0 /* apply scale */
for (int i = 0; i < sizeof(matchFullDACArray)/sizeof (matchFullDACArray[0]); i++)
{
matchFullDACArray[i] = (matchFullDACArray[i] * baseDacScale)/100;
}
for (int i = 0; i < sizeof(matchContinousDACArray)/sizeof (matchContinousDACArray[0]); i++)
{
matchContinousDACArray[i] = (matchContinousDACArray[i] * baseDacScale)/100;
}
for (int i = 0; i < 15; i++)
{
for (int j = 0; j < 64; j++)
{
matchTotalTableDACArray[i][j] = (matchTotalTableDACArray[i][j] * baseDacScale)/100;
}
}
for (int i = 0; i < 48; i++)
{
QTextStream out(&file);
sysPara->voltePara_No73.pixel_full_table[i] = (sysPara->voltePara_No73.pixel_full_table[i]* baseDacScale)/100;
}
for (int i = 0; i < 48; i++)
{
QTextStream out(&file);
sysPara->voltePara_No73.pixel_continous_table[i] = (sysPara->voltePara_No73.pixel_continous_table[i]* baseDacScale)/100;
}
for (int i = 0; i < 48; i++)
{
sysPara->voltePara_No73.pixel_1_table[i] = (sysPara->voltePara_No73.pixel_1_table[i]* baseDacScale)/100;
sysPara->voltePara_No73.pixel_2_table[i][0] = (sysPara->voltePara_No73.pixel_2_table[i][0]* baseDacScale)/100;
sysPara->voltePara_No73.pixel_2_table[i][1] = (sysPara->voltePara_No73.pixel_2_table[i][1]* baseDacScale)/100;
sysPara->voltePara_No73.pixel_3_table[i][0] = (sysPara->voltePara_No73.pixel_3_table[i][0]* baseDacScale)/100;
sysPara->voltePara_No73.pixel_3_table[i][1] = (sysPara->voltePara_No73.pixel_3_table[i][1]* baseDacScale)/100;
sysPara->voltePara_No73.pixel_3_table[i][2] = (sysPara->voltePara_No73.pixel_3_table[i][2]* baseDacScale)/100;
sysPara->voltePara_No73.pixel_4_table[i][0] = (sysPara->voltePara_No73.pixel_4_table[i][0]* baseDacScale)/100;
sysPara->voltePara_No73.pixel_4_table[i][1] = (sysPara->voltePara_No73.pixel_4_table[i][1]* baseDacScale)/100;
sysPara->voltePara_No73.pixel_4_table[i][2] = (sysPara->voltePara_No73.pixel_4_table[i][2]* baseDacScale)/100;
sysPara->voltePara_No73.pixel_4_table[i][3] = (sysPara->voltePara_No73.pixel_4_table[i][3]* baseDacScale)/100;
sysPara->voltePara_No73.pixel_5_table[i][0] = (sysPara->voltePara_No73.pixel_5_table[i][0]* baseDacScale)/100;
sysPara->voltePara_No73.pixel_5_table[i][1] = (sysPara->voltePara_No73.pixel_5_table[i][1]* baseDacScale)/100;
sysPara->voltePara_No73.pixel_5_table[i][2] = (sysPara->voltePara_No73.pixel_5_table[i][2]* baseDacScale)/100;
sysPara->voltePara_No73.pixel_5_table[i][3] = (sysPara->voltePara_No73.pixel_5_table[i][3]* baseDacScale)/100;
sysPara->voltePara_No73.pixel_5_table[i][4] = (sysPara->voltePara_No73.pixel_5_table[i][4]* baseDacScale)/100;
}
#endif
fpgaWr(0xB300, (unsigned char *)(matchFullDACArray), sizeof (matchFullDACArray)); fpgaWr(0xB300, (unsigned char *)(matchFullDACArray), sizeof (matchFullDACArray));
fpgaWr(0xB380, (unsigned char *)(matchContinousDACArray), sizeof (matchContinousDACArray)); fpgaWr(0xB380, (unsigned char *)(matchContinousDACArray), sizeof (matchContinousDACArray));
fpgaWr(0xB400, (unsigned char *)(&rowDelayArray[0]), sizeof (rowDelayArray)); fpgaWr(0xB400, (unsigned char *)(&rowDelayArray[0]), sizeof (rowDelayArray));
fpgaWr(0xB480, (unsigned char *)(&head1RowDelayArray[0]), sizeof (head1RowDelayArray)); fpgaWr(0xB480, (unsigned char *)(&head1RowDelayArray[0]), sizeof(head1RowDelayArray));
fpgaWr(0xB4C0, (unsigned char *)(&fullColRowDelayArray[0]), sizeof (fullColRowDelayArray));
fpgaWr(0xB500, (unsigned char *)(matchTotalTableDACArray[0]), sizeof (matchTotalTableDACArray)); fpgaWr(0xA600, (unsigned char *)(matchTotalTableDACArray[0]), sizeof (matchTotalTableDACArray));
fpgaWr(0xBC00, (unsigned char *)(matchP3dotGapDACArray[0]), sizeof (matchP3dotGapDACArray)); // fpgaWr(0xA600, (unsigned char *)(sysPara->voltePara_No73.pixel_1_table), sizeof(sysPara->voltePara_No73.pixel_1_table));
fpgaWr(0xBE00, (unsigned char *)(matchGapDACArray[0]), sizeof (matchGapDACArray));
//fpgaWr(0xB500, (unsigned char *)(matchTotalTableDACArray[0]), sizeof (matchTotalTableDACArray));
fpgaWr(0xBC00, (unsigned char *)(matchP3dotGapDACArray[0]), sizeof (matchP3dotGapDACArray)); // 0xBC00 - 0xBD40
fpgaWr(0xBE00, (unsigned char *)(matchGapDACArray[0]), sizeof (matchGapDACArray));
fpgaWr(0xC000, (unsigned char *)sysPara->voltePara_No73.pixel_big_table, sizeof(sysPara->voltePara_No73.pixel_big_table));// 写入8个 big data fpgaWr(0xC000, (unsigned char *)sysPara->voltePara_No73.pixel_big_table, sizeof(sysPara->voltePara_No73.pixel_big_table));// 写入8个 big data
fpgaWr(0xC100, (unsigned char *)adjDACParameter, sizeof(adjDACParameter));// 写入8个 fpgaWr(0xC100, (unsigned char *)adjDACParameter, sizeof(adjDACParameter));// 写入8个
LogInfo::setRunStatusText("Write dac value to fpga no 73:");
// TODO:: 用setRunStatusText输出上面十组数据的前10位的十六进制值
LogInfo::setRunStatusText("0xB300: 0x" + arrayToStr(matchFullDACArray, 10));
LogInfo::setRunStatusText("0xB380: 0x" + arrayToStr(matchContinousDACArray, 10));
LogInfo::setRunStatusText("0xB400: 0x" + arrayToStr(rowDelayArray, 10));
LogInfo::setRunStatusText("0xB480: 0x" + arrayToStr(head1RowDelayArray, 10));
LogInfo::setRunStatusText("0xB4C0: 0x" + arrayToStr(fullColRowDelayArray, 10));
LogInfo::setRunStatusText("0xA600: 0x" + arrayToStr(matchTotalTableDACArray[0], 10));
LogInfo::setRunStatusText("0xBC00: 0x" + arrayToStr(matchP3dotGapDACArray[6], 5));
LogInfo::setRunStatusText("0xBE00: 0x" + arrayToStr(matchGapDACArray[6], 5));
LogInfo::setRunStatusText("0xC000: 0x" + arrayToStr(sysPara->voltePara_No73.pixel_big_table[0], 8));
LogInfo::setRunStatusText("0xC100: 0x" + arrayToStr(adjDACParameter, 5));
} }
// 齿轮泵设置 // 齿轮泵设置
unsigned char dataofGearPump[2]; unsigned char dataofGearPump[2];
@@ -3270,6 +3293,7 @@ void DevOp::printCtrl2(int cmd){
unsigned int DevOp::readFpgaVersionNum(){ unsigned int DevOp::readFpgaVersionNum(){
fpgaRd(0x00EC,&sysPara->status.FPGAChipType,1); fpgaRd(0x00EC,&sysPara->status.FPGAChipType,1);
fpgaRd(0x00FE,(unsigned char *)&sysPara->status.fpgaVersionNum,2); fpgaRd(0x00FE,(unsigned char *)&sysPara->status.fpgaVersionNum,2);
fpgaRd(READ_BUILD_DAT, (unsigned char *)&sysPara->status.build_dat.builTime, sizeof(sysPara->status.build_dat.builTime));
return 0; return 0;
} }
+70
View File
@@ -67,6 +67,76 @@ class SysPara;
#define WARN_STATUS_HDINT (1<<1) /*喷头盖,盖上为0,否则为1,必须盖上才能打印,电磁铁有正反面*/ #define WARN_STATUS_HDINT (1<<1) /*喷头盖,盖上为0,否则为1,必须盖上才能打印,电磁铁有正反面*/
#define WARN_STATUS_VISCOTITY_MEASURE_READY (1<<0) // 球已经到上位等灯 #define WARN_STATUS_VISCOTITY_MEASURE_READY (1<<0) // 球已经到上位等灯
#define PRINT_CTRL_ADDR_BASE 0xa400
#define PRINT_DIGITAL_CHAR_BASE_ADDR (0xe000)
#define WRITE_CALENDAR_DAT_ADDR (0xb100)
#define RECYCLE_SLOT_STOP 0x1
#define RECYCLE_SLOT_CLOSE 0x2
#define RECYCLE_SLOT_OPEN 0x0
#define PRINT_START_STOP_CTRL (PRINT_CTRL_ADDR_BASE + 0x40)
#define PRINT_RESET_PRODUCT_CNT (PRINT_CTRL_ADDR_BASE + 0x41)
#define RECYCLE_SLOT_CTRL_ADDR (PRINT_CTRL_ADDR_BASE + 0x42)
#define RESUME_FAULT_ADDR (PRINT_CTRL_ADDR_BASE + 0x43)
#define VAR_CNT_ADDR (PRINT_CTRL_ADDR_BASE + 0x50)
#define VAR_CTRL_REG_ADDR (PRINT_CTRL_ADDR_BASE + 0x51)
#define MAININKCTRL_ADDR (PRINT_CTRL_ADDR_BASE + 0x59)
//#define MAININKCTRL_ADDR (PRINT_CTRL_ADDR_BASE + 0x5a)
#define WRITE_CNT1GROUP_COUNT 0xB13E
#define WRITE_CNT1GROUP_NUM 0xB13F
#define WRITE_CNT1GROUP_SETTING 0xB140
#define READ_CNT1GROUP_CURR_LOOP 0x0190
#define READ_CNT1GROUP_CURR_INDEX 0x0194
#define FPGA_STATUS_BASE_ADDR 0x0000
#define FPGA_VERSOIN_NUM (FPGA_STATUS_BASE_ADDR + 0xfe)
#define READ_BUILD_DAT (FPGA_STATUS_BASE_ADDR + 0xf0)
#define READ_PRINTDATA_XOR (FPGA_STATUS_BASE_ADDR + 0xf2)
#define READ_SYNC_COUNTER (FPGA_STATUS_BASE_ADDR + 0xf4)
#define PHASE_DETECT_HIGH_VOLTAGE_TM 0x100
#define READ_CALENDAR_DAT_ADDR 0x180
#define READ_RAND_FIFO_ADDR 0x200 // 读FPGA的随机码FIFO
#define ROW_PRINT_SEQNENCE_ADDR 0xb200 //行扫描顺序
#define DAC_TABLE_ADDR 0xb280 //每一个行点对应的DAC值
#define NOT_GAP_DAC_TABLE_ADDR 0xb380 //每一个不隔点对应的DAC值
#define FULL_COL_DAC_TABLE_ADDR 0xb480 //每一个不隔点对应的DAC值
#define MATCH_FULL_DAC_TABLE_ADDR 0xB500 // 匹配满列 DAC表 起始地址
#define MATCH_1_DAC_TABLE_ADDR 0xB600 // 匹配单点 DAC表 起始地址
#define MATCH_2_DAC_TABLE_ADDR 0xB700 // 匹配两点 DAC表 起始地址
#define MATCH_3_DAC_TABLE_ADDR 0xB800 // 匹配三点 DAC表 起始地址
#define MATCH_4_DAC_TABLE_ADDR 0xB900 // 匹配四点 DAC表 起始地址
#define MATCH_5_DAC_TABLE_ADDR 0xBA00 // 匹配五点 DAC表 起始地址
#define MATCH_G1_DAC_TABLE_ADDR 0xBC00 // 匹配空一点 DAC表 起始地址
#define MATCH_G2_DAC_TABLE_ADDR 0xBC80 // 匹配空两点 DAC表 起始地址
#define MATCH_G3_DAC_TABLE_ADDR 0xBD00 // 匹配空三点 DAC表 起始地址
#define MATCH_G4_DAC_TABLE_ADDR 0xBD80 // 匹配空四点 DAC表 起始地址
#define MATCH_G5_DAC_TABLE_ADDR 0xBE00 // 匹配空五点 DAC表 起始地址
#define MATCH_G6_DAC_TABLE_ADDR 0xBE80 // 匹配空六点 DAC表 起始地址
#define MATCH_P1_DAC_TABLE_ADDR 0xBF00 // 匹配预备一 DAC表 起始地址
#define MATCH_P2_DAC_TABLE_ADDR 0xBF80 // 匹配预备二 DAC表 起始地址
#define MATCH_C_DAC_TABLE_ADDR 0xC000 // 匹配复杂 DAC表 起始地址
#define WRITE_COUNTER3_ADDR (0xb150)
#define WRITE_COUNTER4_ADDR (0xb164)
//#define READ_CNT3_CURVALUE_ADDR 0x01b4
#define READ_CNT3_CURVALUE_ADDR 0x1834
#define LOCADDR '1'
#define NOLEDLIGHT 0x10
#define REDLIGHTCODE 0X11
#define YELLOWLIGHTCODE 0X13
#define GREENLIGHTCODE 0X12
#define FPGA_SYS_HZ 100000000 #define FPGA_SYS_HZ 100000000
+157 -33
View File
@@ -53,25 +53,27 @@ InkJetPrinter::InkJetPrinter(QWidget* parent)
InkJetPrinter::~InkJetPrinter() InkJetPrinter::~InkJetPrinter()
{ {
if(m_serialThreadFPGA->isRunning()){ if(m_serialThreadFPGA->isRunning()){
m_serialThreadFPGA->requestInterruption();
m_serialThreadFPGA->quit(); m_serialThreadFPGA->quit();
m_serialThreadFPGA->wait(); m_serialThreadFPGA->wait();
} }
if(m_serialThreadSTM32->isRunning()){ if(m_serialThreadSTM32->isRunning()){
m_serialThreadSTM32->requestInterruption();
m_serialThreadSTM32->quit(); m_serialThreadSTM32->quit();
m_serialThreadSTM32->wait(); m_serialThreadSTM32->wait();
} }
if(serialFPGA) if(serialFPGA){
delete serialFPGA; delete serialFPGA;
if(serialSTM32) serialFPGA = nullptr;
}
if(serialSTM32){
delete serialSTM32; delete serialSTM32;
serialSTM32 = nullptr;
}
} }
void InkJetPrinter::init() void InkJetPrinter::init()
{ {
timer = new QTimer();
connect(timer, SIGNAL(timeout()), this, SLOT(timerHandler()));
timer->start(10);
// 创建自定义子控件(原逻辑不变) // 创建自定义子控件(原逻辑不变)
m_MainWidget = new MainWidget(this); m_MainWidget = new MainWidget(this);
m_TestPrintWidget = new TestPrintWidget(this); m_TestPrintWidget = new TestPrintWidget(this);
@@ -214,6 +216,11 @@ void InkJetPrinter::init()
connect(serialFPGA,SIGNAL(getFPGAXXXDay(unsigned char*)),this,SLOT(saveFPGAXXXDay(unsigned char*))); connect(serialFPGA,SIGNAL(getFPGAXXXDay(unsigned char*)),this,SLOT(saveFPGAXXXDay(unsigned char*)));
connect(serialFPGA,SIGNAL(queueSizeFPGA(int)),this,SLOT(showFPGAqueuesize(int))); connect(serialFPGA,SIGNAL(queueSizeFPGA(int)),this,SLOT(showFPGAqueuesize(int)));
connect(serialFPGA,SIGNAL(queueFPGASizeSIG(int)),this,SLOT(showqueueFPGAsize(int))); connect(serialFPGA,SIGNAL(queueFPGASizeSIG(int)),this,SLOT(showqueueFPGAsize(int)));
connect(serialFPGA, &Serial::FPGABuildDat, this, [this](int buildTime){
sysPara->status.build_dat.builTime = quint16(buildTime);
qDebug() << "FPGA build time: " << buildTime;
LogInfo::setRunStatusText(QString("FPGA build time: %1").arg(buildTime));
});
m_serialThreadSTM32 = new QThread(); m_serialThreadSTM32 = new QThread();
serialSTM32 = new Serial("/dev/ttyAS2"); serialSTM32 = new Serial("/dev/ttyAS2");
@@ -232,10 +239,19 @@ void InkJetPrinter::init()
connect(serialSTM32,SIGNAL(powerOffReady()),m_MainWidget,SLOT(powerOffConfirmed())); connect(serialSTM32,SIGNAL(powerOffReady()),m_MainWidget,SLOT(powerOffConfirmed()));
connect(serialSTM32,SIGNAL(queueSizeSTM32(int)),this,SLOT(showSTM32queuesize(int))); connect(serialSTM32,SIGNAL(queueSizeSTM32(int)),this,SLOT(showSTM32queuesize(int)));
connect(serialSTM32, &Serial::STM32Connected, this, [this](bool ok, QString errorMsg){
if(ok){
LogInfo::setRunStatusText("Connected to STM32 serial port");
}
else{
LogInfo::setRunStatusText("STM32 serial port connection failed: " + errorMsg);
}
});
connect(m_SystemManage,SIGNAL(sigToCloseSerialFPGA()),this,SLOT(closeSerialFPGA())); connect(m_SystemManage,SIGNAL(sigToCloseSerialFPGA()),this,SLOT(closeSerialFPGA()));
connect(m_SystemManage,SIGNAL(sigToCloseSerialSTM32()),this,SLOT(closeSerialSTM32())); connect(m_SystemManage,SIGNAL(sigToCloseSerialSTM32()),this,SLOT(closeSerialSTM32()));
connect(m_SystemManage,SIGNAL(restartSerial()),this,SLOT(restartSerialPort())); connect(m_SystemManage,SIGNAL(restartSerial()),this,SLOT(restartSerialPort()));
connect(m_SystemManage, &SystemManage::rebootAppAcquired, this, &InkJetPrinter::rebootApp);
flagOfSerialThreadStratEn = true; flagOfSerialThreadStratEn = true;
connect(m_SystemManage,SIGNAL(enableClick(bool)),this,SLOT(enableInkJetTabClick(bool))); connect(m_SystemManage,SIGNAL(enableClick(bool)),this,SLOT(enableInkJetTabClick(bool)));
@@ -252,25 +268,15 @@ void InkJetPrinter::init()
connect(m_SystemUpdate,&SystemUpdate::sendUpDateChARLIBSignal,m_SystemManage,&SystemManage::on_pushButtonUpdateCharLib_pressed); connect(m_SystemUpdate,&SystemUpdate::sendUpDateChARLIBSignal,m_SystemManage,&SystemManage::on_pushButtonUpdateCharLib_pressed);
connect(m_SystemUpdate,&SystemUpdate::sendButtonClickedSignal,this,&InkJetPrinter::getSystemManageWidgetButtonClickSlot); connect(m_SystemUpdate,&SystemUpdate::sendButtonClickedSignal,this,&InkJetPrinter::getSystemManageWidgetButtonClickSlot);
// 原注释的默认页面设置(按需启用) // 原注释的默认页面设置(按需启用)
//m_StackedWidget->setCurrentWidget(m_ErCodeSettingsWidget);
//m_StackedWidget->setCurrentWidget(m_MainInterfaceWidget);
connect(m_BarCodeDlg, &QBarCode::sig_barCodeClose, this, [=](){
m_StackedWidget->setCurrentWidget(m_TestPrintWidget);
});
connect(m_BarCodeDlg, &QBarCode::sig_barCodeClose,
m_TestPrintWidget, &TestPrintWidget::slt_BarCodeItemDone);
connect(m_QRCodeDlg, &dlgQrCode::sig_qrCodeClose, this, [=](){
m_StackedWidget->setCurrentWidget(m_TestPrintWidget);
});
connect(m_QRCodeDlg, &dlgQrCode::sig_qrCodeClose,
m_TestPrintWidget, &TestPrintWidget::slt_QRCodeItemDone);
sysPara->status.machineMac = m_MainInstruction->dlgInputAddr->jd.addr; sysPara->status.machineMac = m_MainInstruction->dlgInputAddr->jd.addr;
sysPara->para.rfidCountDown = 5; sysPara->para.rfidCountDown = 5;
timer = new QTimer();
connect(timer, SIGNAL(timeout()), this, SLOT(timerHandler()));
timer->start(10);
} }
// type 1,2: 分别显示计数器1或2的界面 // type 1,2: 分别显示计数器1或2的界面
@@ -747,10 +753,6 @@ void InkJetPrinter::timerHandler(void){
// sysPara->devOp->controlRedLight(false); // sysPara->devOp->controlRedLight(false);
} }
if(pulse_1s) {
qDebug() << "FPGA version: build time: " << sysPara->status.build_dat.builTime << " inkDot: " << sysPara->status.build_dat.inkDot;
}
sysPara->status.gearPumpRunSpeed = (PulseCnt * 60 * 1000) / (500 * 2); sysPara->status.gearPumpRunSpeed = (PulseCnt * 60 * 1000) / (500 * 2);
if(!sysPara->para.gearPumpEnable) if(!sysPara->para.gearPumpEnable)
sysPara->status.PRESSURE *= 5; //响应群众号召,数值放大五倍 sysPara->status.PRESSURE *= 5; //响应群众号召,数值放大五倍
@@ -1253,7 +1255,7 @@ void InkJetPrinter::timerHandler(void){
sysPara->status.waitHightVolOff--; sysPara->status.waitHightVolOff--;
if(sysPara->status.waitHightVolOff==0){ if(sysPara->status.waitHightVolOff==0){
sysPara->devOp->highVoltageCtrl(0); sysPara->devOp->highVoltageCtrl(0);
// ui->tabMainWindow->setRunStatus(tr("停止打印,自动关闭高压.")); m_MainWidget->setRunStatus(tr("停止打印,自动关闭高压."));
} }
} }
@@ -1679,7 +1681,7 @@ void InkJetPrinter::saveFPGAStatus(unsigned char *data){
} }
else target[i]=data[7+i]; else target[i]=data[7+i];
} }
if(sysPara->status.dummy != sysPara->status.isPrinting){ if(sysPara->status.dummy != sysPara->status.isPrinting && sysPara->status.selfCheckDone){
sysPara->status.isPrinting = sysPara->status.dummy; sysPara->status.isPrinting = sysPara->status.dummy;
m_MainWidget->updatePrintDisplayLabel(); m_MainWidget->updatePrintDisplayLabel();
} }
@@ -1795,6 +1797,8 @@ void InkJetPrinter::saveSTM32Version(unsigned char *data){
QString STM32Ver = QString("%1.%2.%3").arg((sysPara->status.stm32Verion>>16)&0xFF) QString STM32Ver = QString("%1.%2.%3").arg((sysPara->status.stm32Verion>>16)&0xFF)
.arg((sysPara->status.stm32Verion>>8) & 0xFF).arg(sysPara->status.stm32Verion&0xFF); .arg((sysPara->status.stm32Verion>>8) & 0xFF).arg(sysPara->status.stm32Verion&0xFF);
qDebug()<<"STM32Ver:"<<STM32Ver; qDebug()<<"STM32Ver:"<<STM32Ver;
LogInfo::setRunStatusText(QString("STM32Ver: %1").arg(STM32Ver));
} }
void InkJetPrinter::saveSTM32Time(unsigned char *data){ void InkJetPrinter::saveSTM32Time(unsigned char *data){
@@ -1819,8 +1823,8 @@ void InkJetPrinter::saveSTM32Time(unsigned char *data){
QString Second = QString("%1").arg(datatime[7], 2, 10, QChar('0')); QString Second = QString("%1").arg(datatime[7], 2, 10, QChar('0'));
QString date = Year+"-"+Month+"-"+Day+" "+Hour+":"+Minute+":"+Second; QString date = Year+"-"+Month+"-"+Day+" "+Hour+":"+Minute+":"+Second;
qDebug()<<QString("readSTM32Date: %1").arg(date); qDebug()<<QString("readSTM32Date: %1").arg(date);
// LogInfo::setRunStatusText(QString("readSTM32Date: %1").arg(date)); LogInfo::setRunStatusText(QString("readSTM32Date: %1").arg(date));
// LogInfo::setRunStatusText(QString("readSTM32Week: %1").arg(Week)); LogInfo::setRunStatusText(QString("readSTM32Week: %1").arg(Week));
m_SystemManage->PowerOnSetTime(date); m_SystemManage->PowerOnSetTime(date);
} }
@@ -1846,24 +1850,34 @@ void InkJetPrinter::closedSerial(){
void InkJetPrinter::closeSerialFPGA(){ void InkJetPrinter::closeSerialFPGA(){
if(m_serialThreadFPGA->isRunning()){ if(m_serialThreadFPGA->isRunning()){
m_serialThreadFPGA->requestInterruption();
m_serialThreadFPGA->quit(); m_serialThreadFPGA->quit();
m_serialThreadFPGA->wait(); m_serialThreadFPGA->wait();
} }
if(serialFPGA) if(serialFPGA){
delete serialFPGA; delete serialFPGA;
serialFPGA = nullptr;
}
} }
void InkJetPrinter::closeSerialSTM32(){ void InkJetPrinter::closeSerialSTM32(){
if(m_serialThreadSTM32->isRunning()){ if(m_serialThreadSTM32->isRunning()){
m_serialThreadSTM32->requestInterruption();
m_serialThreadSTM32->quit(); m_serialThreadSTM32->quit();
m_serialThreadSTM32->wait(); m_serialThreadSTM32->wait();
} }
if(serialSTM32) if(serialSTM32){
delete serialSTM32; delete serialSTM32;
serialSTM32 = nullptr;
}
} }
void InkJetPrinter::restartSerialPort(){ void InkJetPrinter::restartSerialPort(){
closeSerialFPGA();
closeSerialSTM32();
serialFPGA = new Serial("/dev/ttyAS5"); serialFPGA = new Serial("/dev/ttyAS5");
serialFPGA->moveToThread(m_serialThreadFPGA); serialFPGA->moveToThread(m_serialThreadFPGA);
connect(serialFPGA,SIGNAL(sendQueueData(int,int,unsigned char*,int,int)),sysPara->devOp,SLOT(resendFPGADate(int,int,unsigned char*,int,int))); connect(serialFPGA,SIGNAL(sendQueueData(int,int,unsigned char*,int,int)),sysPara->devOp,SLOT(resendFPGADate(int,int,unsigned char*,int,int)));
@@ -1879,7 +1893,11 @@ void InkJetPrinter::restartSerialPort(){
connect(serialFPGA,SIGNAL(getFPGAXXXDay(unsigned char*)),this,SLOT(saveFPGAXXXDay(unsigned char*))); connect(serialFPGA,SIGNAL(getFPGAXXXDay(unsigned char*)),this,SLOT(saveFPGAXXXDay(unsigned char*)));
connect(serialFPGA,SIGNAL(queueSizeFPGA(int)),this,SLOT(showFPGAqueuesize(int))); connect(serialFPGA,SIGNAL(queueSizeFPGA(int)),this,SLOT(showFPGAqueuesize(int)));
connect(serialFPGA,SIGNAL(queueFPGASizeSIG(int)),this,SLOT(showqueueFPGAsize(int))); connect(serialFPGA,SIGNAL(queueFPGASizeSIG(int)),this,SLOT(showqueueFPGAsize(int)));
connect(serialFPGA, &Serial::FPGABuildDat, this, [this](int buildTime){
sysPara->status.build_dat.builTime = quint16(buildTime);
qDebug() << "FPGA build time: " << buildTime;
LogInfo::setRunStatusText(QString("FPGA build time: %1").arg(buildTime));
});
serialSTM32 = new Serial("/dev/ttyAS2"); serialSTM32 = new Serial("/dev/ttyAS2");
serialSTM32->moveToThread(m_serialThreadSTM32); serialSTM32->moveToThread(m_serialThreadSTM32);
@@ -1894,6 +1912,14 @@ void InkJetPrinter::restartSerialPort(){
connect(serialSTM32,SIGNAL(powerOffReady()),m_MainWidget,SLOT(powerOffConfirmed())); connect(serialSTM32,SIGNAL(powerOffReady()),m_MainWidget,SLOT(powerOffConfirmed()));
connect(m_serialThreadSTM32,&QThread::started,serialSTM32,&Serial::startInitSlot); connect(m_serialThreadSTM32,&QThread::started,serialSTM32,&Serial::startInitSlot);
connect(serialSTM32,SIGNAL(queueSizeSTM32(int)),this,SLOT(showSTM32queuesize(int))); connect(serialSTM32,SIGNAL(queueSizeSTM32(int)),this,SLOT(showSTM32queuesize(int)));
connect(serialSTM32, &Serial::STM32Connected, this, [this](bool ok, QString errorMsg){
if(ok){
LogInfo::setRunStatusText("Connected to STM32 serial port");
}
else{
LogInfo::setRunStatusText("STM32 serial port connection failed: " + errorMsg);
}
});
flagOfSerialThreadStratEn = true; flagOfSerialThreadStratEn = true;
} }
@@ -2356,6 +2382,104 @@ void InkJetPrinter::viscosity_timerHandler()
firstTime = 0; firstTime = 0;
} }
void InkJetPrinter::rebootApp()
{
if(!sysPara->status.selfCheckDone)
sysPara->status.selfCheckDone = true;
this->setDisabled(true);
m_StackedWidget->setCurrentWidget(m_MainWidget);
// emit setDisableAll();
if(!TEST_MODE && sysPara->para.flagOfReclaimPumEnable){
for(int i=15;i>11;i--)
{
if(i == 15){
sysPara->status.isPumpValveControledByHand = true; //停止自动
sysPara->devOp->controlInkValve(true);
sysPara->devOp->controlInkValvePWM(true);
sysPara->devOp->controlReclaimPump(true,true);
sysPara->devOp->controlViscosityPump(true);
sysPara->devOp->controlCycleValve(true);
sysPara->para.gearPumpValue = 0;
sysPara->devOp->WriteMoterPump();
}
if(i == 12){
sysPara->devOp->controlInkValve(false);
sysPara->devOp->controlInkValvePWM(false);
}
m_MainWidget->setRunStatus(tr("正在准备重启,请等待%1秒...............").arg(i));
MySleep(1000);
}
}
sysPara->devOp->controlReclaimTankOpen(true);
sysPara->status.isPumpValveControledByHand = true; //停止自动
if(sysPara->para.gearPumpEnable ){
if(!sysPara->para.flagOfReclaimPumEnable){
sysPara->para.gearPumpValue = 360;
sysPara->devOp->WriteMoterPump();
}
else{
sysPara->devOp->controlReclaimPump(true,false);
sysPara->para.gearPumpValue = 0;
sysPara->devOp->WriteMoterPump();
}
}
else{
sysPara->para.reclaimPumpPWMWidth = 95;
sysPara->devOp->controlReclaimPump(true,true);
}
if(!sysPara->devOp->isViscosityPumpOpen())
sysPara->devOp->controlViscosityPump(true);
sysPara->devOp->controlCycleValve(true);
sysPara->devOp->controlInkValve(false); //关供墨
sysPara->devOp->controlInkValvePWM(false); //关供墨
if(!TEST_MODE){
for(int i=11;i>7;i--)
{
if(i==9)
sysPara->devOp->controlReclaimTankOpen(false);
m_MainWidget->setRunStatus(tr("正在准备重启,请等待%1秒...............").arg(i));
MySleep(1000);
}
}
if(!sysPara->status.lostCommuFlag){
sysPara->para.calandar_and_dat.cnt1CurrValue = QString::number(sysPara->status.calandar_and_dat.cnt1CurrValue,16).toInt();
sysPara->para.calandar_and_dat.cnt2CurrValue = QString::number(sysPara->status.calandar_and_dat.cnt2CurrValue,16).toInt();
sysPara->para.Counter3.cnt3CurrValue = QString::number(sysPara->status.Status_Counter3.cnt3CurrValue,16).toInt();
m_MainWidget->updateTotalCnt(0);
sysPara->saveParaToFile(); // 关机前将相关配置保存
}
sysPara->status.powerOffAppending = false;
if(!TEST_MODE){
for(int i=7;i>0;i--)
{
if(i == 5)
sysPara->devOp->controlReclaimTankClose(true);
if(i == 4){
sysPara->devOp->controlViscosityPump(false);
sysPara->devOp->controlCycleValve(false);
sysPara->devOp->controlReclaimPump(false,false);
sysPara->para.gearPumpValue = 0;
sysPara->devOp->WriteMoterPump();
}
m_MainWidget->setRunStatus(tr("正在准备重启,请等待%1秒...............").arg(i));
MySleep(1000);
}
}
sysPara->saveParaToFile(); // 关机前将相关配置保存
sysPara->saveRFIDPara();
MySleep(200);
system("sync");//缓存同步
QCoreApplication::quit();
}
void InkJetPrinter::handleInitedPID() void InkJetPrinter::handleInitedPID()
{ {
PID_init(); PID_init();
+2
View File
@@ -129,6 +129,8 @@ private slots:
// void getMainInterfaceWidgetButtonClickedSlot(int index); // void getMainInterfaceWidgetButtonClickedSlot(int index);
void viscosity_timerHandler(); void viscosity_timerHandler();
void rebootApp();
void getFontSetWidgetButtonClickedSlot(int index); void getFontSetWidgetButtonClickedSlot(int index);
void getPrintSettingButtonClickedSlot(int index); void getPrintSettingButtonClickedSlot(int index);
void getMainInstructWidgetButtonClickedSlot(int index); void getMainInstructWidgetButtonClickedSlot(int index);
+9
View File
@@ -65,6 +65,7 @@ void Serial::initSerialPort(const QString comport){
} }
else{ else{
qDebug() << "STM32串口打开成功"; qDebug() << "STM32串口打开成功";
emit STM32Connected(true, "");
} }
} else { } else {
if(comport == "/dev/ttyAS5"){ if(comport == "/dev/ttyAS5"){
@@ -72,6 +73,7 @@ void Serial::initSerialPort(const QString comport){
} }
else{ else{
qDebug() << "STM32串口打开失败:" << serial->errorString(); qDebug() << "STM32串口打开失败:" << serial->errorString();
emit STM32Connected(false, serial->errorString());
} }
} }
this->FPGARecDataSavePtr=NULL; this->FPGARecDataSavePtr=NULL;
@@ -257,8 +259,15 @@ void Serial::readFPGAData(QByteArray data) {
memcpy(dataFPGA_1B8,recData.constData(),12); memcpy(dataFPGA_1B8,recData.constData(),12);
emit getFPGAXXXDay(dataFPGA_1B8); emit getFPGAXXXDay(dataFPGA_1B8);
break; break;
case READ_BUILD_DAT: {
int fpgaBuildDat = 0;
fpgaBuildDat = recData[7];
emit FPGABuildDat(fpgaBuildDat);
break;
} }
} }
}
} }
+3
View File
@@ -104,6 +104,9 @@ signals:
void resendFPGAData(int,int,unsigned char *,int,int); void resendFPGAData(int,int,unsigned char *,int,int);
void sendQueueData(int,int,unsigned char *,int,int); void sendQueueData(int,int,unsigned char *,int,int);
void progress(int,int); void progress(int,int);
void FPGABuildDat(int buildTime);
void STM32Connected(bool ok, QString errorMsg);
private: private:
void sendDataToFPGA(int,int,unsigned char*,int); void sendDataToFPGA(int,int,unsigned char*,int);
+5 -1
View File
@@ -900,6 +900,7 @@ void SysPara::loadVolteParaFromFile(PRINT_MODE mode)
{ {
volParaFilePath = PARA_ROOT_DIR"VoltParaStd.bin"; volParaFilePath = PARA_ROOT_DIR"VoltParaStd.bin";
} }
if(status.build_dat.builTime == 73){ if(status.build_dat.builTime == 73){
volParaFilePath = ":/conf/VoltePara_No73.bin"; volParaFilePath = ":/conf/VoltePara_No73.bin";
status.currVoltageVersion = VersionOf73; status.currVoltageVersion = VersionOf73;
@@ -935,7 +936,8 @@ void SysPara::loadVolteParaFromFile(PRINT_MODE mode)
status.currVoltageVersion = VersionOf72And32R; status.currVoltageVersion = VersionOf72And32R;
} }
} }
// LogInfo::setRunStatusText(QString("volParaFilePath:%1").arg(volParaFilePath));
LogInfo::setRunStatusText(QString("volParaFilePath:%1").arg(volParaFilePath));
QFile file(volParaFilePath); QFile file(volParaFilePath);
@@ -954,6 +956,8 @@ void SysPara::loadVolteParaFromFile(PRINT_MODE mode)
return; return;
} }
qDebug() << "loadVolteParaFromFile: " << volParaFilePath;
if (file.exists(volParaFilePath)){ if (file.exists(volParaFilePath)){
if (!file.open(QIODevice::ReadOnly)){ if (!file.open(QIODevice::ReadOnly)){
} }
+1
View File
@@ -864,6 +864,7 @@ typedef struct
qint16 row_delay_table[48]; qint16 row_delay_table[48];
qint16 head1_row_delay_table[48]; qint16 head1_row_delay_table[48];
qint16 full_row_delay_table[48];
qint16 pixel_general_dac_parameter[64]; qint16 pixel_general_dac_parameter[64];
}voltePara_t_No73; }voltePara_t_No73;
typedef struct typedef struct
+12 -29
View File
@@ -20,6 +20,7 @@
#include <unistd.h> #include <unistd.h>
//#include "LogInfo.h" //#include "LogInfo.h"
#include <QDirIterator> #include <QDirIterator>
#include "LogInfo.h"
#define RECLAIN_TANK_TEST_MAX_COUNT 10 #define RECLAIN_TANK_TEST_MAX_COUNT 10
enum ReclainTankTestEnum{ReclainTankTest_eNotStart,ReclainTankTest_eOpenning,ReclainTankTest_eOpened,ReclainTankTest_eClosing,ReclainTankTest_Closed}; enum ReclainTankTestEnum{ReclainTankTest_eNotStart,ReclainTankTest_eOpenning,ReclainTankTest_eOpened,ReclainTankTest_eClosing,ReclainTankTest_Closed};
@@ -250,7 +251,7 @@ void SystemManage::setPumpValveBottonEnable(bool enable){
ui->pushButtonViscosityPump->setEnabled(enable); ui->pushButtonViscosityPump->setEnabled(enable);
//ui->pushButtonCleanUP->setEnabled(enable); //ui->pushButtonCleanUP->setEnabled(enable);
ui->pushButtonAutoClean->setEnabled(enable); // ui->pushButtonAutoClean->setEnabled(enable);
// ui->pushButtonMotorTest->setEnabled(enable); // ui->pushButtonMotorTest->setEnabled(enable);
ui->pushButtonPushAir->setEnabled(enable); ui->pushButtonPushAir->setEnabled(enable);
if(sysPara) if(sysPara)
@@ -1187,34 +1188,16 @@ void SystemManage::onAutoCleanStart(void)
void SystemManage::on_pushButtonAutoClean_pressed() void SystemManage::on_pushButtonAutoClean_pressed()
{ {
sysPara->saveParaToFile(); // 关机前将相关配置保存 QMessageBox::StandardButton ret = QMessageBox::Ok;
sysPara->saveRFIDPara(); ret = QMessageBox::warning(this, tr("警告"),
MySleep(200); tr("是否确认重启?"),
system("sync");//缓存同步
QCoreApplication::quit();
/*
QMessageBox::StandardButton ret;
ret = QMessageBox::information(this, tr("警告"),
tr("是否确认启动自动清洗?"),
QMessageBox::Ok | QMessageBox::Cancel);
if (ret == QMessageBox::Ok){
ret = QMessageBox::information(this, tr("警告"),
tr("是否确认墨水排除,加入清洗剂?"),
QMessageBox::Ok | QMessageBox::Cancel); QMessageBox::Ok | QMessageBox::Cancel);
if (ret == QMessageBox::Ok) { if (ret != QMessageBox::Ok){
dialogAutoClean = new QProgressDialog(this); LogInfo::setRunStatusText("The user canceled the reboot operation.");
dialogAutoClean->setWindowModality(Qt::WindowModal); return;
dialogAutoClean->setMinimumDuration(2); }
dialogAutoClean->setCancelButtonText(tr("Cancel"));
dialogAutoClean->setWindowTitle(tr("(1/3) Cleaning")); emit rebootAppAcquired();
dialogAutoClean->setRange(0, AUTOCLEAN_STATUS_STEP1_TIME);
dialogAutoClean->setAutoClose(true);
dialogAutoClean->setAutoReset(true);
emit autoCleanStart();
autoCleanTimer->start(1000); // 1000 ms
dialogAutoClean->show();
}
}*/
} }
void SystemManage::on_pushButtonMotorTest_pressed() void SystemManage::on_pushButtonMotorTest_pressed()
@@ -1335,7 +1318,7 @@ void SystemManage::on_pushButtonProgamFPGA_clicked()
void SystemManage::programFPGAProcess(){ void SystemManage::programFPGAProcess(){
QMessageBox::StandardButton ret = QMessageBox::information(this, tr("提示"), QMessageBox::StandardButton ret = QMessageBox::information(this, tr("提示"),
tr("确定要升级FPGA软件吗?"), tr("确定要升级FPGA软件吗?"),
QMessageBox::Ok); QMessageBox::Ok | QMessageBox::Cancel);
if (ret == QMessageBox::Ok) { if (ret == QMessageBox::Ok) {
QFile FpgaFile("/home/plg/FPGAFile.rbf"); QFile FpgaFile("/home/plg/FPGAFile.rbf");
if(FpgaFile.exists()) if(FpgaFile.exists())
+1
View File
@@ -129,6 +129,7 @@ Q_SIGNALS:
void restartSerial(); void restartSerial();
void enableClick(bool); void enableClick(bool);
void upgradeSTM32(QString); void upgradeSTM32(QString);
void rebootAppAcquired();
signals: signals:
void sendButtonClickedSignal(int index); void sendButtonClickedSignal(int index);
+4 -4
View File
@@ -21,8 +21,8 @@
border-radius: 3px; border-radius: 3px;
font-size: 18px; font-size: 18px;
font-weight:500; font-weight:500;
width: 180px; height: 45px;
height: 90px; width: 90px;
} }
QPushButton:hover { QPushButton:hover {
@@ -38,8 +38,8 @@
<widget class="QPushButton" name="closeBtn"> <widget class="QPushButton" name="closeBtn">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>680</x> <x>650</x>
<y>492</y> <y>500</y>
<width>100</width> <width>100</width>
<height>41</height> <height>41</height>
</rect> </rect>
+2
View File
@@ -167,6 +167,7 @@ void SystemSetting::updateSysParaToUI(){
ui->spinBoxSeptalPostion->setValue(sysPara->para.septalPostion); ui->spinBoxSeptalPostion->setValue(sysPara->para.septalPostion);
ui->comboBoxDiameter->setCurrentIndex(sysPara->para.diameter); ui->comboBoxDiameter->setCurrentIndex(sysPara->para.diameter);
ui->comboBoxDiaphramOffset->setCurrentIndex(sysPara->para.diaphramOffset/5-1); ui->comboBoxDiaphramOffset->setCurrentIndex(sysPara->para.diaphramOffset/5-1);
ui->enableReclaimAlgorithm->setChecked(sysPara->para.flagOfReclaimPumEnable);
if(sysPara->para.EditMode>SCENE) if(sysPara->para.EditMode>SCENE)
sysPara->para.EditMode=TXTFILE; sysPara->para.EditMode=TXTFILE;
@@ -202,6 +203,7 @@ void SystemSetting::applyUIPara(){
else { else {
QMessageBox::critical(this,tr("错误"),tr("实际频率不能为%1").arg(freq)); QMessageBox::critical(this,tr("错误"),tr("实际频率不能为%1").arg(freq));
} }
sysPara->para.flagOfReclaimPumEnable = ui->enableReclaimAlgorithm->isChecked();
sysPara->para.FanTemperature = ui->spinBoxFanTemperature->value(); sysPara->para.FanTemperature = ui->spinBoxFanTemperature->value();
sysPara->para.septalPostion = ui->spinBoxSeptalPostion->value(); sysPara->para.septalPostion = ui->spinBoxSeptalPostion->value();
quint16 diaphramOffset = 5*(ui->comboBoxDiaphramOffset->currentIndex()+1); quint16 diaphramOffset = 5*(ui->comboBoxDiaphramOffset->currentIndex()+1);
+9 -6
View File
@@ -4,6 +4,7 @@
#include "Public.h" #include "Public.h"
#include "InputMethod.h" #include "InputMethod.h"
#include <QMessageBox> #include <QMessageBox>
#include <QDebug>
SystemUpdate::SystemUpdate(QWidget *parent) : SystemUpdate::SystemUpdate(QWidget *parent) :
QWidget(parent), QWidget(parent),
@@ -49,15 +50,15 @@ void SystemUpdate::applyStyleSheet()
background-color: #BAE7FF; background-color: #BAE7FF;
} }
QPushButton { QPushButton {
background-color: #5396C1; background-color: #5396C1;
color: #ffffff; color: #ffffff;
border: 1px solid #000000; border: 1px solid #000000;
border-radius: 3px; border-radius: 3px;
font-size: 18px; font-size: 18px;
font-weight:500; font-weight:500;
width: 180px; width: 90px;
height: 90px; height: 45px;
} }
QPushButton:hover { QPushButton:hover {
@@ -99,9 +100,11 @@ void SystemUpdate::on_pushButtonUpdateCharLib_clicked()
void SystemUpdate::on_pushButtonFontToUdisk_clicked() void SystemUpdate::on_pushButtonFontToUdisk_clicked()
{ {
QMessageBox::StandardButton ret; QMessageBox::StandardButton ret;
ret = QMessageBox::information(this, tr("警告"),
tr("是否确认导出字库到U盘?"), QMessageBox box(QMessageBox::Information, tr("警告"), tr("是否确认导出字库到U盘?"), QMessageBox::Ok | QMessageBox::Cancel, this);
QMessageBox::Ok | QMessageBox::Cancel); box.setStyleSheet("");
box.exec();
ret = box.result();
if (ret == QMessageBox::Ok) if (ret == QMessageBox::Ok)
{ {
QFile file("/udisk"); QFile file("/udisk");
Binary file not shown.
+9 -6
View File
@@ -1766,11 +1766,11 @@ int MainWidget::getCurrPrintStatus()
void MainWidget::setReclaimStatus(bool isOpen, int rate) void MainWidget::setReclaimStatus(bool isOpen, int rate)
{ {
if (!sysPara->devOp->isReclaimTankOpenEnable()) { // if (!sysPara->devOp->isReclaimTankOpenEnable()) {
QString str = isOpen? tr("停止开启") : tr("停止关闭"); // QString str = isOpen? tr("停止开启") : tr("停止关闭");
setRunStatus(str); // setRunStatus(str);
return; // return;
}; // };
if (isOpen) { if (isOpen) {
QString str = rate == 100? tr("喷嘴已开启"):tr("喷嘴开启中"); QString str = rate == 100? tr("喷嘴已开启"):tr("喷嘴开启中");
@@ -3406,7 +3406,10 @@ void MainWidget::RefreshStatusLight(){//100ms
// setRunStatus(tr("暂停喷印...")); // setRunStatus(tr("暂停喷印..."));
// } // }
if(sysPara->status.isPrinting && sysPara->status.selfCheckDone){
setRunStatus(tr("正在喷印......."));
}
// 20160620 新增主界面显示:压力,粘度,隔膜位置,晶振电压数,相位 // 20160620 新增主界面显示:压力,粘度,隔膜位置,晶振电压数,相位
alarmStatus.pressValue = QString("%1/%2").arg(sysPara->status.PRESSURE).arg(sysPara->para.pressure); alarmStatus.pressValue = QString("%1/%2").arg(sysPara->status.PRESSURE).arg(sysPara->para.pressure);
+13
View File
@@ -833,6 +833,19 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="10" column="2">
<widget class="QCheckBox" name="enableReclaimAlgorithm">
<property name="minimumSize">
<size>
<width>0</width>
<height>31</height>
</size>
</property>
<property name="text">
<string>启用回收泵算法</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="layoutWidget_2"> <widget class="QWidget" name="layoutWidget_2">