hlp:桂林国际齿轮泵代码
This commit is contained in:
@@ -0,0 +1,452 @@
|
||||
/*
|
||||
* DevOp.h
|
||||
*
|
||||
* Created on: Jun 25, 2013
|
||||
* Author: yiyu
|
||||
* QQ:1036184468
|
||||
* Descriptoin:
|
||||
|
||||
*/
|
||||
|
||||
#ifndef DEVOP_H_
|
||||
#define DEVOP_H_
|
||||
|
||||
#define JETV1 1
|
||||
#define JETV2 2
|
||||
#define JETV3 3 // EP3C10F144
|
||||
#define JETV23 4 // V5,V4主板编号均为4; V6没有正式投入使用
|
||||
#define JETV7 7 // EP4CE15F144, ARM 335X
|
||||
#define PRODUCT_VERSION(ver) ((ver>>13) & 0x7)
|
||||
|
||||
class SysPara;
|
||||
|
||||
#include <stdio.h>
|
||||
#include <QString>
|
||||
#include "myinclude.h"
|
||||
#include <QObject>
|
||||
#include <QQueue>
|
||||
#include <QMetaType>
|
||||
#include <QThread>
|
||||
#include <QMutex>
|
||||
#include <QReadWriteLock>
|
||||
|
||||
#ifdef UART2
|
||||
#include "posix_qextserialport.h"
|
||||
#endif
|
||||
#ifdef UART1
|
||||
#include "posix_qextserialport.h"
|
||||
#endif
|
||||
#define DisTraceMsg() printf("###############TRACE,Line:%d File:%s Fun:%s\n",__LINE__,__FILE__,__FUNCTION__);
|
||||
#define DisWarnmsg() printf("~~~~~~~~~~~~~~~WARN,Line:%d File:%s Fun:%s\n",__LINE__,__FILE__,__FUNCTION__);
|
||||
#define DisErrorMsg() printf("!!!!!!!!!!!!!!!ERROR! ,Line:%d File:%s Fun:%s\n",__LINE__,__FILE__,__FUNCTION__);
|
||||
|
||||
#define PRINT_CTRL_STOP 0
|
||||
#define PRINT_CTRL_START 1
|
||||
#define PRINT_CTRL_PAUSE 2
|
||||
#define PRINT_CTRL_DAC_DISABLE 3
|
||||
#define PRINT_CTRL_DAC_ENABLE 4
|
||||
#define PRINT_CTRL_STOPSYNCNT 5
|
||||
|
||||
|
||||
#define MAX_FPGA_DAC_VALUE_FOR_NEW ((1<<12)*95/100) //由于硬件原因,当DAC大于一定值后,电压不再变化,所以做一下限制
|
||||
#define MAX_FPGA_DAC_VALUE_FOR_V1 (255) //老板子的最大值到256
|
||||
#define MAX_FPGA_DAC_VALUE ((PRODUCT_VERSION(sysPara->status.fpgaVersionNum) == JETV1)?MAX_FPGA_DAC_VALUE_FOR_V1:MAX_FPGA_DAC_VALUE_FOR_NEW)
|
||||
|
||||
#define MAX_POINT_DISTANCE_ADJUST_VAL (1<<10) //点距微调的最大值
|
||||
|
||||
#define MAX_MOTOR_RUN_CURRENT 600
|
||||
#define MIN_MOTOR_RUN_CURRENT 80
|
||||
|
||||
#define MAX_RECLAIM_BLOCK_CNT 5 //500ms
|
||||
|
||||
#define MAX_RELEASE_VALVE_DELAY_CNT 4
|
||||
/*所有警告都是高电平警告*/
|
||||
#define WARN_STATUS_INK_SWINT (1<<7) /*墨线开头,来自喷头,必须开的时候才能打印,关的时候为1,开的时候为0*/
|
||||
#define WARN_STATUS_POWER_MON (1<<6) //高压报警
|
||||
#define WARN_STATUS_RECYCLE_FAULT (1<<5) //高电平表示有故障
|
||||
#define WARN_STATUS_INK_WARN (1<<4)
|
||||
#define WARN_STATUS_SOLV_WARN (1<<3)
|
||||
#define WARN_STATUS_SUMP_WARN (1<<2) //墨水渗漏
|
||||
#define WARN_STATUS_HDINT (1<<1) /*喷头盖,盖上为0,否则为1,必须盖上才能打印,电磁铁有正反面*/
|
||||
#define WARN_STATUS_VISCOTITY_MEASURE_READY (1<<0) // 球已经到上位等灯
|
||||
|
||||
|
||||
#define FPGA_SYS_HZ 100000000
|
||||
|
||||
#define MAX_WR_MEM_SIZE (1<<16) //写空间最大地址范围
|
||||
#define MAX_WR_MEM_SIZE_MASK (MAX_WR_MEM_SIZE - 1)
|
||||
#define MAX_RD_MEM_SIZE (1<<9) //读空间最大地址范围
|
||||
#define MAX_RD_MEM_SIZE_MASK (MAX_RD_MEM_SIZE - 1)
|
||||
|
||||
/* am335x core board control pwm output */
|
||||
#define VISCO_PUMP_REQUEST "echo 1 > /sys/class/pwm/ecap.2/request"
|
||||
#define VISCO_PUMP_RELEASE "echo 0 > /sys/class/pwm/ecap.2/request"
|
||||
#define VISCO_PUMP_RUN "echo 1 > /sys/class/pwm/ecap.2/run"
|
||||
#define VISCO_PUMP_STOP "echo 0 > /sys/class/pwm/ecap.2/run"
|
||||
#define VISCO_PUMP_50Hz "echo 50 > /sys/class/pwm/ecap.2/period_freq"
|
||||
#define VISCO_PUMP_50P "echo 50 > /sys/class/pwm/ecap.2/duty_percent"
|
||||
#define VISCO_PUMP_HIGH "echo 1 > /sys/class/pwm/ecap.2/polarity"
|
||||
#define VISCO_PUMP_LOW "echo 0 > /sys/class/pwm/ecap.2/polarity"
|
||||
|
||||
#define SUCTION_PUMP_REQUEST "echo 1 > /sys/class/pwm/ehrpwm.0:1/request"
|
||||
#define SUCTION_PUMP_RELEASE "echo 0 > /sys/class/pwm/ehrpwm.0:1/request"
|
||||
#define SUCTION_PUMP_RUN "echo 1 > /sys/class/pwm/ehrpwm.0:1/run"
|
||||
#define SUCTION_PUMP_STOP "echo 0 > /sys/class/pwm/ehrpwm.0:1/run"
|
||||
#define SUCTION_PUMP_HIGH "echo 1 > /sys/class/pwm/ehrpwm.0:1/polarity"
|
||||
#define SUCTION_PUMP_LOW "echo 0 > /sys/class/pwm/ehrpwm.0:1/polarity"
|
||||
#define SUCTION_PUMP_90P "echo 90 > /sys/class/pwm/ehrpwm.0:1/duty_percent"
|
||||
#define SUCTION_PUMP_12000Hz "echo 12000 > /sys/class/pwm/ehrpwm.0:1/period_freq"
|
||||
|
||||
#ifdef __ADC_INPUT__
|
||||
#define BOART_TEMP_DEVICE "/sys/bus/iio/devices/iio:device0/in_voltage4_raw"
|
||||
#define INK_TEMP_DEVICE "/sys/bus/iio/devices/iio:device0/in_voltage5_raw"
|
||||
#define REVERSE_TEMP_DEVICE "/sys/bus/iio/devices/iio:device0/in_voltage6_raw"
|
||||
#endif
|
||||
|
||||
#ifdef UART2
|
||||
class UartThread;
|
||||
typedef struct {
|
||||
char mode;
|
||||
int addr;
|
||||
int len;
|
||||
char flag_m;
|
||||
QByteArray Buf;
|
||||
}rec_cmd_t;
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef UART1
|
||||
class UartThread1;
|
||||
typedef struct {
|
||||
char mode;
|
||||
int addr;
|
||||
int len;
|
||||
char flag_m;
|
||||
QByteArray Buf;
|
||||
}rec_cmd_t1;
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* 请不要直接初始化此函数,如果需要,请通过SysPara的devOP来访问此类
|
||||
* */
|
||||
class DevOp : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public :
|
||||
DevOp(SysPara * sysPara);
|
||||
~DevOp();
|
||||
|
||||
void set_totalSynPulseNum(bool wren);// 设置可变长度
|
||||
void TTYS0ToConsole();
|
||||
void WriteMoterPump(void);
|
||||
void controlReleaseValve(bool openFlag);
|
||||
void controlMixValve(bool openFlag);
|
||||
void controlInkValve(bool openFlag); //控制墨线,即供墨阀
|
||||
void controlCycleValve(bool openFlag);
|
||||
void controlCompressPump(bool openFlag);
|
||||
void controlViscosityPump(bool openFlag);
|
||||
void controlMainInkPump(bool openFlag);
|
||||
void controlReclaimPump(bool openFlag,bool fullSpeed);
|
||||
void controlReclaimPump2();
|
||||
void controlInkValvePWM(bool openFlag);
|
||||
void controlInkValvePWM2();
|
||||
void controlHeater(bool openFlag);
|
||||
void controlBeeper(bool openFlag);
|
||||
|
||||
void controlReclaimTankOpen(bool enableFlag);
|
||||
void controlReclaimTankClose(bool enableFlag);
|
||||
|
||||
void powerOff(void);
|
||||
|
||||
bool isReleaseValveOpen();
|
||||
bool isMixValveOpen();
|
||||
bool isInkValveOpen();
|
||||
bool isInkValveOpen1();
|
||||
bool isCycleValveOpen();
|
||||
bool isCompressPumpOpen();
|
||||
bool isViscosityPumpOpen();
|
||||
bool isMainInkPumpOpen();
|
||||
bool isReclaimPumpOpen();
|
||||
|
||||
bool isReclaimTankOpenEnable();
|
||||
bool isReclaimTankCloseEnable();
|
||||
bool isBeeperEnable();
|
||||
bool isHearterEnable();
|
||||
|
||||
int writeFpgaPrintPara(bool ignoreWarn = false);
|
||||
void readFgaStatus(void);
|
||||
void writeDacValue2Fpga();
|
||||
|
||||
void printCtrl(int cmd);
|
||||
void ReadCnt1GroupStatus(void);void ReadCnt2GroupStatus(void);
|
||||
void writeCnt1GroupSetting(bool bCntByGroupEnable);void writeCnt2GroupSetting(bool bCntByGroupEnable);
|
||||
void writeFpgaCalandar(bool Enable);
|
||||
void writeFpgaVariCtrl();
|
||||
void readCalandarDat();
|
||||
void resumeFault();
|
||||
void highVoltageCtrl(int val);
|
||||
void maxHighVoltageDACCtrl(int val);
|
||||
void setPhaseByHand(int val);
|
||||
void readPhaseDetectHighTm();
|
||||
void setPhaseDetectVoltageDutyCycle(int duty);
|
||||
void setBlickLightPeriod(int value);
|
||||
void setOscillatorVoltage(int value);
|
||||
void setDivideRatio(int value);
|
||||
void setLastLineEndPointFixedValue(int value);
|
||||
// void checkAuthorization(QString str);
|
||||
|
||||
void mainInkCtrl();
|
||||
void pumpValveCtrl(int viscosityAdjustByTemp=0);
|
||||
void clearProductCnt(unsigned int mode);
|
||||
unsigned readFpgaVersionNum(void);
|
||||
void fpgaWr(int addr,unsigned char*dat,int len);
|
||||
void fpgaRd(int addr,unsigned char*dat,int len);
|
||||
void fpgaWrD(int addr,unsigned int dat,int len);
|
||||
void fpgaResetWarning(char mode);
|
||||
bool fpgaDevOpenFlag;
|
||||
|
||||
unsigned char memWrMap[MAX_WR_MEM_SIZE];
|
||||
unsigned char memRdMap[MAX_RD_MEM_SIZE];
|
||||
unsigned char color_flag;
|
||||
void controlRedLight(bool openFlag);
|
||||
void controlGreenLight(bool openFlag);
|
||||
void controlYellowLight(bool openFlag);
|
||||
void controlFan1(bool openFlag);
|
||||
void controlFan2(bool openFlag);
|
||||
|
||||
bool isGreenLightEnable();
|
||||
bool isYellowLightEnable();
|
||||
bool isRedLightEnable();
|
||||
void readbuilDat();
|
||||
void readPrintDataXor();
|
||||
void readSyncCounterAtZero();
|
||||
void printCtrl2(int cmd);
|
||||
void ReadSomeDataForLostPrint(void);
|
||||
|
||||
#ifdef __STC_POWER__
|
||||
int Heartbeat(char bPowerOn);
|
||||
int setWakeUpTimer(char wakeUpTime_day);
|
||||
int getPowerSource(void);
|
||||
Posix_QextSerialPort *comForPower;
|
||||
void comForPower_init();
|
||||
#endif
|
||||
#ifdef __RFID_CARD
|
||||
Posix_QextSerialPort *comForRFID;
|
||||
void comForRFID_init();
|
||||
int comReadRFID_data();
|
||||
int comWriteRFID_data();
|
||||
int setRFIDCarKey(void);
|
||||
int setRFIDReaderKey(void);
|
||||
int setRFIDReaderOriginalKey(void);
|
||||
int setRFIDReaderWorkMode(void);
|
||||
int receiveReadRFID_data(void);
|
||||
int queryReadRFID_address(void);
|
||||
QString strRevdata;
|
||||
bool noticeICReaderError;
|
||||
bool setICReaderModeFlag;
|
||||
uint checkCardIntervalTime;
|
||||
QReadWriteLock CardDataRwLock;
|
||||
#endif
|
||||
|
||||
#ifdef __ADC_INPUT__
|
||||
qint8 GetTemp(QString ainFile, quint8 *pTemp);
|
||||
#endif
|
||||
void Read_RanddomFromFpga(); // 读FPGARANDFIFO
|
||||
void RandTxtBakup(char ok);
|
||||
// 上海外接屏功能
|
||||
int BigDisp(unsigned char Module[], unsigned char Wirediameter[]);
|
||||
int RecDim();//unsigned char buf[], unsigned char Dim[]);
|
||||
int SmallDisp(unsigned char Module[], unsigned char Wirediameter[]);
|
||||
void DatToDisp(char FileName[], bool big);
|
||||
void DatToDisp2();
|
||||
void showData(QByteArray dat);
|
||||
void uart2Init();
|
||||
|
||||
#ifdef UART2
|
||||
Posix_QextSerialPort *myCom;
|
||||
// MySerialPort * myserialport;
|
||||
QByteArray recData;
|
||||
QQueue<QByteArray> recQueue;
|
||||
int recLen;
|
||||
void stopReceiving();
|
||||
bool isReceivingEnable() const;
|
||||
void disableReceiving();
|
||||
void enableReceiving();
|
||||
|
||||
uchar sendData(const QByteArray &data);
|
||||
|
||||
void stopSending();
|
||||
bool isSendingEnable() const;
|
||||
void disableSending();
|
||||
void enableSending();
|
||||
uchar uartThreadStart();
|
||||
|
||||
//void printCtrl2(int cmd);
|
||||
int recUart2();
|
||||
|
||||
public slots:
|
||||
void readCom(char mode,QByteArray recData,int addr);
|
||||
void sendCom(QString s);
|
||||
void sendCom(char *buf, int len);
|
||||
|
||||
signals:
|
||||
void dataReceived(char,const QByteArray &dataReceived,int);
|
||||
#endif
|
||||
|
||||
#ifdef UART1
|
||||
Posix_QextSerialPort *myCom1;
|
||||
// MySerialPort * myserialport;
|
||||
QByteArray recData1;
|
||||
QQueue<QByteArray> recQueue1;
|
||||
int recLen1;
|
||||
void stopReceiving();
|
||||
bool isReceivingEnable() const;
|
||||
void disableReceiving();
|
||||
void enableReceiving();
|
||||
|
||||
uchar sendData(const QByteArray &data);
|
||||
|
||||
void stopSending();
|
||||
bool isSendingEnable() const;
|
||||
void disableSending();
|
||||
void enableSending();
|
||||
uchar uartThreadStart();
|
||||
//void printCtrl2(int cmd);
|
||||
//void TTYS0ToConsole();
|
||||
QByteArray data,dat_r,rec_r;
|
||||
QByteArray byteArray;
|
||||
rec_cmd_t1 rec_cmd;
|
||||
|
||||
public slots:
|
||||
void readCom(char mode,QByteArray recData,int addr);
|
||||
void sendCom(QString s);
|
||||
void sendCom(char *buf, int len);
|
||||
void readUart1();
|
||||
signals:
|
||||
void dataReceived(char,const QByteArray &dataReceived,int);
|
||||
#endif
|
||||
|
||||
private:
|
||||
int WdgttyUsb0Cnt;
|
||||
bool releaseValveOpenFlag;
|
||||
bool mixValveFlag;
|
||||
bool inkValveOpenFlag;
|
||||
bool inkValveOpenFlag1;
|
||||
bool cycleValveOpenFlag;
|
||||
bool compressPumpOpenFlag;
|
||||
bool viscosityPumpOpenFlag;
|
||||
bool mainInkPumpOpenFlag;
|
||||
bool reclaimPumpOpenFlag;
|
||||
|
||||
bool reclaimTankOpenEnableFlag;
|
||||
bool reclaimTankCloseEnableFlag;
|
||||
bool beeperOnFlag;
|
||||
|
||||
bool RedLightOnFlag;
|
||||
bool GreenLightOnFlag;
|
||||
bool YellowLightOnFlag;
|
||||
|
||||
bool heaterOnFlag;
|
||||
int com2;
|
||||
int pwm_sp;
|
||||
int pwm_fd;
|
||||
int Interrupt_fd;
|
||||
int iocontrl;
|
||||
int DAdataout;
|
||||
int pwm_ink;
|
||||
int adc_fd;
|
||||
#ifdef __VX_OSC_VOL__
|
||||
qint8 OscillatorVoltage[100];//VX 电路不一样,所以需要重新调整
|
||||
#endif
|
||||
SysPara *sysPara;
|
||||
|
||||
|
||||
unsigned int fpgaRdD(int addr,int len);
|
||||
|
||||
// 0xA451--- 为什么ARM的顺序相反呢?
|
||||
typedef struct {
|
||||
unsigned int varDigitalNum:4; // 数字的个数
|
||||
unsigned int charRamBaseAddr:12; // 基址
|
||||
unsigned int colOffset:16; // 列偏移
|
||||
unsigned int horizonWidth:9;//字模宽度
|
||||
unsigned int verticalOffset:6; // 行偏移
|
||||
unsigned int charRowNum:6; // 每个字符占行个数
|
||||
unsigned int charColNum:6; // 每个字符占列个数
|
||||
unsigned int varTypeSel:4;
|
||||
unsigned int dummy:1;
|
||||
}reg_var_print_ctrl_t;
|
||||
|
||||
#ifdef UART2
|
||||
UartThread *uartThread;
|
||||
bool sendingEnable;
|
||||
bool receivingEnable;
|
||||
// Variables to restore the previous state to a reopening of the SerialPort
|
||||
//bool closeCalled;
|
||||
//bool saveStateSendingEnable;
|
||||
//bool saveStateReceivingEnable;
|
||||
bool saveStateReceiveData;
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef UART1
|
||||
UartThread1 *uartThread;
|
||||
bool sendingEnable;
|
||||
bool receivingEnable;
|
||||
// Variables to restore the previous state to a reopening of the SerialPort
|
||||
//bool closeCalled;
|
||||
//bool saveStateSendingEnable;
|
||||
//bool saveStateReceivingEnable;
|
||||
bool saveStateReceiveData;
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
|
||||
#ifdef UART2
|
||||
class UartThread : public QThread
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
UartThread(Posix_QextSerialPort &adrPort);
|
||||
~UartThread();
|
||||
void stopReceiving();
|
||||
QQueue<QByteArray> dataToSend;
|
||||
QMutex mutexSend;
|
||||
void stopSending();
|
||||
void addDataToSend(const QByteArray &dataToAdd);
|
||||
protected:
|
||||
void run();
|
||||
signals:
|
||||
void dataReceived(char,const QByteArray &dataReceived,int);
|
||||
private :
|
||||
Posix_QextSerialPort &port;
|
||||
QMutex mutexReceive;
|
||||
bool stopped;
|
||||
rec_cmd_t rec_cmd;
|
||||
};
|
||||
#endif
|
||||
#ifdef UART1
|
||||
class UartThread1 : public QThread
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
UartThread1(Posix_QextSerialPort &adrPort);
|
||||
~UartThread1();
|
||||
void stopReceiving();
|
||||
QQueue<QByteArray> dataToSend;
|
||||
QMutex mutexSend;
|
||||
void stopSending();
|
||||
void addDataToSend(const QByteArray &dataToAdd);
|
||||
protected:
|
||||
void run();
|
||||
signals:
|
||||
void dataReceived(char,const QByteArray &dataReceived,int);
|
||||
private :
|
||||
Posix_QextSerialPort &port;
|
||||
QMutex mutexReceive;
|
||||
bool stopped;
|
||||
rec_cmd_t1 rec_cmd;
|
||||
};
|
||||
#endif
|
||||
#endif /* DEVOP_H_ */
|
||||
@@ -0,0 +1,67 @@
|
||||
#ifndef SSYSTEMSETTING_H
|
||||
#define SSYSTEMSETTING_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QProgressBar>
|
||||
#include "ParaSettingUI.h"
|
||||
#include "TimeSettingDialog.h"
|
||||
#include <QTimer>
|
||||
#include "DialogAuthorization.h"
|
||||
#include "dlgmutilanguage.h"
|
||||
|
||||
#define SYSMIMA
|
||||
namespace Ui {
|
||||
class SystemSetting;
|
||||
}
|
||||
|
||||
class SystemSetting : public QWidget,public ParaSettingUI
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit SystemSetting(QWidget *parent = 0);
|
||||
~SystemSetting();
|
||||
|
||||
void updateSysParaToUI(); //重载
|
||||
void applyUIPara(); //重载
|
||||
void updateSysStatusToUI(); //重载
|
||||
QProgressBar progressBar;
|
||||
void updateReclaimTime(int time);
|
||||
void updateViscosityAdjust(int offset);
|
||||
void updateAuthorization(int auth);
|
||||
void setSpinBoxPressureMaxValue(int pressureVal);
|
||||
void SystemSettingLog();
|
||||
|
||||
Q_SIGNALS:
|
||||
void changeEditMode(int);
|
||||
void setRunStatus(QString);
|
||||
private slots:
|
||||
void setInterfaceMode();
|
||||
void SystemupdateSysParaToUI();
|
||||
|
||||
void on_spinBoxReclaimPumpPower_valueChanged(int arg1);
|
||||
void on_pushButtonCleanUP_pressed();
|
||||
void on_pushButtonHighVoltageData_pressed();
|
||||
void on_pushButtonApply_pressed();
|
||||
void on_pushButtonSearchBestOscillatorVoltage_pressed();
|
||||
void on_pushButtonSearchBestOscillatorFreq_pressed();
|
||||
void timerHandler();
|
||||
void on_spinBoxOscillatorVoltage_valueChanged(int arg1);
|
||||
void on_pushButtonInterFace_pressed();
|
||||
void ondialogAuthorizationAccepted();
|
||||
void onCleanUPNow();
|
||||
void timerHandler2();
|
||||
|
||||
|
||||
private:
|
||||
Ui::SystemSetting *ui;
|
||||
DlgMutiLanguage dlgLanguage;
|
||||
QTimer *timer,*timer2, *SetinkcloseCountTimer;
|
||||
unsigned char enCleanUpAppendFlag; // 0空闲,1关开回收槽,2手动,3清洗,4恢复,5停止,6
|
||||
bool r_PumpValveControledByHand;
|
||||
#ifdef SYSMIMA
|
||||
DialogAuthorization *dialogUpateMm;
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif // SSYSTEMSETTING_H
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,897 @@
|
||||
#include "SystemSetting.h"
|
||||
#include "ui_systemsetting.h"
|
||||
#include <QFileDialog>
|
||||
#include <QList>
|
||||
#include <QUrl>
|
||||
#include <QMessageBox>
|
||||
#include <QProcess>
|
||||
#include <QDebug>
|
||||
#include <QTime>
|
||||
#include <QDate>
|
||||
#include "LogInfo.h"
|
||||
#include "myinclude.h"
|
||||
#include "QInputDialog"
|
||||
#include "dlgmutilanguage.h"
|
||||
//#define FINDVOL
|
||||
#include "InputMethod.h"
|
||||
static int detectValidHVCnt = 0;
|
||||
SystemSetting::SystemSetting(QWidget *parent) :
|
||||
QWidget(parent),progressBar(0),
|
||||
ui(new Ui::SystemSetting)
|
||||
{
|
||||
|
||||
ui->setupUi(this);
|
||||
progressBar.setGeometry(200,200,300,40); //将其放在最中间
|
||||
progressBar.hide();
|
||||
timer = new QTimer();
|
||||
connect(timer, SIGNAL(timeout()), this, SLOT(timerHandler()));
|
||||
timer2 = new QTimer();
|
||||
connect(timer2, SIGNAL(timeout()), this, SLOT(timerHandler2()));
|
||||
timerAuto = new QTimer();
|
||||
connect(timerAuto,SIGNAL(timeout()),this,SLOT(autoControlPressure()));
|
||||
|
||||
|
||||
//setInterfaceMode();
|
||||
|
||||
enCleanUpAppendFlag=0; // 0空闲,1关开回收槽,2手动,3清洗,4恢复,5停止,6
|
||||
//ui->label_PulseCounterZero->hide();//隐藏界面无用信息
|
||||
//ui->labelPulseCounterAtZero->hide();//隐藏界面无用信息
|
||||
#ifdef SYSMIMA
|
||||
dialogUpateMm =new DialogAuthorization;
|
||||
connect(dialogUpateMm,SIGNAL(accepted()),this,SLOT(ondialogAuthorizationAccepted()));
|
||||
#endif
|
||||
// ui->pushButtonCleanUP->hide();
|
||||
}
|
||||
|
||||
SystemSetting::~SystemSetting()
|
||||
{
|
||||
delete ui;
|
||||
delete timer;
|
||||
delete timer2;
|
||||
|
||||
}
|
||||
|
||||
void SystemSetting::SystemupdateSysParaToUI(){
|
||||
updateSysParaToUI();
|
||||
}
|
||||
|
||||
void SystemSetting::on_pushButtonApply_pressed()
|
||||
{
|
||||
applyUIPara();
|
||||
SystemSettingLog();
|
||||
}
|
||||
|
||||
void SystemSetting::SystemSettingLog(){
|
||||
|
||||
qDebug()<<QString("SystemSetting 晶振电压(%): %1").arg(ui->spinBoxOscillatorVoltage->value());
|
||||
qDebug()<<QString("SystemSetting 高压包容差: %1").arg(ui->spinBoxHighVoltageLevel->value());
|
||||
qDebug()<<QString("SystemSetting 回收泵力度(%): %1").arg(ui->spinBoxReclaimPumpPower->value());
|
||||
qDebug()<<QString("SystemSetting 粘度校正(%): %1").arg(ui->ViscosityAdujstSelect->currentIndex());
|
||||
qDebug()<<QString("SystemSetting 粘度泵动作间隔(秒): %1").arg(ui->spinBoxPumpInterval->value());
|
||||
qDebug()<<QString("SystemSetting 回收槽开关时间: %1").arg(ui->spinBoxReclaimTankTime->value());
|
||||
qDebug()<<QString("SystemSetting 隔膜位置: %1").arg(ui->spinBoxSeptalPostion->value());
|
||||
qDebug()<<QString("SystemSetting 隔膜位置偏移:: %1").arg(ui->comboBoxDiaphramOffset->currentIndex());
|
||||
qDebug()<<QString("SystemSetting 信息编辑模式: %1").arg(ui->comboBoxEditMode->currentIndex());
|
||||
qDebug()<<QString("SystemSetting 压力:: %1").arg(ui->spinBoxPressure->value());
|
||||
qDebug()<<QString("SystemSetting 粘度: %1").arg(ui->spinBoxVIscosity->value());
|
||||
qDebug()<<QString("SystemSetting 喷头温度: %1").arg(ui->spinBoxTemperature->value());
|
||||
qDebug()<<QString("SystemSetting 晶振频率: %1").arg(ui->comboBoxOscillatorFreq->currentIndex());
|
||||
qDebug()<<QString("SystemSetting 频率修正: %1").arg(ui->spinBoxOscillatorFreqFix->value());
|
||||
qDebug()<<QString("SystemSetting 喷嘴直径: %1").arg(ui->comboBoxDiameter->currentIndex());
|
||||
|
||||
}
|
||||
|
||||
|
||||
void SystemSetting::updateSysParaToUI(){
|
||||
if(sysPara){
|
||||
ui->spinBoxHighVoltageLevel->setValue(sysPara->para.highVoltageLevel);
|
||||
ui->spinBoxOscillatorVoltage->setValue((sysPara->para.oscillatorVoltage));
|
||||
ui->spinBoxPressure->setValue(sysPara->para.pressure);
|
||||
ui->spinBoxPumpInterval->setValue(sysPara->para.viscosityPumpInterval);
|
||||
ui->spinBoxReclaimPumpPower->setValue(sysPara->para.reclaimPumpPWMWidth);
|
||||
ui->spinBoxReclaimTankTime->setValue(sysPara->para.reclaimTankTime);
|
||||
ui->spinBoxTemperature->setValue(sysPara->para.temperature);
|
||||
ui->spinBoxFanTemperature->setValue(sysPara->para.FanTemperature);
|
||||
ui->spinBoxVIscosity->setValue( sysPara->para.viscosity);
|
||||
ui->ViscosityAdujstSelect->setCurrentIndex(sysPara->para.viscosityAdjust);
|
||||
ui->comboBoxOscillatorFreq->setCurrentIndex(sysPara->para.oscillatoFreq);
|
||||
ui->spinBoxOscillatorFreqFix->setValue(sysPara->para.oscillatorFreqFix);
|
||||
ui->spinBoxSeptalPostion->setValue(sysPara->para.septalPostion);
|
||||
ui->comboBoxDiameter->setCurrentIndex(sysPara->para.diameter);
|
||||
ui->comboBoxDiaphramOffset->setCurrentIndex(sysPara->para.diaphramOffset/5-1);
|
||||
|
||||
if(sysPara->para.EditMode>SCENE)
|
||||
sysPara->para.EditMode=TXTFILE;
|
||||
ui->comboBoxEditMode->setCurrentIndex(sysPara->para.EditMode);
|
||||
}
|
||||
}
|
||||
|
||||
int convertFreq(int index){
|
||||
// qDebug()<<"index="<<index;
|
||||
switch(index){
|
||||
case 0:return 64000;break; //64k,pwm波,占空比50%
|
||||
case 1:return 76000;break; //76k
|
||||
// case 2:return 83000;break; //83k
|
||||
case 2:return 96000;break; //96k
|
||||
case 3:return 128000;break; //128k
|
||||
case 4:return 145000;break; //145k
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern bool gearPumpRunNormalFlag;
|
||||
|
||||
void SystemSetting::applyUIPara(){
|
||||
if(sysPara){
|
||||
sysPara->para.highVoltageLevel = ui->spinBoxHighVoltageLevel->value();
|
||||
sysPara->para.oscillatorVoltage = ui->spinBoxOscillatorVoltage->value();
|
||||
sysPara->para.pressure = ui->spinBoxPressure->value();
|
||||
gearPumpRunNormalFlag = false;//重新设置压力标志设置
|
||||
sysPara->para.viscosityPumpInterval = ui->spinBoxPumpInterval->value();
|
||||
sysPara->para.reclaimPumpPWMWidth = ui->spinBoxReclaimPumpPower->value();
|
||||
sysPara->para.reclaimTankTime = ui->spinBoxReclaimTankTime->value();
|
||||
sysPara->para.temperature = ui->spinBoxTemperature->value();
|
||||
sysPara->para.viscosity = ui->spinBoxVIscosity->value();
|
||||
//sysPara->para.viscosityAdjust = ui->spinBoxViscosityAdjust->value();
|
||||
sysPara->para.viscosityAdjust = ui->ViscosityAdujstSelect->currentIndex();
|
||||
sysPara->para.oscillatoFreq = ui->comboBoxOscillatorFreq->currentIndex();
|
||||
sysPara->para.oscillatorFreqFix = ui->spinBoxOscillatorFreqFix->value();
|
||||
sysPara->para.EditMode = ui->comboBoxEditMode->currentIndex();
|
||||
sysPara->para.diameter = ui->comboBoxDiameter->currentIndex();// qDebug()<<"EditMode1"<<sysPara->para.EditMode;
|
||||
int freq = sysPara->para.oscillatorFreqFix+ convertFreq(sysPara->para.oscillatoFreq);
|
||||
|
||||
if(freq > 0){
|
||||
sysPara->para.divideRatio = (FPGA_SYS_HZ/freq)/2;
|
||||
}
|
||||
else {
|
||||
QMessageBox::critical(this,tr("错误"),tr("实际频率不能为%1").arg(freq));
|
||||
}
|
||||
sysPara->para.FanTemperature = ui->spinBoxFanTemperature->value();
|
||||
sysPara->para.septalPostion = ui->spinBoxSeptalPostion->value();
|
||||
quint16 diaphramOffset = 5*(ui->comboBoxDiaphramOffset->currentIndex()+1);
|
||||
sysPara->para.diaphramOffset = diaphramOffset;
|
||||
//sysPara->para.mixValveisNewVersion = ui->radioButtonMixValveNewVersion->isChecked();
|
||||
if(sysPara->devOp->writeFpgaPrintPara() != -1){
|
||||
QMessageBox::information(this,tr("提示"),tr("应用成功"));
|
||||
}
|
||||
emit changeEditMode(sysPara->para.EditMode);
|
||||
//qDebug()<<"EditMode"<<sysPara->para.EditMode;
|
||||
}
|
||||
}
|
||||
|
||||
void SystemSetting::updateSysStatusToUI(){
|
||||
if(sysPara){
|
||||
ui->pushButtonHighVoltageData->setEnabled( sysPara->status.currReclaimTankPos <5 );
|
||||
//ui->pushButtonHighVoltageData->setEnabled( !sysPara->status.isPrinting);
|
||||
ui->spinBoxPressure->setEnabled( !sysPara->status.isPrinting);
|
||||
|
||||
ui->labelHighVoltageValue->setText(QString::number(sysPara->status.HV_DETOUT) + "/" + QString::number(sysPara->para.maxHighVoltageDAC));
|
||||
//ui->labelHighVoltageValue->setText(QString::number(sysPara->status.HV_DETOUT) + "/" + "600");//FPGA那边已固定600
|
||||
ui->labelMotorCurrent->setText(QString::number(sysPara->status.MOTOR_ISEN));
|
||||
ui->labelPressure->setText(QString::number(sysPara->status.PRESSURE));
|
||||
ui->labelTemperature->setText(QString::number(sysPara->status.TEMP_ADIN/4));
|
||||
ui->labelPulseCounter->setText(QString::number(sysPara->status.synTotalPulseCnt));
|
||||
//ui->label_PulseCounterZero->setText(QString::number(sysPara->status.xor_sync.sync_counter_at_zero));
|
||||
// if( sysPara->status.viscosityFaultCnt || sysPara->status.rWarnViscoReady )
|
||||
// sysPara->status.viscosity = 0;//sysPara->status.rWarnViscoReady
|
||||
ui->labelVIscosity->setText(QString::number(sysPara->status.viscosity));
|
||||
ui->labelReclaimTankCloseTime->setText(QString::number(sysPara->status.currReclaimTankPos/10));
|
||||
//ui->labelTotalPulseNum->setText(QString::number(sysPara->status.synTotalPulseCnt));//不需要显示
|
||||
ui->labelSpetalPosition->setText(QString::number(sysPara->status.SEPTAL_POSITION));
|
||||
if(sysPara->para.gearPumpEnable)
|
||||
{
|
||||
setSpinBoxPressureMaxValue(900);
|
||||
}
|
||||
else
|
||||
{
|
||||
setSpinBoxPressureMaxValue(5000);
|
||||
}
|
||||
if(!sysPara->para.isCheckMagnet)
|
||||
{
|
||||
ui->pushButtonCleanUP->setEnabled( (sysPara->status.currReclaimTankPos<70) && (sysPara->status.statWarn & WARN_STATUS_HDINT)); // sysPara->status.currReclaimTankPos
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->pushButtonCleanUP->setEnabled( (sysPara->status.currReclaimTankPos<70) );
|
||||
}
|
||||
if(sysPara->status.currReclaimTankPos<55 && sysPara->status.currReclaimTankPos>44 && enCleanUpAppendFlag==2)
|
||||
{
|
||||
if(timer2->isActive()) timer2->stop();
|
||||
enCleanUpAppendFlag=3;
|
||||
sysPara->devOp->controlReclaimTankOpen(0);
|
||||
emit onCleanUPNow();// start cleanup
|
||||
}
|
||||
else if(sysPara->status.currReclaimTankPos >0 && enCleanUpAppendFlag==4) //?
|
||||
{
|
||||
enCleanUpAppendFlag=5;
|
||||
//sysPara->devOp->controlReclaimTankClose(1);
|
||||
//ui->label_status->setText(tr("正在关回收槽......"));
|
||||
}
|
||||
else if(sysPara->status.currReclaimTankPos ==0 && (enCleanUpAppendFlag==5 ||enCleanUpAppendFlag==4)) //?
|
||||
{
|
||||
if(sysPara->status.reclaimCloseCnt)sysPara->status.reclaimCloseCnt--;
|
||||
else {
|
||||
sysPara->devOp->controlReclaimTankOpen(0);
|
||||
timerHandler2();
|
||||
if(timer2->isActive()) timer2->stop();
|
||||
enCleanUpAppendFlag=0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SystemSetting::on_pushButtonCleanUP_pressed()
|
||||
{
|
||||
if(sysPara){
|
||||
QMessageBox msgBox(QMessageBox::Information,tr("提示"),tr("自动清洗时间约为一分钟,然后自动停止"));
|
||||
QPushButton *cleanButton;
|
||||
QPushButton *cancleCleanButton;
|
||||
cleanButton=NULL;
|
||||
cancleCleanButton=NULL;
|
||||
r_PumpValveControledByHand = false;
|
||||
if( enCleanUpAppendFlag==0) cleanButton = msgBox.addButton(tr("开始清洗"), QMessageBox::ActionRole);
|
||||
else cancleCleanButton = msgBox.addButton(tr("停止清洗"), QMessageBox::ActionRole);
|
||||
msgBox.addButton(QMessageBox::Cancel);
|
||||
msgBox.exec();
|
||||
if (msgBox.clickedButton() == cleanButton)
|
||||
{
|
||||
r_PumpValveControledByHand = sysPara->status.isPumpValveControledByHand;
|
||||
//ui->label_status->setText(tr("正在进入手动模式......"));
|
||||
sysPara->status.isPumpValveControledByHand=true;
|
||||
sysPara->devOp->controlCompressPump(false);
|
||||
sysPara->devOp->controlCycleValve(true);
|
||||
sysPara->devOp->controlInkValve(false);
|
||||
sysPara->devOp->controlInkValvePWM(false);
|
||||
sysPara->devOp->controlMainInkPump(false);
|
||||
sysPara->devOp->controlMixValve(false);
|
||||
sysPara->devOp->controlReclaimPump(true,true);
|
||||
sysPara->devOp->controlViscosityPump(false);
|
||||
sysPara->devOp->controlReleaseValve(false);
|
||||
|
||||
if(sysPara->para.gearPumpEnable && sysPara->para.flagOfReclaimPumEnable){
|
||||
sysPara->devOp->controlCycleValve(true);
|
||||
sysPara->devOp->controlViscosityPump(true);
|
||||
sysPara->devOp->controlReclaimPump(true,false);
|
||||
sysPara->para.gearPumpValue = 0;
|
||||
sysPara->devOp->WriteMoterPump();
|
||||
sysPara->devOp->controlInkValvePWM(false);
|
||||
}
|
||||
|
||||
enCleanUpAppendFlag=1;// 开始启动手动模式
|
||||
sysPara->devOp->mainInkCtrl();
|
||||
timer2->start(2000); // 暂时循环一下2s
|
||||
}
|
||||
else if (msgBox.clickedButton() == cancleCleanButton) {
|
||||
enCleanUpAppendFlag=3;
|
||||
timerHandler2();
|
||||
return ;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
void SystemSetting::onCleanUPNow()
|
||||
{
|
||||
if(sysPara){
|
||||
emit setRunStatus(tr("正在喷嘴逆清洗......"));
|
||||
if(!(sysPara->para.gearPumpEnable && sysPara->para.flagOfReclaimPumEnable)){
|
||||
sysPara->devOp->controlCycleValve(true);
|
||||
sysPara->devOp->controlViscosityPump(true);
|
||||
sysPara->devOp->controlReclaimPump(true,false);
|
||||
}
|
||||
timer2->start(60000);
|
||||
}
|
||||
}
|
||||
|
||||
void SystemSetting::autoControlPressure(){
|
||||
emit pressureAdjust();
|
||||
}
|
||||
|
||||
void SystemSetting::timerHandler2(){
|
||||
if(sysPara){
|
||||
if(enCleanUpAppendFlag==1)
|
||||
{
|
||||
//2s循环结束
|
||||
// sysPara->devOp->controlCycleValve(false);
|
||||
// sysPara->devOp->controlReclaimPump(false,false);
|
||||
if(timer2->isActive()) timer2->stop();
|
||||
// 已经进入手动模式了
|
||||
// 判断回收槽位置,并控制回收槽打开10mm以上;
|
||||
enCleanUpAppendFlag=2;
|
||||
if(sysPara->status.currReclaimTankPos<45)
|
||||
{
|
||||
sysPara->devOp->controlReclaimTankOpen(1);
|
||||
//ui->label_status->setText(tr("正在开回收槽......"));
|
||||
}
|
||||
else if(sysPara->status.currReclaimTankPos>55){
|
||||
sysPara->devOp->controlReclaimTankClose(1);
|
||||
//ui->label_status->setText(tr("正在关回收槽......"));
|
||||
}
|
||||
timer2->start(5500);
|
||||
}
|
||||
else if(enCleanUpAppendFlag==2) // 正在开回收槽
|
||||
{
|
||||
if(timer2->isActive()) timer2->stop();
|
||||
enCleanUpAppendFlag=3;
|
||||
sysPara->devOp->controlReclaimTankOpen(0);
|
||||
emit onCleanUPNow();// start cleanup
|
||||
}
|
||||
else if(enCleanUpAppendFlag==3){// 清洗完成
|
||||
enCleanUpAppendFlag=4;
|
||||
// emit setRunStatus(tr("清洗完成"));
|
||||
sysPara->devOp->controlCycleValve(false);
|
||||
sysPara->devOp->controlViscosityPump(false);
|
||||
sysPara->devOp->controlReclaimTankClose(1);
|
||||
sysPara->status.reclaimCloseCnt=10;
|
||||
if(timer2->isActive()) timer2->stop();
|
||||
timer2->start(8300); // close reclaimTandk
|
||||
if(sysPara->para.gearPumpEnable && sysPara->para.flagOfReclaimPumEnable){
|
||||
timerAuto->start(500);
|
||||
}
|
||||
}
|
||||
else if(enCleanUpAppendFlag==4){
|
||||
emit setRunStatus(tr("清洗完成"));
|
||||
if(sysPara->status.currReclaimTankPos==0){
|
||||
enCleanUpAppendFlag=0;
|
||||
if(timer2->isActive()) timer2->stop();
|
||||
sysPara->devOp->controlReclaimTankClose(0);
|
||||
}
|
||||
sysPara->status.isPumpValveControledByHand = false;
|
||||
if(timerAuto->isActive()) timerAuto->stop();
|
||||
sysPara->devOp->mainInkCtrl();
|
||||
}
|
||||
else if(enCleanUpAppendFlag==5){
|
||||
if(timer2->isActive()) timer2->stop();enCleanUpAppendFlag=0;
|
||||
//ui->label_status->setText("");
|
||||
sysPara->devOp->controlReclaimTankClose(0);
|
||||
sysPara->status.isPumpValveControledByHand =false;
|
||||
sysPara->devOp->mainInkCtrl();
|
||||
}
|
||||
else if(enCleanUpAppendFlag==6){
|
||||
if(timer2->isActive()) timer2->stop();enCleanUpAppendFlag=0;
|
||||
//ui->label_status->setText("");
|
||||
sysPara->status.isPumpValveControledByHand =false ;
|
||||
}
|
||||
else {if(timer2->isActive()) timer2->stop();}
|
||||
}
|
||||
}
|
||||
|
||||
void SystemSetting::on_spinBoxReclaimPumpPower_valueChanged(int arg1)
|
||||
{
|
||||
Q_UNUSED(arg1);
|
||||
if(sysPara){
|
||||
if(sysPara->devOp->isReclaimPumpOpen()){ //在当前是开的情况下重设pwm
|
||||
sysPara->para.reclaimPumpPWMWidth = ui->spinBoxReclaimPumpPower->value();
|
||||
sysPara->devOp->controlReclaimPump(true,false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void SystemSetting::on_pushButtonHighVoltageData_pressed()
|
||||
{
|
||||
#if 0//def SYSMIMA
|
||||
if(sysPara->status.adjHightVolInitEN==0){
|
||||
dialogUpateMm->clearAuth();
|
||||
dialogUpateMm->show();
|
||||
}
|
||||
else ondialogAuthorizationAccepted();
|
||||
#else
|
||||
ondialogAuthorizationAccepted();
|
||||
#endif
|
||||
}
|
||||
//void ondialogAuthorizationAccepted();
|
||||
void SystemSetting::ondialogAuthorizationAccepted()
|
||||
{
|
||||
if(sysPara){
|
||||
QMessageBox::StandardButton ret;
|
||||
#ifdef SYSMIMA
|
||||
if(sysPara->status.adjHightVolInitEN==0){
|
||||
//QString authString= dialogUpateMm->getAuth();
|
||||
//if(authString == "07710665")
|
||||
{
|
||||
sysPara->status.adjHightVolInitEN =1;
|
||||
}
|
||||
// else {
|
||||
// QMessageBox::warning(this,tr("提示"),tr(+"密码不正确!"),QMessageBox::Ok);
|
||||
// sysPara->status.adjHightVolInitEN =0;
|
||||
// return ;
|
||||
// }
|
||||
}
|
||||
|
||||
//if(sysPara->status.adjHightVolInitEN==0) return;
|
||||
|
||||
#endif
|
||||
|
||||
ret = QMessageBox::information(this, tr("Application"),
|
||||
tr("是否更新高压包电流数据?"),
|
||||
QMessageBox::Ok | QMessageBox::Cancel);
|
||||
|
||||
|
||||
|
||||
if (ret == QMessageBox::Ok){
|
||||
|
||||
if((sysPara->status.statWarn & WARN_STATUS_HDINT)){
|
||||
QMessageBox::information(this,tr("错误"),tr("喷头盖未关,请先关喷头盖!"));
|
||||
return ;
|
||||
}
|
||||
|
||||
sysPara->status.detectHighVoltageAppending = true;
|
||||
sysPara->status.detectedValidHighVoltage = false;
|
||||
sysPara->status.detectHighVoltageCnt = 0;
|
||||
detectValidHVCnt = 0;
|
||||
progressBar.setMaximum (ARRAY_SIZE(sysPara->para.highVoltageRecord));
|
||||
progressBar.setMinimum (0);
|
||||
progressBar.setValue(sysPara->status.detectHighVoltageCnt);
|
||||
progressBar.show();
|
||||
timer->start(1000);
|
||||
//ui->label_HVFlag->setText(tr(""));
|
||||
sysPara->para.set_HVData_Flag = 1; //
|
||||
sysPara->devOp->writeFpgaPrintPara(true);
|
||||
//--sysPara->devOp->setCtrlFlags();
|
||||
//qDebug()<<"set_HVData_Flag"<<sysPara->para.set_HVData_Flag ;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
//#define VOLDIV 5 // 原来的值
|
||||
//#define VOLNUM 20 // 原来的值
|
||||
#define VOLDIV 2 // 测试的值
|
||||
#define VOLNUM 50 // 测试的值
|
||||
void SystemSetting::on_pushButtonSearchBestOscillatorVoltage_pressed()
|
||||
{
|
||||
if(sysPara){
|
||||
if((sysPara->status.statWarn & WARN_STATUS_INK_SWINT)){
|
||||
QMessageBox::information(this,tr("错误"),tr("墨线开关未开,请先打开墨线开关!"));
|
||||
return ;
|
||||
}
|
||||
if((sysPara->status.statWarn & WARN_STATUS_HDINT)){
|
||||
QMessageBox::information(this,tr("错误"),tr("喷头盖未关,请先关喷头盖!"));
|
||||
return ;
|
||||
}
|
||||
if(!sysPara->status.reclainTankReachEnd){
|
||||
QMessageBox::information(this,tr("错误"),tr("回收槽未全部打开!"));
|
||||
return ;
|
||||
}
|
||||
|
||||
QMessageBox::StandardButton ret;
|
||||
|
||||
ret = QMessageBox::information(this, tr("Application"),
|
||||
tr("自动搜索耗时较长,期间请不要进行其他操作,是否确认自动搜索最佳晶振电压?"),
|
||||
QMessageBox::Ok | QMessageBox::Cancel);
|
||||
if (ret == QMessageBox::Ok){
|
||||
sysPara->devOp->printCtrl(PRINT_CTRL_STOP); //停止打印
|
||||
sysPara->devOp->highVoltageCtrl(0); // 关高压
|
||||
progressBar.setMaximum (VOLNUM);
|
||||
progressBar.setMinimum (0);
|
||||
progressBar.setValue(0);
|
||||
progressBar.show();
|
||||
sysPara->status.detectBestOscillatorVoltageAppending = true;
|
||||
sysPara->status.currentDetectBestOscillatorCnt = 0;
|
||||
sysPara->status.longestPhaseHightLevelTm = 0;
|
||||
sysPara->status.detectedBestOscillatorVoltage = 0;
|
||||
sysPara->devOp->setOscillatorVoltage(0);
|
||||
timer->start(6000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SystemSetting::on_pushButtonSearchBestOscillatorFreq_pressed()
|
||||
{
|
||||
if(sysPara){
|
||||
if((sysPara->status.statWarn & WARN_STATUS_INK_SWINT)){
|
||||
QMessageBox::information(this,tr("错误"),tr("墨线开关未开,请先打开墨线开关!"));
|
||||
return ;
|
||||
}
|
||||
if((sysPara->status.statWarn & WARN_STATUS_HDINT)){
|
||||
QMessageBox::information(this,tr("错误"),tr("喷头盖未关,请先关喷头盖!"));
|
||||
return ;
|
||||
}
|
||||
if(!sysPara->status.reclainTankReachEnd){
|
||||
QMessageBox::information(this,tr("错误"),tr("回收槽未全部打开!"));
|
||||
return ;
|
||||
}
|
||||
|
||||
QMessageBox::StandardButton ret;
|
||||
|
||||
ret = QMessageBox::information(this, tr("Application"),
|
||||
tr("自动搜索耗时较长,是否确认自动搜索当前频率2K范围内最佳晶振频率?"),
|
||||
QMessageBox::Ok | QMessageBox::Cancel);
|
||||
if (ret == QMessageBox::Ok){
|
||||
sysPara->devOp->printCtrl(PRINT_CTRL_STOP); //停止打印
|
||||
sysPara->devOp->highVoltageCtrl(0); // 关高压
|
||||
progressBar.setMaximum (20);
|
||||
progressBar.setMinimum (0);
|
||||
progressBar.setValue(0);
|
||||
progressBar.show();
|
||||
|
||||
if(sysPara->para.divideRatio){
|
||||
sysPara->status.detectedStartOscillatorFreq = FPGA_SYS_HZ/(2*sysPara->para.divideRatio);
|
||||
sysPara->status.detectedStartOscillatorFreq -= 2000;
|
||||
}
|
||||
else {
|
||||
sysPara->status.detectedStartOscillatorFreq = 63000;
|
||||
}
|
||||
if(sysPara->status.detectedStartOscillatorFreq < 50000 || sysPara->status.detectedStartOscillatorFreq > 110000){
|
||||
QMessageBox::critical(this, tr("错误"),
|
||||
tr("搜索的起始频率%1 HZ超出范围?").arg(sysPara->status.detectedStartOscillatorFreq));
|
||||
return ;
|
||||
}
|
||||
sysPara->status.detectBestOscillatorFreqAppending = true;
|
||||
sysPara->status.currentDetectBestOscillatorCnt = 0;
|
||||
sysPara->status.longestPhaseHightLevelTm = 0;
|
||||
sysPara->status.detectedBestOscillatorFreq = sysPara->status.detectedStartOscillatorFreq;
|
||||
sysPara->devOp->setDivideRatio(0);
|
||||
timer->start(6000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//排序函数
|
||||
void bubbleSort(unsigned short arr[], int n) {
|
||||
for (int i = 0; i < n - 1; i++) {
|
||||
for (int j = 0; j < n - i - 1; j++) {
|
||||
if (arr[j] > arr[j + 1]) {
|
||||
int temp = arr[j];
|
||||
arr[j] = arr[j + 1];
|
||||
arr[j + 1] = temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SystemSetting::timerHandler(){
|
||||
if(sysPara){
|
||||
/*-------------------------------------高压检测-----------------------------------*/
|
||||
if(sysPara->status.detectHighVoltageAppending){
|
||||
#if 1
|
||||
if(sysPara->status.detectHighVoltageCnt < ARRAY_SIZE(sysPara->para.highVoltageRecord)-1){
|
||||
sysPara->para.highVoltageRecord[sysPara->status.detectHighVoltageCnt] =
|
||||
sysPara->status.detectHighVoltageCnt?sysPara->status.HV_DETOUT:0;
|
||||
sysPara->devOp->maxHighVoltageDACCtrl(0); //将其detectHighVoltageCnt设置为零,不处理高压故障
|
||||
sysPara->devOp->resumeFault(); //如果有高压故障,恢复高压故障
|
||||
progressBar.setValue(sysPara->status.detectHighVoltageCnt);
|
||||
/* 应要求去掉多余到信息*/
|
||||
LogInfo::setRunStatusText(QString("High voltage %1 --- value %2")
|
||||
.arg(sysPara->status.detectHighVoltageCnt).arg(sysPara->para.highVoltageRecord[sysPara->status.detectHighVoltageCnt]));
|
||||
|
||||
if(sysPara->para.highVoltageRecord[sysPara->status.detectHighVoltageCnt] > 30) //起始电压太小不算
|
||||
{
|
||||
if(sysPara->status.detectedValidHighVoltage)
|
||||
sysPara->status.detectHighVoltageCnt ++;
|
||||
else{ //从无到有第一次检测高压的话,计数不加1
|
||||
|
||||
}
|
||||
sysPara->status.detectedValidHighVoltage = true;
|
||||
}
|
||||
else
|
||||
sysPara->status.detectHighVoltageCnt ++;
|
||||
#ifdef __HV_FOR_WANG_DEBUG__
|
||||
int actHvAmp = sysPara->status.detectHighVoltageCnt*10;
|
||||
#if 0
|
||||
float tempHvAmp;// = sysPara->para.HighVoltageAmplitude * 1.73;
|
||||
if(sysPara->status.detectHighVoltageCnt*10 == 0) {
|
||||
tempHvAmp = 0;
|
||||
}
|
||||
else if(sysPara->status.detectHighVoltageCnt*10 == 1) {
|
||||
tempHvAmp = 63.5;
|
||||
}
|
||||
else {
|
||||
tempHvAmp = 63.5 + (sysPara->status.detectHighVoltageCnt*10 - 1) * 0.51;
|
||||
}
|
||||
sysPara->devOp->highVoltageCtrl(tempHvAmp);
|
||||
#endif
|
||||
//sysPara->para.HighVoltageAmplitude = (unsigned char)tempHvAmp;
|
||||
sysPara->devOp->highVoltageCtrl(actHvAmp);
|
||||
sysPara->para.HighVoltageAmplitude = actHvAmp;
|
||||
#else
|
||||
sysPara->devOp->highVoltageCtrl(sysPara->status.detectHighVoltageCnt*10);
|
||||
#endif
|
||||
#else
|
||||
if(detectValidHVCnt < ARRAY_SIZE(sysPara->para.highVoltageRecord) && sysPara->status.detectHighVoltageCnt<16){
|
||||
// sysPara->para.highVoltageRecord[detectValidHVCnt] =
|
||||
// detectValidHVCnt?sysPara->status.HV_DETOUT:0;
|
||||
sysPara->para.highVoltageRecord[detectValidHVCnt] = sysPara->status.HV_DETOUT;
|
||||
sysPara->devOp->maxHighVoltageDACCtrl(0); //将其detectHighVoltageCnt设置为零,不处理高压故障
|
||||
sysPara->devOp->resumeFault(); //如果有高压故障,恢复高压故障
|
||||
progressBar.setValue(detectValidHVCnt);
|
||||
/* 应要求去掉多余到信息
|
||||
LogInfo::setRunStatusText(QString("High voltage %1 --- value %2")
|
||||
.arg(sysPara->status.detectHighVoltageCnt).arg(sysPara->para.highVoltageRecord[sysPara->status.detectHighVoltageCnt]));
|
||||
*/
|
||||
//if(sysPara->para.highVoltageRecord[detectValidHVCnt] > 30) //起始电压太小不算
|
||||
if(sysPara->status.HV_DETOUT > 30) //起始电压太小不算
|
||||
{
|
||||
// if(sysPara->status.detectedValidHighVoltage)
|
||||
// detectValidHVCnt ++;
|
||||
// else{ //从无到有第一次检测高压的话,计数不加1
|
||||
|
||||
// }
|
||||
// sysPara->status.detectedValidHighVoltage = true;
|
||||
detectValidHVCnt ++;
|
||||
}
|
||||
//else
|
||||
sysPara->status.detectHighVoltageCnt ++;
|
||||
|
||||
sysPara->devOp->highVoltageCtrl(sysPara->status.detectHighVoltageCnt*6);
|
||||
|
||||
#endif
|
||||
}else {
|
||||
sysPara->para.highVoltageRecord[9] = sysPara->para.highVoltageRecord[8];
|
||||
sysPara->status.detectHighVoltageAppending = 0;
|
||||
LogInfo::setRunStatusText(tr("高压设置完成"));
|
||||
sysPara->para.set_HVData_Flag = 0; //
|
||||
sysPara->devOp->writeFpgaPrintPara(true); //在这里面不能产生阻塞
|
||||
progressBar.hide();
|
||||
timer->stop();
|
||||
}
|
||||
}
|
||||
else if(sysPara->status.detectBestOscillatorFreqAppending){
|
||||
sysPara->devOp->readPhaseDetectHighTm();
|
||||
int longestPhaseHightLevelTm = 0;
|
||||
if(!sysPara->status.detect_phase_error && !sysPara->status.flight_tm_error ){
|
||||
#if 0
|
||||
for(unsigned int i = 0; i < ARRAY_SIZE(sysPara->status.phaseDetectHighTm); i++){
|
||||
if(sysPara->status.phaseDetectHighTm[i] > longestPhaseHightLevelTm){
|
||||
longestPhaseHightLevelTm = sysPara->status.phaseDetectHighTm[i];
|
||||
}
|
||||
}
|
||||
#else
|
||||
int n = ARRAY_SIZE(sysPara->status.phaseDetectHighTm);
|
||||
bubbleSort(sysPara->status.phaseDetectHighTm, n);
|
||||
|
||||
int sum = 0;
|
||||
for (int i= 1; i < n -1; i++)
|
||||
{
|
||||
sum += sysPara->status.phaseDetectHighTm[i];
|
||||
}
|
||||
longestPhaseHightLevelTm = sum / (n-2);
|
||||
|
||||
#endif
|
||||
}
|
||||
LogInfo::setRunStatusText(tr("Oscillator Freq %1 --- 最长高电平时钟 %2")
|
||||
.arg( sysPara->status.detectedStartOscillatorFreq + sysPara->status.currentDetectBestOscillatorCnt*200).arg(longestPhaseHightLevelTm));
|
||||
|
||||
if(longestPhaseHightLevelTm > sysPara->status.longestPhaseHightLevelTm){
|
||||
sysPara->status.longestPhaseHightLevelTm = longestPhaseHightLevelTm;
|
||||
sysPara->status.detectedBestOscillatorFreq = sysPara->status.detectedStartOscillatorFreq + sysPara->status.currentDetectBestOscillatorCnt*200;
|
||||
}
|
||||
sysPara->status.currentDetectBestOscillatorCnt++;
|
||||
sysPara->devOp->setDivideRatio((FPGA_SYS_HZ/(sysPara->status.detectedStartOscillatorFreq + sysPara->status.currentDetectBestOscillatorCnt*200))/2);
|
||||
progressBar.setValue(sysPara->status.currentDetectBestOscillatorCnt);
|
||||
if(sysPara->status.currentDetectBestOscillatorCnt == 20){ //100分了20份
|
||||
sysPara->status.detectBestOscillatorFreqAppending= false;
|
||||
int bestRatio = (FPGA_SYS_HZ/(sysPara->status.detectedBestOscillatorFreq))/2;
|
||||
/*------------------------------------------------------------------------------------*/
|
||||
ui->spinBoxOscillatorFreqFix->setValue(sysPara->status.detectedBestOscillatorFreq - convertFreq(sysPara->para.oscillatoFreq));
|
||||
sysPara->para.oscillatorFreqFix = sysPara->status.detectedBestOscillatorFreq - convertFreq(sysPara->para.oscillatoFreq);
|
||||
/*------------------------------------------------------------------------------------*/
|
||||
sysPara->devOp->setDivideRatio(bestRatio);
|
||||
sysPara->para.divideRatio = bestRatio;
|
||||
progressBar.hide();
|
||||
timer->stop();
|
||||
LogInfo::setRunStatusText(tr("最佳晶振频率完成"));
|
||||
}
|
||||
}
|
||||
#ifdef FINDVOL
|
||||
else if(sysPara->status.detectBestOscillatorVoltageAppending){// 最佳晶振电压
|
||||
sysPara->devOp->readPhaseDetectHighTm();
|
||||
int longestPhaseHightLevelTm = 0;
|
||||
if(!sysPara->status.detect_phase_error && !sysPara->status.flight_tm_error ){
|
||||
for(int i = 0; i < ARRAY_SIZE(sysPara->status.phaseDetectHighTm); i++){
|
||||
if(sysPara->status.phaseDetectHighTm[i] > longestPhaseHightLevelTm){
|
||||
longestPhaseHightLevelTm = sysPara->status.phaseDetectHighTm[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
LogInfo::setRunStatusText(tr("Oscillator voltage %1 --- 最长高电平时钟 %2")
|
||||
.arg(sysPara->status.currentDetectBestOscillatorCnt*3).arg(longestPhaseHightLevelTm));
|
||||
|
||||
if(longestPhaseHightLevelTm > sysPara->status.longestPhaseHightLevelTm){
|
||||
sysPara->status.longestPhaseHightLevelTm = longestPhaseHightLevelTm;
|
||||
sysPara->status.detectedBestOscillatorVoltage = sysPara->status.currentDetectBestOscillatorCnt*3;
|
||||
}
|
||||
sysPara->status.currentDetectBestOscillatorCnt++;
|
||||
sysPara->devOp->setOscillatorVoltage(sysPara->status.currentDetectBestOscillatorCnt*3);
|
||||
progressBar.setValue(sysPara->status.currentDetectBestOscillatorCnt);
|
||||
if(sysPara->status.currentDetectBestOscillatorCnt == 32){ //分了32份
|
||||
sysPara->status.detectBestOscillatorVoltageAppending = false;
|
||||
ui->spinBoxOscillatorVoltage->setValue(sysPara->status.detectedBestOscillatorVoltage);
|
||||
sysPara->devOp->setOscillatorVoltage(sysPara->status.detectedBestOscillatorVoltage);
|
||||
sysPara->para.oscillatorVoltage = sysPara->status.detectedBestOscillatorVoltage;
|
||||
progressBar.hide();
|
||||
timer->stop();
|
||||
LogInfo::setRunStatusText(tr("最佳晶振电压完成"));
|
||||
}
|
||||
}
|
||||
#else
|
||||
else if(sysPara->status.detectBestOscillatorVoltageAppending){// 最佳晶振电压
|
||||
sysPara->devOp->readPhaseDetectHighTm();
|
||||
int longestPhaseHightLevelTm = 0;
|
||||
if(!sysPara->status.detect_phase_error && !sysPara->status.flight_tm_error ){
|
||||
for(unsigned int i = 0; i < ARRAY_SIZE(sysPara->status.phaseDetectHighTm); i++){
|
||||
if(sysPara->status.phaseDetectHighTm[i] > longestPhaseHightLevelTm){
|
||||
longestPhaseHightLevelTm = sysPara->status.phaseDetectHighTm[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
LogInfo::setRunStatusText(tr("Oscillator voltage %1 --- 最长高电平时钟 %2")
|
||||
.arg(sysPara->status.currentDetectBestOscillatorCnt*VOLDIV).arg(longestPhaseHightLevelTm));
|
||||
|
||||
if(longestPhaseHightLevelTm > sysPara->status.longestPhaseHightLevelTm){
|
||||
sysPara->status.longestPhaseHightLevelTm = longestPhaseHightLevelTm;
|
||||
sysPara->status.detectedBestOscillatorVoltage = sysPara->status.currentDetectBestOscillatorCnt*VOLDIV;
|
||||
}
|
||||
sysPara->status.currentDetectBestOscillatorCnt++;
|
||||
sysPara->devOp->setOscillatorVoltage(sysPara->status.currentDetectBestOscillatorCnt*VOLDIV);
|
||||
progressBar.setValue(sysPara->status.currentDetectBestOscillatorCnt);
|
||||
if(sysPara->status.currentDetectBestOscillatorCnt == VOLNUM){ //分了20份
|
||||
sysPara->status.detectBestOscillatorVoltageAppending = false;
|
||||
ui->spinBoxOscillatorVoltage->setValue(sysPara->status.detectedBestOscillatorVoltage);
|
||||
sysPara->devOp->setOscillatorVoltage(sysPara->status.detectedBestOscillatorVoltage);
|
||||
sysPara->para.oscillatorVoltage = sysPara->status.detectedBestOscillatorVoltage;
|
||||
progressBar.hide();
|
||||
timer->stop();
|
||||
LogInfo::setRunStatusText(tr("最佳晶振电压完成"));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void SystemSetting::updateReclaimTime(int time){
|
||||
if(sysPara){
|
||||
ui->spinBoxReclaimTankTime->setValue(time);
|
||||
}
|
||||
}
|
||||
void SystemSetting::updateViscosityAdjust(int offset){
|
||||
if(sysPara){
|
||||
int viscostyRealValue;
|
||||
if(offset>0)
|
||||
{
|
||||
if(offset>5)
|
||||
offset = 5;
|
||||
if(sysPara->para.viscosityAdjust==1)//0.6%
|
||||
{
|
||||
//viscostyRealValue = sysPara->para.viscosity - sysPara->para.viscosity*(offset*3)/5/100;
|
||||
viscostyRealValue = sysPara->para.viscosity - sysPara->para.viscosity*(offset*3)/500;
|
||||
}
|
||||
else if(sysPara->para.viscosityAdjust==2)//1.0%
|
||||
{
|
||||
//viscostyRealValue = sysPara->para.viscosity - sysPara->para.viscosity*(offset*5)/5/100;
|
||||
viscostyRealValue = sysPara->para.viscosity - sysPara->para.viscosity*offset/100;
|
||||
}
|
||||
else if(sysPara->para.viscosityAdjust==3)//1.6%
|
||||
{
|
||||
//viscostyRealValue = sysPara->para.viscosity - sysPara->para.viscosity*(offset*8)/5/100;
|
||||
viscostyRealValue = sysPara->para.viscosity - sysPara->para.viscosity*offset*8/500;
|
||||
}
|
||||
else if(sysPara->para.viscosityAdjust==4)//2.0%
|
||||
{
|
||||
//viscostyRealValue = sysPara->para.viscosity - sysPara->para.viscosity*(offset*10)/5/100;
|
||||
viscostyRealValue = sysPara->para.viscosity - sysPara->para.viscosity*offset*2/100;
|
||||
}
|
||||
else
|
||||
{
|
||||
viscostyRealValue = sysPara->para.viscosity;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
viscostyRealValue = sysPara->para.viscosity;
|
||||
}
|
||||
if(sysPara->para.viscosityAdjust!=0)
|
||||
{
|
||||
ui->ViscosityAdjustText->setText(QString("%1").arg(viscostyRealValue));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SystemSetting::updateAuthorization(int auth){
|
||||
Q_UNUSED(auth);
|
||||
if(sysPara){
|
||||
//ui->labelMixValveVersion->setVisible(PRODUCT_VERSION(sysPara->status.fpgaVersionNum) == JETV1);
|
||||
//ui->radioButtonMixValveNewVersion->setVisible(PRODUCT_VERSION(sysPara->status.fpgaVersionNum) == JETV1);
|
||||
//ui->radioButtonMixValveOldVersion->setVisible(PRODUCT_VERSION(sysPara->status.fpgaVersionNum) == JETV1);
|
||||
|
||||
}
|
||||
}
|
||||
void SystemSetting::setSpinBoxPressureMaxValue(int pressureVal)
|
||||
{
|
||||
ui->spinBoxPressure->setMaximum(pressureVal);
|
||||
}
|
||||
|
||||
//简单的使用输入框值变化事件时,会在用户输入个位数(未输入完成时),就触发发送修改命令,造成断点不正常
|
||||
void SystemSetting::on_spinBoxOscillatorVoltage_valueChanged(int arg1)
|
||||
{
|
||||
static int vol=0; //
|
||||
if(sysPara){
|
||||
if(vol-1==arg1 || vol+1==arg1)
|
||||
{
|
||||
//qDebug()<<"OSCVOL:"<<arg1;
|
||||
sysPara->devOp->setOscillatorVoltage(ui->spinBoxOscillatorVoltage->value());
|
||||
}
|
||||
vol = arg1;
|
||||
}
|
||||
}
|
||||
#include "Public.h"
|
||||
|
||||
void SystemSetting::on_pushButtonInterFace_pressed()
|
||||
{
|
||||
|
||||
|
||||
QString s1 = Public::ReadLanguageName();
|
||||
if(s1 =="English") {
|
||||
dlgLanguage.LangIndex =INPUT_METHOD_TYPE_ENGLISH;
|
||||
}
|
||||
//else if(s1 =="Vietnamese") {
|
||||
// dlgLanguage.LangIndex =INPUT_METHOD_TYPE_VIETNAM;
|
||||
// }
|
||||
else{
|
||||
dlgLanguage.LangIndex =INPUT_METHOD_TYPE_CHINESE;
|
||||
}
|
||||
|
||||
dlgLanguage.setCurrentLanguage();
|
||||
dlgLanguage.show();
|
||||
|
||||
|
||||
|
||||
/*
|
||||
QFile file(SYS_ROOT_DIR"UseEn");
|
||||
|
||||
QMessageBox::StandardButton ret;
|
||||
ret = QMessageBox::information(this, tr("警告"),
|
||||
tr("确定要切换显示语言吗?\r\n(重启才能生效)"),
|
||||
QMessageBox::Ok | QMessageBox::Cancel);
|
||||
if (ret != QMessageBox::Ok){
|
||||
return;
|
||||
}
|
||||
|
||||
QString s1 = Public::ReadLanguageName();
|
||||
|
||||
if(file.open(QIODevice::ReadWrite| QIODevice::Truncate)) {
|
||||
QByteArray buf;
|
||||
buf.clear();
|
||||
if(s1 =="English") {// English--> Vietnamese
|
||||
QMessageBox::information(this,tr("提示"),tr("重启后切换到越南语界面"));
|
||||
buf.append("Vietnamese\r\n");
|
||||
buf.append("YN_utf8.txt\r\n");
|
||||
}
|
||||
else if(s1 =="Vietnamese") {// Vietnamese--> Chinese
|
||||
QMessageBox::information(this,tr("提示"),tr("重启后切换到中文界面"));
|
||||
buf.append("Chinese\r\n");
|
||||
buf.append("WINPY_utf8.txt\r\n");
|
||||
}
|
||||
else{// Chinese--> English
|
||||
QMessageBox::information(this,tr("提示"),tr("重启后切换到英文界面"));
|
||||
buf.append("English\r\n");
|
||||
buf.append("WINPY_utf8.txt\r\n");
|
||||
}
|
||||
file.write(buf);
|
||||
file.close();
|
||||
setInterfaceMode();
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
void SystemSetting::setInterfaceMode()
|
||||
{
|
||||
QString s1 = Public::ReadLanguageName();
|
||||
if(s1 =="English") {// English--> Vietnamese
|
||||
ui->pushButtonInterFace->setText( tr("Tiếng Việt(Vietnamese interface)"));
|
||||
}
|
||||
else if(s1 =="Vietnamese") {// Vietnamese--> Chinese
|
||||
ui->pushButtonInterFace->setText( tr("Chinese interface(中文界面)"));
|
||||
}
|
||||
else{// Chinese--> English
|
||||
ui->pushButtonInterFace->setText( tr("English interface(英文界面)"));
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user