last week
This commit is contained in:
@@ -51,77 +51,6 @@
|
||||
#include "rfid/rfidfunction.h"
|
||||
#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];
|
||||
quint16 notGapDACArray[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){
|
||||
writeDacValue2Fpga_No72NewVoltData();
|
||||
writeDacValue2Fpga_No73();
|
||||
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){
|
||||
writeDacValue2Fpga_No73();
|
||||
writeDacValue2Fpga_No72NewVoltData();
|
||||
sysPara->status.lastVoltageVersion = sysPara->status.currVoltageVersion;
|
||||
}
|
||||
}
|
||||
@@ -2827,38 +2756,54 @@ int DevOp::writeFpgaPrintPara(bool ignoreWarn){
|
||||
sysPara->status.configDone = 1;
|
||||
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()
|
||||
{
|
||||
// LogInfo::setRunStatusText(tr("No73 send DAC Data."));
|
||||
quint16 matchFullDACArray[48];
|
||||
quint16 matchStealDACArray[48];
|
||||
quint16 matchContinousDACArray[48];
|
||||
LogInfo::setRunStatusText(tr("No73 send DAC Data."));
|
||||
static quint16 matchFullDACArray[48];
|
||||
static quint16 matchStealDACArray[48];
|
||||
static quint16 matchContinousDACArray[48];
|
||||
|
||||
quint16 rowDelayArray[64];
|
||||
quint16 head1RowDelayArray[64];
|
||||
static quint16 rowDelayArray[64];
|
||||
static quint8 head1RowDelayArray[64];
|
||||
static quint8 fullColRowDelayArray[64];
|
||||
|
||||
quint8 adjDACParameter[64];
|
||||
static quint8 adjDACParameter[64];
|
||||
|
||||
quint8 matchTotalTableDACArray[15][64];
|
||||
quint8* matchOneDACArray = &matchTotalTableDACArray[0][0];
|
||||
quint8* matchTwoDACArray = &matchTotalTableDACArray[1][0];
|
||||
quint8* matchThreeDACArray = &matchTotalTableDACArray[3][0];
|
||||
quint8* matchFourDACArray = &matchTotalTableDACArray[6][0];
|
||||
quint8* matchFiveDACArray = &matchTotalTableDACArray[10][0];
|
||||
static quint16 matchTotalTableDACArray[15][64];
|
||||
quint16* matchOneDACArray = &matchTotalTableDACArray[0][0];
|
||||
quint16* matchTwoDACArray = &matchTotalTableDACArray[1][0];
|
||||
quint16* matchThreeDACArray = &matchTotalTableDACArray[3][0];
|
||||
quint16* matchFourDACArray = &matchTotalTableDACArray[6][0];
|
||||
quint16* matchFiveDACArray = &matchTotalTableDACArray[10][0];
|
||||
|
||||
quint8 matchPrevious1DotDACArray[48];
|
||||
quint8 matchPrevious2DotDACArray[48];
|
||||
quint8 matchPrevious3DotDACArray[48];
|
||||
quint8 matchPrevious4DotDACArray[48];
|
||||
quint8 matchPrevious5DotDACArray[48];
|
||||
quint8 matchGapDACArray[64][5];
|
||||
quint8 matchP3dotGapDACArray[64][5];
|
||||
static quint8 matchPrevious1DotDACArray[48];
|
||||
static quint8 matchPrevious2DotDACArray[48];
|
||||
static quint8 matchPrevious3DotDACArray[48];
|
||||
static quint8 matchPrevious4DotDACArray[48];
|
||||
static quint8 matchPrevious5DotDACArray[48];
|
||||
static quint8 matchGapDACArray[64][5];
|
||||
static quint8 matchP3dotGapDACArray[64][5];
|
||||
|
||||
memset(matchFullDACArray, 0, sizeof(matchFullDACArray));
|
||||
memset(matchStealDACArray, 0, sizeof(matchStealDACArray));
|
||||
memset(matchContinousDACArray, 0, sizeof(matchContinousDACArray));
|
||||
memset(rowDelayArray, 0, sizeof(rowDelayArray));
|
||||
memset(head1RowDelayArray, 0, sizeof(head1RowDelayArray));
|
||||
memset(fullColRowDelayArray, 0, sizeof(fullColRowDelayArray));
|
||||
|
||||
memset(matchTotalTableDACArray, 0, sizeof(matchTotalTableDACArray));
|
||||
|
||||
@@ -2871,6 +2816,8 @@ void DevOp::writeDacValue2Fpga_No73()
|
||||
memset(matchP3dotGapDACArray, 0, sizeof(matchP3dotGapDACArray));
|
||||
memset(adjDACParameter, 0, sizeof(adjDACParameter));
|
||||
|
||||
int baseDacScale = sysPara->para.endVoltage;
|
||||
|
||||
QFile file("./conf/full_dac_raw.txt");
|
||||
file.open(QIODevice::WriteOnly);
|
||||
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";
|
||||
}
|
||||
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.open(QIODevice::WriteOnly);
|
||||
for (int i = 0; i < 48; i++)
|
||||
{
|
||||
QTextStream out(&file);
|
||||
*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;
|
||||
}
|
||||
file.close();
|
||||
@@ -3065,27 +3023,92 @@ void DevOp::writeDacValue2Fpga_No73()
|
||||
|
||||
file.setFileName("./conf/general_dac_parameter.txt");
|
||||
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);
|
||||
out << adjDACParameter[i];
|
||||
out << "\n";
|
||||
}
|
||||
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(0xB380, (unsigned char *)(matchContinousDACArray), sizeof (matchContinousDACArray));
|
||||
|
||||
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(0xBC00, (unsigned char *)(matchP3dotGapDACArray[0]), sizeof (matchP3dotGapDACArray));
|
||||
fpgaWr(0xBE00, (unsigned char *)(matchGapDACArray[0]), sizeof (matchGapDACArray));
|
||||
fpgaWr(0xA600, (unsigned char *)(matchTotalTableDACArray[0]), sizeof (matchTotalTableDACArray));
|
||||
// fpgaWr(0xA600, (unsigned char *)(sysPara->voltePara_No73.pixel_1_table), sizeof(sysPara->voltePara_No73.pixel_1_table));
|
||||
|
||||
//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(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];
|
||||
@@ -3270,6 +3293,7 @@ void DevOp::printCtrl2(int cmd){
|
||||
unsigned int DevOp::readFpgaVersionNum(){
|
||||
fpgaRd(0x00EC,&sysPara->status.FPGAChipType,1);
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user