Compare commits

...
23 Commits
Author SHA1 Message Date
kite_lucs 3cade51a9c hlp:荆州隔膜泵版本 2026-10-20 08:53:42 +08:00
kite_lucs ed0c2484cc Revert "hlp:上次的压力调整算法提交"
This reverts commit e533ea8e0b.
2026-10-19 17:49:44 +08:00
kite_lucs baa8882d09 Revert "hlp:荆州版本"
This reverts commit 065b146998.
2026-10-19 17:48:03 +08:00
kite_lucs 065b146998 hlp:荆州版本 2026-10-19 17:03:47 +08:00
kite_lucs e533ea8e0b hlp:上次的压力调整算法提交 2026-10-17 08:34:03 +08:00
kite_lucs 16f1448c58 hlp:修改喷印间隔过短报警的判断逻辑 2026-09-30 10:41:26 +08:00
kite_lucs 26455d5bc4 hlp:merge 2026-09-14 16:52:31 +08:00
kite_lucs e358abf461 hlp:优化开机到排气期间界面状态显示;排气后,开回收槽前延时7秒等待压力升高,避免漏墨 2026-09-14 15:50:49 +08:00
byons eb5d824e02 回滚旧的最大速度计算方法 2026-09-07 17:31:04 +08:00
byons a882c30e09 陆工修复回收泵模式切换后压力失控问题、添加逻辑在隔膜泵版本下禁用编辑回收泵勾选框 2026-09-07 17:30:48 +08:00
byons fbdd064adb 陆工调整关机流程第一版、优化排气提示 2026-09-07 15:51:08 +08:00
byons 0fa8ce4b51 回滚67版本的字宽计算方法 2026-09-07 09:49:13 +08:00
byons 77370b17ab 添加排挤流程日志 2026-09-07 09:48:55 +08:00
byons 1e48e6a47b 修复隐藏功能缺陷、管控高压开启条件 2026-09-07 09:48:45 +08:00
kite_lucsandbyons b96e36a6a6 hlp:修复隐藏功能m显示不全的问题,需要搭配等宽的小数点,空格,数字和字母m使用,修改版本号为GuiLin版本 2026-09-07 09:48:31 +08:00
byons 9eebd81d51 添加RFID版本标识 2026-08-29 14:27:43 +08:00
byons a636ba3400 Merge branch 'main' of https://git.vernonbach.com/rd/VX5-DiaphragmPump-GeneralVersion 2026-08-28 17:39:07 +08:00
kite_lucs f7b7faab2e hlp:分段计米部分bug修复,按需求不需要超级密码就可以使用分段计米 2026-08-28 17:37:05 +08:00
byons 7abac963e4 取消回收槽到底时开启高压 2026-08-28 17:31:32 +08:00
byons a20552e8d0 同步VX4的排气流程 2026-08-28 17:19:33 +08:00
kite_lucs f29fafca9e Merge branch 'main' of https://git.vernonbach.com/rd/VX5-DiaphragmPump-GeneralVersion 2026-08-27 09:11:08 +08:00
kite_lucs ee7792077d hlp:修改版本号规则 2026-08-27 09:10:41 +08:00
hlp ab8363f47c 迁移隔膜泵算法完成 2026-08-26 18:27:19 +08:00
56 changed files with 24435 additions and 77143 deletions
+4662 -4659
View File
File diff suppressed because it is too large Load Diff
+381 -381
View File
@@ -1,381 +1,381 @@
/* /*
* DevOp.h * DevOp.h
* *
* Created on: Jun 25, 2013 * Created on: Jun 25, 2013
* Author: yiyu * Author: yiyu
* QQ:1036184468 * QQ:1036184468
* Descriptoin: * Descriptoin:
*/ */
#ifndef DEVOP_H_ #ifndef DEVOP_H_
#define DEVOP_H_ #define DEVOP_H_
/************以前的硬件版本,跟VX5版本号冲突,取消 /************以前的硬件版本,跟VX5版本号冲突,取消
#define JETV1 1 #define JETV1 1
#define JETV2 2 #define JETV2 2
#define JETV3 3 // EP3C10F144 #define JETV3 3 // EP3C10F144
#define JETV23 4 // V5,V4主板编号均为4; V6没有正式投入使用 #define JETV23 4 // V5,V4主板编号均为4; V6没有正式投入使用
#define JETV7 7 // EP4CE15F144, ARM 335X #define JETV7 7 // EP4CE15F144, ARM 335X
#define PRODUCT_VERSION(ver) ((ver>>13) & 0x7) #define PRODUCT_VERSION(ver) ((ver>>13) & 0x7)
**********************/ **********************/
class SysPara; class SysPara;
#include <stdio.h> #include <stdio.h>
#include <QString> #include <QString>
#include "myinclude.h" #include "myinclude.h"
#include <QObject> #include <QObject>
#include <QQueue> #include <QQueue>
#include <QMetaType> #include <QMetaType>
#include <QThread> #include <QThread>
#include <QMutex> #include <QMutex>
#include <QReadWriteLock> #include <QReadWriteLock>
#include <QSerialPort> #include <QSerialPort>
#define DisTraceMsg() printf("###############TRACE,Line:%d File:%s Fun:%s\n",__LINE__,__FILE__,__FUNCTION__); #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 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 DisErrorMsg() printf("!!!!!!!!!!!!!!!ERROR! ,Line:%d File:%s Fun:%s\n",__LINE__,__FILE__,__FUNCTION__);
#define PRINT_CTRL_STOP 0 #define PRINT_CTRL_STOP 0
#define PRINT_CTRL_START 1 #define PRINT_CTRL_START 1
#define PRINT_CTRL_PAUSE 2 #define PRINT_CTRL_PAUSE 2
#define PRINT_CTRL_DAC_DISABLE 3 #define PRINT_CTRL_DAC_DISABLE 3
#define PRINT_CTRL_DAC_ENABLE 4 #define PRINT_CTRL_DAC_ENABLE 4
#define PRINT_CTRL_STOPSYNCNT 5 #define PRINT_CTRL_STOPSYNCNT 5
#define MAX_FPGA_DAC_VALUE_FOR_NEW ((1<<12)*95/100) //由于硬件原因,当DAC大于一定值后,电压不再变化,所以做一下限制 #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_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_FPGA_DAC_VALUE ((PRODUCT_VERSION(sysPara->status.fpgaVersionNum) == JETV1)?MAX_FPGA_DAC_VALUE_FOR_V1:MAX_FPGA_DAC_VALUE_FOR_NEW)
#define MAX_FPGA_DAC_VALUE MAX_FPGA_DAC_VALUE_FOR_NEW #define MAX_FPGA_DAC_VALUE MAX_FPGA_DAC_VALUE_FOR_NEW
#define MAX_POINT_DISTANCE_ADJUST_VAL (1<<10) //点距微调的最大值 #define MAX_POINT_DISTANCE_ADJUST_VAL (1<<10) //点距微调的最大值
#define MAX_MOTOR_RUN_CURRENT 600 #define MAX_MOTOR_RUN_CURRENT 600
#define MIN_MOTOR_RUN_CURRENT 80 #define MIN_MOTOR_RUN_CURRENT 80
#define MAX_RECLAIM_BLOCK_CNT 5 //500ms #define MAX_RECLAIM_BLOCK_CNT 5 //500ms
#define MAX_RELEASE_VALVE_DELAY_CNT 4 #define MAX_RELEASE_VALVE_DELAY_CNT 4
/*所有警告都是高电平警告*/ /*所有警告都是高电平警告*/
#define WARN_STATUS_INK_SWINT (1<<7) /*墨线开头,来自喷头,必须开的时候才能打印,关的时候为1,开的时候为0*/ #define WARN_STATUS_INK_SWINT (1<<7) /*墨线开头,来自喷头,必须开的时候才能打印,关的时候为1,开的时候为0*/
#define WARN_STATUS_POWER_MON (1<<6) //高压报警 #define WARN_STATUS_POWER_MON (1<<6) //高压报警
#define WARN_STATUS_RECYCLE_FAULT (1<<5) //高电平表示有故障 #define WARN_STATUS_RECYCLE_FAULT (1<<5) //高电平表示有故障
#define WARN_STATUS_INK_WARN (1<<4) #define WARN_STATUS_INK_WARN (1<<4)
#define WARN_STATUS_SOLV_WARN (1<<3) #define WARN_STATUS_SOLV_WARN (1<<3)
#define WARN_STATUS_SUMP_WARN (1<<2) //墨水渗漏 #define WARN_STATUS_SUMP_WARN (1<<2) //墨水渗漏
#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 FPGA_SYS_HZ 100000000 #define FPGA_SYS_HZ 100000000
#define MAX_WR_MEM_SIZE (1<<16) //写空间最大地址范围 #define MAX_WR_MEM_SIZE (1<<16) //写空间最大地址范围
#define MAX_WR_MEM_SIZE_MASK (MAX_WR_MEM_SIZE - 1) #define MAX_WR_MEM_SIZE_MASK (MAX_WR_MEM_SIZE - 1)
#define MAX_RD_MEM_SIZE (1<<9) //读空间最大地址范围 #define MAX_RD_MEM_SIZE (1<<9) //读空间最大地址范围
#define MAX_RD_MEM_SIZE_MASK (MAX_RD_MEM_SIZE - 1) #define MAX_RD_MEM_SIZE_MASK (MAX_RD_MEM_SIZE - 1)
/* am335x core board control pwm output */ /* am335x core board control pwm output */
#define VISCO_PUMP_REQUEST "echo 1 > /sys/class/pwm/ecap.2/request" #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_RELEASE "echo 0 > /sys/class/pwm/ecap.2/request"
#define VISCO_PUMP_RUN "echo 1 > /sys/class/pwm/ecap.2/run" #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_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_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_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_HIGH "echo 1 > /sys/class/pwm/ecap.2/polarity"
#define VISCO_PUMP_LOW "echo 0 > /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_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_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_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_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_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_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_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" #define SUCTION_PUMP_12000Hz "echo 12000 > /sys/class/pwm/ehrpwm.0:1/period_freq"
#define PRINT_CTRL_ADDR_BASE 0xa400 #define PRINT_CTRL_ADDR_BASE 0xa400
#define PRINT_DIGITAL_CHAR_BASE_ADDR (0xe000) #define PRINT_DIGITAL_CHAR_BASE_ADDR (0xe000)
#define WRITE_CALENDAR_DAT_ADDR (0xb100) #define WRITE_CALENDAR_DAT_ADDR (0xb100)
#define RECYCLE_SLOT_STOP 0x1 #define RECYCLE_SLOT_STOP 0x1
#define RECYCLE_SLOT_CLOSE 0x2 #define RECYCLE_SLOT_CLOSE 0x2
#define RECYCLE_SLOT_OPEN 0x0 #define RECYCLE_SLOT_OPEN 0x0
#define PRINT_START_STOP_CTRL (PRINT_CTRL_ADDR_BASE + 0x40) #define PRINT_START_STOP_CTRL (PRINT_CTRL_ADDR_BASE + 0x40)
#define PRINT_RESET_PRODUCT_CNT (PRINT_CTRL_ADDR_BASE + 0x41) #define PRINT_RESET_PRODUCT_CNT (PRINT_CTRL_ADDR_BASE + 0x41)
#define RECYCLE_SLOT_CTRL_ADDR (PRINT_CTRL_ADDR_BASE + 0x42) #define RECYCLE_SLOT_CTRL_ADDR (PRINT_CTRL_ADDR_BASE + 0x42)
#define RESUME_FAULT_ADDR (PRINT_CTRL_ADDR_BASE + 0x43) #define RESUME_FAULT_ADDR (PRINT_CTRL_ADDR_BASE + 0x43)
#define VAR_CNT_ADDR (PRINT_CTRL_ADDR_BASE + 0x50) #define VAR_CNT_ADDR (PRINT_CTRL_ADDR_BASE + 0x50)
#define VAR_CTRL_REG_ADDR (PRINT_CTRL_ADDR_BASE + 0x51) #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 + 0x59)
//#define MAININKCTRL_ADDR (PRINT_CTRL_ADDR_BASE + 0x5a) //#define MAININKCTRL_ADDR (PRINT_CTRL_ADDR_BASE + 0x5a)
#define WRITE_CNT1GROUP_COUNT 0xB13E #define WRITE_CNT1GROUP_COUNT 0xB13E
#define WRITE_CNT1GROUP_NUM 0xB13F #define WRITE_CNT1GROUP_NUM 0xB13F
#define WRITE_CNT1GROUP_SETTING 0xB140 #define WRITE_CNT1GROUP_SETTING 0xB140
#define READ_CNT1GROUP_CURR_LOOP 0x0190 #define READ_CNT1GROUP_CURR_LOOP 0x0190
#define READ_CNT1GROUP_CURR_INDEX 0x0194 #define READ_CNT1GROUP_CURR_INDEX 0x0194
#define WRITE_CNT2GROUP_COUNT 0xB16E #define WRITE_CNT2GROUP_COUNT 0xB16E
#define WRITE_CNT2GROUP_NUM 0xB16F #define WRITE_CNT2GROUP_NUM 0xB16F
#define WRITE_CNT2GROUP_SETTING 0xB170 #define WRITE_CNT2GROUP_SETTING 0xB170
#define READ_CNT2GROUP_CURR_LOOP 0x0195 #define READ_CNT2GROUP_CURR_LOOP 0x0195
#define READ_CNT2GROUP_CURR_INDEX 0x0199 #define READ_CNT2GROUP_CURR_INDEX 0x0199
#define FPGA_STATUS_BASE_ADDR 0x0000 #define FPGA_STATUS_BASE_ADDR 0x0000
#define FPGA_VERSOIN_NUM (FPGA_STATUS_BASE_ADDR + 0xfe) #define FPGA_VERSOIN_NUM (FPGA_STATUS_BASE_ADDR + 0xfe)
#define READ_BUILD_DAT (FPGA_STATUS_BASE_ADDR + 0xf0) #define READ_BUILD_DAT (FPGA_STATUS_BASE_ADDR + 0xf0)
#define READ_PRINTDATA_XOR (FPGA_STATUS_BASE_ADDR + 0xf2) #define READ_PRINTDATA_XOR (FPGA_STATUS_BASE_ADDR + 0xf2)
#define READ_SYNC_COUNTER (FPGA_STATUS_BASE_ADDR + 0xf4) #define READ_SYNC_COUNTER (FPGA_STATUS_BASE_ADDR + 0xf4)
#define PHASE_DETECT_HIGH_VOLTAGE_TM 0x100 #define PHASE_DETECT_HIGH_VOLTAGE_TM 0x100
#define READ_CALENDAR_DAT_ADDR 0x180 #define READ_CALENDAR_DAT_ADDR 0x180
#define READ_RAND_FIFO_ADDR 0x200 // 读FPGA的随机码FIFO #define READ_RAND_FIFO_ADDR 0x200 // 读FPGA的随机码FIFO
#define ROW_PRINT_SEQNENCE_ADDR 0xb200 //行扫描顺序 #define ROW_PRINT_SEQNENCE_ADDR 0xb200 //行扫描顺序
#define DAC_TABLE_ADDR 0xb280 //每一个行点对应的DAC值 #define DAC_TABLE_ADDR 0xb280 //每一个行点对应的DAC值
#define NOT_GAP_DAC_TABLE_ADDR 0xb380 //每一个不隔点对应的DAC值 #define NOT_GAP_DAC_TABLE_ADDR 0xb380 //每一个不隔点对应的DAC值
#define FULL_COL_DAC_TABLE_ADDR 0xb480 //每一个不隔点对应的DAC值 #define FULL_COL_DAC_TABLE_ADDR 0xb480 //每一个不隔点对应的DAC值
#define MATCH_FULL_DAC_TABLE_ADDR 0xB500 // 匹配满列 DAC表 起始地址 #define MATCH_FULL_DAC_TABLE_ADDR 0xB500 // 匹配满列 DAC表 起始地址
#define MATCH_1_DAC_TABLE_ADDR 0xB600 // 匹配单点 DAC表 起始地址 #define MATCH_1_DAC_TABLE_ADDR 0xB600 // 匹配单点 DAC表 起始地址
#define MATCH_2_DAC_TABLE_ADDR 0xB700 // 匹配两点 DAC表 起始地址 #define MATCH_2_DAC_TABLE_ADDR 0xB700 // 匹配两点 DAC表 起始地址
#define MATCH_3_DAC_TABLE_ADDR 0xB800 // 匹配三点 DAC表 起始地址 #define MATCH_3_DAC_TABLE_ADDR 0xB800 // 匹配三点 DAC表 起始地址
#define MATCH_4_DAC_TABLE_ADDR 0xB900 // 匹配四点 DAC表 起始地址 #define MATCH_4_DAC_TABLE_ADDR 0xB900 // 匹配四点 DAC表 起始地址
#define MATCH_5_DAC_TABLE_ADDR 0xBA00 // 匹配五点 DAC表 起始地址 #define MATCH_5_DAC_TABLE_ADDR 0xBA00 // 匹配五点 DAC表 起始地址
#define MATCH_G1_DAC_TABLE_ADDR 0xBC00 // 匹配空一点 DAC表 起始地址 #define MATCH_G1_DAC_TABLE_ADDR 0xBC00 // 匹配空一点 DAC表 起始地址
#define MATCH_G2_DAC_TABLE_ADDR 0xBC80 // 匹配空两点 DAC表 起始地址 #define MATCH_G2_DAC_TABLE_ADDR 0xBC80 // 匹配空两点 DAC表 起始地址
#define MATCH_G3_DAC_TABLE_ADDR 0xBD00 // 匹配空三点 DAC表 起始地址 #define MATCH_G3_DAC_TABLE_ADDR 0xBD00 // 匹配空三点 DAC表 起始地址
#define MATCH_G4_DAC_TABLE_ADDR 0xBD80 // 匹配空四点 DAC表 起始地址 #define MATCH_G4_DAC_TABLE_ADDR 0xBD80 // 匹配空四点 DAC表 起始地址
#define MATCH_G5_DAC_TABLE_ADDR 0xBE00 // 匹配空五点 DAC表 起始地址 #define MATCH_G5_DAC_TABLE_ADDR 0xBE00 // 匹配空五点 DAC表 起始地址
#define MATCH_G6_DAC_TABLE_ADDR 0xBE80 // 匹配空六点 DAC表 起始地址 #define MATCH_G6_DAC_TABLE_ADDR 0xBE80 // 匹配空六点 DAC表 起始地址
#define MATCH_P1_DAC_TABLE_ADDR 0xBF00 // 匹配预备一 DAC表 起始地址 #define MATCH_P1_DAC_TABLE_ADDR 0xBF00 // 匹配预备一 DAC表 起始地址
#define MATCH_P2_DAC_TABLE_ADDR 0xBF80 // 匹配预备二 DAC表 起始地址 #define MATCH_P2_DAC_TABLE_ADDR 0xBF80 // 匹配预备二 DAC表 起始地址
#define MATCH_C_DAC_TABLE_ADDR 0xC000 // 匹配复杂 DAC表 起始地址 #define MATCH_C_DAC_TABLE_ADDR 0xC000 // 匹配复杂 DAC表 起始地址
#define WRITE_COUNTER3_ADDR (0xb150) #define WRITE_COUNTER3_ADDR (0xb150)
#define WRITE_COUNTER4_ADDR (0xb164) #define WRITE_COUNTER4_ADDR (0xb164)
//#define READ_CNT3_CURVALUE_ADDR 0x01b4 //#define READ_CNT3_CURVALUE_ADDR 0x01b4
#define READ_CNT3_CURVALUE_ADDR 0x1834 #define READ_CNT3_CURVALUE_ADDR 0x1834
#define LOCADDR '1' #define LOCADDR '1'
//#define NOLEDLIGHT 0x10 //#define NOLEDLIGHT 0x10
//#define REDLIGHTCODE 0X11 //#define REDLIGHTCODE 0X11
//#define YELLOWLIGHTCODE 0X13 //#define YELLOWLIGHTCODE 0X13
//#define GREENLIGHTCODE 0X12 //#define GREENLIGHTCODE 0X12
// 高四位:颜色 // 高四位:颜色
#define LED_COLOR_NONE 0x00 // 0000 0000 #define LED_COLOR_NONE 0x00 // 0000 0000
#define LED_COLOR_YELLOW 0x10 // 0001 0000 #define LED_COLOR_YELLOW 0x10 // 0001 0000
#define LED_COLOR_GREEN 0x20 // 0010 0000 #define LED_COLOR_GREEN 0x20 // 0010 0000
#define LED_COLOR_RED 0x30 // 0011 0000 #define LED_COLOR_RED 0x30 // 0011 0000
// 低四位:操作 // 低四位:操作
#define LED_OP_OFF 0x00 // 灭 #define LED_OP_OFF 0x00 // 灭
#define LED_OP_ON 0x01 // 亮 #define LED_OP_ON 0x01 // 亮
#define LED_OP_FLASH 0x02 // 闪烁 #define LED_OP_FLASH 0x02 // 闪烁
//绿灯 //绿灯
#define LED_COLOR_GREEN_ON LED_COLOR_GREEN|LED_OP_ON //绿灯亮 #define LED_COLOR_GREEN_ON LED_COLOR_GREEN|LED_OP_ON //绿灯亮
#define LED_COLOR_GREEN_OFF LED_COLOR_GREEN|LED_OP_OFF //绿灯灭 #define LED_COLOR_GREEN_OFF LED_COLOR_GREEN|LED_OP_OFF //绿灯灭
#define LED_COLOR_GREEN_FLASH LED_COLOR_GREEN|LED_OP_FLASH //绿灯闪烁 #define LED_COLOR_GREEN_FLASH LED_COLOR_GREEN|LED_OP_FLASH //绿灯闪烁
//红灯 //红灯
#define LED_COLOR_RED_ON LED_COLOR_RED|LED_OP_ON //红灯亮 #define LED_COLOR_RED_ON LED_COLOR_RED|LED_OP_ON //红灯亮
#define LED_COLOR_RED_OFF LED_COLOR_RED|LED_OP_OFF //红灯灭 #define LED_COLOR_RED_OFF LED_COLOR_RED|LED_OP_OFF //红灯灭
#define LED_COLOR_RED_FLASH LED_COLOR_RED|LED_OP_FLASH //红灯闪烁 #define LED_COLOR_RED_FLASH LED_COLOR_RED|LED_OP_FLASH //红灯闪烁
//黄灯 //黄灯
#define LED_COLOR_YELLOW_ON LED_COLOR_YELLOW|LED_OP_ON //黄灯亮 #define LED_COLOR_YELLOW_ON LED_COLOR_YELLOW|LED_OP_ON //黄灯亮
#define LED_COLOR_YELLOW_OFF LED_COLOR_YELLOW|LED_OP_OFF //黄灯灭 #define LED_COLOR_YELLOW_OFF LED_COLOR_YELLOW|LED_OP_OFF //黄灯灭
#define LED_COLOR_YELLOW_FLASH LED_COLOR_YELLOW|LED_OP_FLASH //黄灯闪烁 #define LED_COLOR_YELLOW_FLASH LED_COLOR_YELLOW|LED_OP_FLASH //黄灯闪烁
#define LED_ALL_OFF 0x00 //关闭所有灯 #define LED_ALL_OFF 0x00 //关闭所有灯
/* /*
* 请不要直接初始化此函数,如果需要,请通过SysPara的devOP来访问此类 * 请不要直接初始化此函数,如果需要,请通过SysPara的devOP来访问此类
* */ * */
class DevOp : public QObject class DevOp : public QObject
{ {
Q_OBJECT Q_OBJECT
public : public :
DevOp(SysPara * sysPara); DevOp(SysPara * sysPara);
~DevOp(); ~DevOp();
void set_totalSynPulseNum(bool wren);// 设置可变长度 void set_totalSynPulseNum(bool wren);// 设置可变长度
void WriteMoterPump(); void WriteMoterPump();
void controlReleaseValve(bool openFlag); void controlReleaseValve(bool openFlag);
void controlMixValve(bool openFlag); void controlMixValve(bool openFlag);
void controlInkValve(bool openFlag); //控制墨线,即供墨阀 void controlInkValve(bool openFlag); //控制墨线,即供墨阀
void controlInkValvePWMSTM32(int PWMPulse); void controlInkValvePWMSTM32(int PWMPulse);
void controlCycleValve(bool openFlag); void controlCycleValve(bool openFlag);
void controlCompressPump(bool openFlag); void controlCompressPump(bool openFlag);
void controlViscosityPump(bool openFlag); void controlViscosityPump(bool openFlag);
void controlMainInkPump(bool openFlag); void controlMainInkPump(bool openFlag);
void setHighVoltageAmplitudetoSTM32(); void setHighVoltageAmplitudetoSTM32();
void controlReclaimPump(bool openFlag,bool fullSpeed); void controlReclaimPump(bool openFlag,bool fullSpeed);
void controlReclaimPump2(); void controlReclaimPump2();
void controlInkValvePWM(bool openFlag); void controlInkValvePWM(bool openFlag);
void controlInkValvePWM2(); void controlInkValvePWM2();
void controlHeater(bool openFlag); void controlHeater(bool openFlag);
void controlBeeper(bool openFlag); void controlBeeper(bool openFlag);
void controlReclaimTankOpen(bool enableFlag); void controlReclaimTankOpen(bool enableFlag);
void controlReclaimTankClose(bool enableFlag); void controlReclaimTankClose(bool enableFlag);
void powerOff(void); void powerOff(void);
bool isReleaseValveOpen(); bool isReleaseValveOpen();
bool isMixValveOpen(); bool isMixValveOpen();
bool isInkValveOpen(); bool isInkValveOpen();
bool isInkValveOpen1(); bool isInkValveOpen1();
bool isCycleValveOpen(); bool isCycleValveOpen();
bool isCompressPumpOpen(); bool isCompressPumpOpen();
bool isViscosityPumpOpen(); bool isViscosityPumpOpen();
bool isMainInkPumpOpen(); bool isMainInkPumpOpen();
bool isReclaimPumpOpen(); bool isReclaimPumpOpen();
bool isHighVoltageOpen(); bool isHighVoltageOpen();
bool isReclaimTankOpenEnable(); bool isReclaimTankOpenEnable();
bool isReclaimTankCloseEnable(); bool isReclaimTankCloseEnable();
bool isBeeperEnable(); bool isBeeperEnable();
bool isHearterEnable(); bool isHearterEnable();
int writeFpgaPrintPara(bool ignoreWarn = false); int writeFpgaPrintPara(bool ignoreWarn = false);
void readFgaStatus(void); void readFgaStatus(void);
void writeDacValue2Fpga_No73(); void writeDacValue2Fpga_No73();
void printCtrl(int cmd); void printCtrl(int cmd);
void ReadCnt1GroupStatus(void); void ReadCnt1GroupStatus(void);
void ReadCnt2GroupStatus(void); void ReadCnt2GroupStatus(void);
void writeCnt1GroupSetting(bool bCntByGroupEnable); void writeCnt1GroupSetting(bool bCntByGroupEnable);
void writeCnt2GroupSetting(bool bCntByGroupEnable); void writeCnt2GroupSetting(bool bCntByGroupEnable);
void writeFpgaCalandar(bool Enable); void writeFpgaCalandar(bool Enable);
void writeFpgaVariCtrl(); void writeFpgaVariCtrl();
void readCalandarDat(); void readCalandarDat();
void resumeFault(); void resumeFault();
void highVoltageCtrl(int val); void highVoltageCtrl(int val);
void maxHighVoltageDACCtrl(int val); void maxHighVoltageDACCtrl(int val);
void setPhaseByHand(int val); void setPhaseByHand(int val);
void readPhaseDetectHighTm(); void readPhaseDetectHighTm();
void setPhaseDetectVoltageDutyCycle(int duty); void setPhaseDetectVoltageDutyCycle(int duty);
void setBlickLightPeriod(int value); void setBlickLightPeriod(int value);
void setOscillatorVoltage(int value); void setOscillatorVoltage(int value);
void setDivideRatio(int value); void setDivideRatio(int value);
void setLastLineEndPointFixedValue(int value); void setLastLineEndPointFixedValue(int value);
void mainInkCtrl(); void mainInkCtrl();
void pumpValveCtrl(int viscosityAdjustByTemp=0); void pumpValveCtrl(int viscosityAdjustByTemp=0);
void clearProductCnt(unsigned int mode); void clearProductCnt(unsigned int mode);
unsigned int readFpgaVersionNum(void); unsigned int readFpgaVersionNum(void);
void fpgaWr(int addr,unsigned char*dat,int len); void fpgaWr(int addr,unsigned char*dat,int len);
void fpgaRd(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 fpgaWrD(int addr,unsigned int dat,int len);
void fpgaWrD2(int addr,unsigned char*dat,int len); void fpgaWrD2(int addr,unsigned char*dat,int len);
void fpgaResetWarning(char mode); void fpgaResetWarning(char mode);
void sendSTM32SetPowerOnTimer(quint16); void sendSTM32SetPowerOnTimer(quint16);
void DACValueWithVoltageAdj(); void DACValueWithVoltageAdj();
void writeDataToFpga_No67HighSpeedMode(Voltage_Version version,bool flag); void writeDataToFpga_No67HighSpeedMode(Voltage_Version version,bool flag);
bool fpgaDevOpenFlag; bool fpgaDevOpenFlag;
void stm32Rd(int addr,unsigned char*dat,int len); void stm32Rd(int addr,unsigned char*dat,int len);
void stm32Wr(int addr,unsigned char*dat,int len); void stm32Wr(int addr,unsigned char*dat,int len);
unsigned char memWrMap[MAX_WR_MEM_SIZE]; unsigned char memWrMap[MAX_WR_MEM_SIZE];
unsigned char memRdMap[MAX_RD_MEM_SIZE]; unsigned char memRdMap[MAX_RD_MEM_SIZE];
unsigned char color_flag; unsigned char color_flag;
void controlRedLight(bool openFlag); void controlRedLight(bool openFlag);
void controlGreenLight(bool openFlag); void controlGreenLight(bool openFlag);
void controlYellowLight(bool openFlag); void controlYellowLight(bool openFlag);
void controlFan1(bool openFlag); void controlFan1(bool openFlag);
void controlFan2(bool openFlag); void controlFan2(bool openFlag);
bool isGreenLightEnable(); bool isGreenLightEnable();
bool isYellowLightEnable(); bool isYellowLightEnable();
bool isRedLightEnable(); bool isRedLightEnable();
void readbuilDat(); void readbuilDat();
void readPrintDataXor(); void readPrintDataXor();
void readSyncCounterAtZero(); void readSyncCounterAtZero();
void printCtrl2(int cmd); void printCtrl2(int cmd);
void ReadSomeDataForLostPrint(void); void ReadSomeDataForLostPrint(void);
void readSTM32Version(void); void readSTM32Version(void);
void readSTM32Time(void); void readSTM32Time(void);
bool stopSendDataFPGA; bool stopSendDataFPGA;
bool stopSendDataSTM32; bool stopSendDataSTM32;
void Read_RanddomFromFpga(); // 读FPGARANDFIFO void Read_RanddomFromFpga(); // 读FPGARANDFIFO
void RandTxtBakup(char ok); void RandTxtBakup(char ok);
void showData(QByteArray dat); void showData(QByteArray dat);
void writeDacValue2Fpga_No72NewVoltData(); void writeDacValue2Fpga_No72NewVoltData();
public slots: public slots:
void resendFPGADate(int,int,unsigned char *,int,int); void resendFPGADate(int,int,unsigned char *,int,int);
void resendSTM32Date(int,int,unsigned char *,int,int); void resendSTM32Date(int,int,unsigned char *,int,int);
signals: signals:
void dataReceived(char,const QByteArray &dataReceived,int); void dataReceived(char,const QByteArray &dataReceived,int);
/***cmd:1--读 2--写*********************************************/ /***cmd:1--读 2--写*********************************************/
/***addr:地址***************************************************/ /***addr:地址***************************************************/
/***dat:数据指针*************************************************/ /***dat:数据指针*************************************************/
/***len:数据长度*************************************************/ /***len:数据长度*************************************************/
/***type:1--FPGA 2--STM32***************************************/ /***type:1--FPGA 2--STM32***************************************/
void sendSerialDataToSTM32(int cmd,int addr,unsigned char *dat,int len,int type); void sendSerialDataToSTM32(int cmd,int addr,unsigned char *dat,int len,int type);
void sendSerialDataToFPGA(int cmd,int addr,unsigned char *dat,int len,int type); void sendSerialDataToFPGA(int cmd,int addr,unsigned char *dat,int len,int type);
private: private:
int WdgttyUsb0Cnt; int WdgttyUsb0Cnt;
bool releaseValveOpenFlag; bool releaseValveOpenFlag;
bool mixValveFlag; bool mixValveFlag;
bool inkValveOpenFlag; bool inkValveOpenFlag;
bool inkValveOpenFlag1; bool inkValveOpenFlag1;
bool cycleValveOpenFlag; bool cycleValveOpenFlag;
bool compressPumpOpenFlag; bool compressPumpOpenFlag;
bool viscosityPumpOpenFlag; bool viscosityPumpOpenFlag;
bool mainInkPumpOpenFlag; bool mainInkPumpOpenFlag;
bool reclaimPumpOpenFlag; bool reclaimPumpOpenFlag;
bool highVoltageOpenFlag; bool highVoltageOpenFlag;
bool reclaimTankOpenEnableFlag; bool reclaimTankOpenEnableFlag;
bool reclaimTankCloseEnableFlag; bool reclaimTankCloseEnableFlag;
bool beeperOnFlag; bool beeperOnFlag;
bool RedLightOnFlag; bool RedLightOnFlag;
bool GreenLightOnFlag; bool GreenLightOnFlag;
bool YellowLightOnFlag; bool YellowLightOnFlag;
bool heaterOnFlag; bool heaterOnFlag;
int com2; int com2;
int pwm_sp; int pwm_sp;
int pwm_fd; int pwm_fd;
int Interrupt_fd; int Interrupt_fd;
int iocontrl; int iocontrl;
int DAdataout; int DAdataout;
int pwm_ink; int pwm_ink;
int adc_fd; int adc_fd;
qint8 OscillatorVoltage[100];//VX 电路不一样,所以需要重新调整 qint8 OscillatorVoltage[100];//VX 电路不一样,所以需要重新调整
SysPara *sysPara; SysPara *sysPara;
unsigned int fpgaRdD(int addr,int len); unsigned int fpgaRdD(int addr,int len);
// 0xA451--- 为什么ARM的顺序相反呢? // 0xA451--- 为什么ARM的顺序相反呢?
typedef struct { typedef struct {
unsigned int varDigitalNum:4; // 数字的个数 unsigned int varDigitalNum:4; // 数字的个数
unsigned int charRamBaseAddr:12; // 基址 unsigned int charRamBaseAddr:12; // 基址
unsigned int colOffset:16; // 列偏移 unsigned int colOffset:16; // 列偏移
unsigned int horizonWidth:9;//字模宽度 unsigned int horizonWidth:9;//字模宽度
unsigned int verticalOffset:6; // 行偏移 unsigned int verticalOffset:6; // 行偏移
unsigned int charRowNum:6; // 每个字符占行个数 unsigned int charRowNum:6; // 每个字符占行个数
unsigned int charColNum:6; // 每个字符占列个数 unsigned int charColNum:6; // 每个字符占列个数
unsigned int varTypeSel:4; unsigned int varTypeSel:4;
unsigned int dummy:1; unsigned int dummy:1;
}reg_var_print_ctrl_t; }reg_var_print_ctrl_t;
}; };
#endif /* DEVOP_H_ */ #endif /* DEVOP_H_ */
-380
View File
@@ -1,380 +0,0 @@
/*
* 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
#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
/*
* 请不要直接初始化此函数,如果需要,请通过SysPara的devOP来访问此类
* */
class DevOp : public QObject
{
Q_OBJECT
public :
DevOp(SysPara * sysPara);
~DevOp();
void set_totalSynPulseNum(bool wren);// 设置可变长度
void TTYS0ToConsole();
void WriteMoterPump(int);
void controlReleaseValve(bool openFlag);
void controlMixValve(bool openFlag);
void controlInkValve(bool openFlag); //控制墨线,即供墨阀
void controlInkValvePWMSTM32(int PWMPulse);
void controlCycleValve(bool openFlag);
void controlCompressPump(bool openFlag);
void controlViscosityPump(bool openFlag);
void controlMainInkPump(bool openFlag);
void setHighVoltageAmplitudetoSTM32();
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_No73();
void printCtrl(int cmd);
void ReadCnt1GroupStatus(void);
void writeCnt1GroupSetting(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 int 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;
void stm32Rd(int addr,unsigned char*dat,int len);
void stm32Wr(int addr,unsigned char*dat,int len);
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);
bool stopSendDataFPGA;
bool stopSendDataSTM32;
// unsigned char *dataOfViscosity;
#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();
void writeDacValue2Fpga_No72NewVoltData();
#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);
void resendFPGADate(int,int,unsigned char *,int,int);
void resendSTM32Date(int,int,unsigned char *,int,int);
signals:
void dataReceived(char,const QByteArray &dataReceived,int);
void sendSerialDataToSTM32(int,int,unsigned char *,int,int);
void sendSerialDataToFPGA(int,int,unsigned char *,int,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;
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
#endif /* DEVOP_H_ */
+3471 -3356
View File
File diff suppressed because it is too large Load Diff
+29 -8
View File
@@ -101,14 +101,35 @@ private:
QTimer* viscosity_timer; QTimer* viscosity_timer;
QTimer* timer; QTimer* timer;
QTime t1; QTime t1;
bool m_rampDone = false; // pressureAdj 软启动完成标志 // 因为原先vx5没有状态管理,容易在刚开机时和排气中互相抢占显示
int m_adjSkip = 0; // pressureAdj 节拍计数 bool check_flag = true;
int m_lastPressure = 0; // pressureAdj 上次采样压力(稳定检测用)
int m_stableCount = 0; // pressureAdj 压力连续稳定计数 // 隔膜泵状态枚举
int m_pressureBuf[10] = {}; // pressureAdj 压力滑动平均缓冲(10点=1s) enum DiaphragmPumpState {
int m_bufIdx = 0; // pressureAdj 滑动平均写入索引 DPUMP_STOPPED = 0, // 停止状态
bool m_lastReclaimMode = false; // 上次 flagOfReclaimPumEnable 状态,用于检测切换 DPUMP_STARTING = 1, // 启动爬升状态
bool m_lastByHand = false; // 上次 isPumpValveControledByHand 状态,用于检测手动、自动 DPUMP_RUNNING = 2 // 运行微调状态
};
// 隔膜泵控制参数
DiaphragmPumpState m_pumpState = DPUMP_STOPPED; // 泵当前状态
int m_stateChangeCount = 0; // 状态切换计数器(用于实现800ms间隔)
int m_adjSkip = 0; // 调节跳过计数器
int m_lastActualPressure = 0; // 上次实时压力(微分项用)
int m_startingStepCount = 0; // 启动步进计数器
int m_pressureBuf[10] = {}; // 压力滑动平均缓冲(10点=1s)
int m_bufIdx = 0; // 滑动平均写入索引
int m_bufValidCount = 0; // 缓冲区有效点数(用于启动阶段判断)
bool m_lastReclaimMode = false; // 上次回收泵使能状态
bool m_lastByHand = false; // 上次手动控制状态
bool m_powerOffPressureControlActive = false; // 关机压力控制已初始化
// 隔膜泵控制函数
float calculateTargetSpeed(int err);
void handleStoppedState(int err, bool canSwitch);
void handleStartingState(int err, int actual, int target);
void handleRunningState(int err, bool canSwitch);
void autoControlHeater(); void autoControlHeater();
void autoControlValvePump(); void autoControlValvePump();
void detectAndcontrolReclaimTank(); void detectAndcontrolReclaimTank();
+2350 -2354
View File
File diff suppressed because it is too large Load Diff
+229 -229
View File
@@ -1,229 +1,229 @@
#ifndef PRINTSETTING_H #ifndef PRINTSETTING_H
#define PRINTSETTING_H #define PRINTSETTING_H
#include <QWidget> #include <QWidget>
#include "dialogmodifypasswd.h" #include "dialogmodifypasswd.h"
#include "DialogAuthorization.h" #include "DialogAuthorization.h"
#include "ParaSettingUI.h" #include "ParaSettingUI.h"
#include "dlginputaddr.h" #include "dlginputaddr.h"
#include "dlgvarlength.h" #include "dlgvarlength.h"
#include "dialogshowcounter.h" #include "dialogshowcounter.h"
#include "TextEditOption.h" // 需要使用文件文本编辑功能 #include "TextEditOption.h" // 需要使用文件文本编辑功能
#include <QLineEdit> #include <QLineEdit>
#include <QString> #include <QString>
#include <QTableWidget> #include <QTableWidget>
#include "dialogmoduleseletion.h" #include "dialogmoduleseletion.h"
#include "SectionalCounting/sectionalwid.h" #include "SectionalCounting/sectionalwid.h"
//#include "mainwindow.h" //#include "mainwindow.h"
namespace Ui { namespace Ui {
class PrintSetting; class PrintSetting;
} }
class PicScene; class PicScene;
class PicTextItem; class PicTextItem;
class PrintSetting : public QWidget,public ParaSettingUI class PrintSetting : public QWidget,public ParaSettingUI
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit PrintSetting(QWidget *parent = 0); explicit PrintSetting(QWidget *parent = 0);
~PrintSetting(); ~PrintSetting();
QString cmd; QString cmd;
QString addr; QString addr;
QString data; QString data;
QString len; QString len;
// QString comport; // QString comport;
QString type; QString type;
void updateSysParaToUI(); //重载 void updateSysParaToUI(); //重载
void applyUIPara(); //重载 void applyUIPara(); //重载
void updateCnt1GroupsTblWgt(); void updateCnt1GroupsTblWgt();
void ApplyCnt1GroupSetting(); void ApplyCnt1GroupSetting();
void updateSysStatusToUI(); void updateSysStatusToUI();
void updateAuthorization(int auth); void updateAuthorization(int auth);
void PreviewEdit(); // void PreviewEdit(); //
void bindSysPara(SysPara *sysPara); void bindSysPara(SysPara *sysPara);
//分段计米 //分段计米
void LoadCnt1GroupSettingsToUI(); void LoadCnt1GroupSettingsToUI();
void rowWidgetCreate(int rowIndex); void rowWidgetCreate(int rowIndex);
void moveRow(int currentRow, int toRow); void moveRow(int currentRow, int toRow);
void on_moveUp_clicked(); void on_moveUp_clicked();
void on_moveDown_clicked(); void on_moveDown_clicked();
//分段计米end //分段计米end
void PrintSettingLog(); void PrintSettingLog();
DlgInputAddr *dlgInputAddr; DlgInputAddr *dlgInputAddr;
DialogModuleSeletion *dialogModuleSeletion; DialogModuleSeletion *dialogModuleSeletion;
bool flagOfSpecailSettng ; bool flagOfSpecailSettng ;
bool flagOfEngineeringMode; bool flagOfEngineeringMode;
void SpecailSettingsDisplay(); void SpecailSettingsDisplay();
void EngineeringModeDisplay(); void EngineeringModeDisplay();
bool flagOfModuleDecimal; bool flagOfModuleDecimal;
bool flagOfModuleHide; bool flagOfModuleHide;
void ModuleDecimalDisplay(); void ModuleDecimalDisplay();
void ModuleHideDisplay(); void ModuleHideDisplay();
void ModuleDecimalHideDisplay(const bool bEnabled); void ModuleDecimalHideDisplay(const bool bEnabled);
void uiSettingForNo66(); void uiSettingForNo66();
void uiSettingForNo67(); void uiSettingForNo67();
void uiSettingForNo72(); void uiSettingForNo72();
void uiSettingForNo73(); void uiSettingForNo73();
void specailMachineSetting(bool); void specailMachineSetting(bool);
void displayForAdjustVoltage(bool); void displayForAdjustVoltage(bool);
void setForAdjustVoltage(); void setForAdjustVoltage();
public slots: public slots:
void updateUIForSpecialCondition(); void updateUIForSpecialCondition();
void getFpgaVersionSetDisable(); void getFpgaVersionSetDisable();
protected: protected:
void resizeEvent(QResizeEvent *event) override; void resizeEvent(QResizeEvent *event) override;
signals: signals:
void HiddenFunction(bool); void HiddenFunction(bool);
void sendDataToFPGA(QString,QString,QString,QString,QString); void sendDataToFPGA(QString,QString,QString,QString,QString);
void engineerMode(bool); void engineerMode(bool);
void checkPrintIntervalSignal(); void checkPrintIntervalSignal();
private slots: private slots:
void showMotorIsenVal(int,int); void showMotorIsenVal(int,int);
void showReclaimTankstatusslot(unsigned char); void showReclaimTankstatusslot(unsigned char);
void on_radioButtonSpecialCondition_clicked(bool checked); void on_radioButtonSpecialCondition_clicked(bool checked);
void refreshtimerHandler(void); void refreshtimerHandler(void);
void ondialogShowCounterAccepted(void); void ondialogShowCounterAccepted(void);
void on_checkVarLenChg(); void on_checkVarLenChg();
void on_VarLenSet(); void on_VarLenSet();
void on_pushButtonRanddomBackUP_pressed(); void on_pushButtonRanddomBackUP_pressed();
void PrintupdateSysParaToUI(); void PrintupdateSysParaToUI();
void showVolDacEdit(int auth); void showVolDacEdit(int auth);
void on_pushButtonApply_pressed(); void on_pushButtonApply_pressed();
void on_checkBoxResetCnt1CurrValue_released(); void on_checkBoxResetCnt1CurrValue_released();
void on_checkBoxResetCnt2CurrValue_released(); void on_checkBoxResetCnt2CurrValue_released();
void on_pushButtonClearRunTime_pressed(); void on_pushButtonClearRunTime_pressed();
void on_pushOnlyCNT1Clear_pressed(); void on_pushOnlyCNT1Clear_pressed();
void on_pushOnlyCNT2Clear_pressed(); void on_pushOnlyCNT2Clear_pressed();
void ondialogAuthorizationAccepted(); void ondialogAuthorizationAccepted();
void ondialogAuthVarSetAccepted(); void ondialogAuthVarSetAccepted();
void on_dialogModPasswdAccepted(); void on_dialogModPasswdAccepted();
void on_checkBoxSuspendAfterPhaseFault_clicked(); void on_checkBoxSuspendAfterPhaseFault_clicked();
void on_checkBoxPowerOffAfterPhaseFault_clicked(); void on_checkBoxPowerOffAfterPhaseFault_clicked();
void on_pushButtonAuth_pressed(); void on_pushButtonAuth_pressed();
// void on_pushButtonXFileSelect_pressed(); // void on_pushButtonXFileSelect_pressed();
void on_spinBoxLastLineEndPointFixedValue_valueChanged(int arg1); void on_spinBoxLastLineEndPointFixedValue_valueChanged(int arg1);
void on_pushButtonRecommendedSetting_clicked(); void on_pushButtonRecommendedSetting_clicked();
// todo // todo
void onUpdateCnt1GroupDisp(bool bChangeToNext); void onUpdateCnt1GroupDisp(bool bChangeToNext);
void on_Cnt3AddRowBtn_pressed(); void on_Cnt3AddRowBtn_pressed();
void on_Cnt3RemoveRowBtn_pressed(); void on_Cnt3RemoveRowBtn_pressed();
void on_Cnt3InsertRowBtn_pressed(); void on_Cnt3InsertRowBtn_pressed();
void on_checkBoxGroupCnt1_clicked(bool checked); void on_checkBoxGroupCnt1_clicked(bool checked);
void on_cnt3RemoveAllRowsBtn_pressed(); void on_cnt3RemoveAllRowsBtn_pressed();
void on_comboBoxAlterPrintEnable_currentIndexChanged(int index); void on_comboBoxAlterPrintEnable_currentIndexChanged(int index);
void on_checkVol1of8En_clicked(bool checked); void on_checkVol1of8En_clicked(bool checked);
void on_checkmode0211_clicked(bool checked); void on_checkmode0211_clicked(bool checked);
void on_spinBoxExpiryDate_valueChanged(int arg1); void on_spinBoxExpiryDate_valueChanged(int arg1);
void on_CBDateFormat1_currentIndexChanged(int index); void on_CBDateFormat1_currentIndexChanged(int index);
void showMachInfo(QString); void showMachInfo(QString);
void showRemoteControl(QString SuperNodeIP,QString EdgeIP); void showRemoteControl(QString SuperNodeIP,QString EdgeIP);
void on_volButton_clicked(); void on_volButton_clicked();
void on_spinBoxColDelay_valueChanged(int arg1); void on_spinBoxColDelay_valueChanged(int arg1);
void on_radioButtonFUllColFIxVal_clicked(bool checked); void on_radioButtonFUllColFIxVal_clicked(bool checked);
void on_metreCountButton_clicked(); void on_metreCountButton_clicked();
void on_lockoulsepushButton_clicked(); void on_lockoulsepushButton_clicked();
void on_spinBoxCnt1EndValue_valueChanged(int arg1); void on_spinBoxCnt1EndValue_valueChanged(int arg1);
//todo //todo
void on_pushButtonUpRow_clicked(); void on_pushButtonUpRow_clicked();
void on_pushButtonDownRow_clicked(); void on_pushButtonDownRow_clicked();
void on_checkBoxResetCnt3CurrValue_released(); void on_checkBoxResetCnt3CurrValue_released();
void on_checkBoxSaveCNTStateValue_released(); void on_checkBoxSaveCNTStateValue_released();
void on_checkBoxCircleProductCnt_released(); void on_checkBoxCircleProductCnt_released();
void on_pushOnlyCNT3Clear_pressed(); void on_pushOnlyCNT3Clear_pressed();
void setCNT1BackColor(bool flag); void setCNT1BackColor(bool flag);
void setCNT2BackColor(bool flag); void setCNT2BackColor(bool flag);
void setCNT3BackColor(bool flag); void setCNT3BackColor(bool flag);
// void setDisableFontWidth(bool); // void setDisableFontWidth(bool);
void updateMachineMac(QString); void updateMachineMac(QString);
void setDisableFontWidth(bool); void setDisableFontWidth(bool);
private slots: private slots:
void autoUpdateFontWidth(const unsigned int); void autoUpdateFontWidth(const unsigned int);
void on_checkBox_FastMode_clicked(); void on_checkBox_FastMode_clicked();
void on_spinBox_1_valueChanged(int arg1); void on_spinBox_1_valueChanged(int arg1);
void on_pushButton_2_pressed(); void on_pushButton_2_pressed();
void on_pushButton_3_pressed(); void on_pushButton_3_pressed();
void on_pushButton_4_pressed(); void on_pushButton_4_pressed();
void slt_updateCntShow(bool); void slt_updateCntShow(bool);
Q_SIGNALS: Q_SIGNALS:
void authChanged(int auth); void authChanged(int auth);
void printPriveiw(); void printPriveiw();
void change_OutputPulse(); void change_OutputPulse();
void SwitchTimerShowItem(bool flag); void SwitchTimerShowItem(bool flag);
private: private:
Ui::PrintSetting *ui; Ui::PrintSetting *ui;
//MainWindow *mainWindow; //MainWindow *mainWindow;
DialogAuthorization *dialogAuthorization; DialogAuthorization *dialogAuthorization;
DialogAuthorization *dialogAuthVarSet; DialogAuthorization *dialogAuthVarSet;
DlgVarLength *dlgvarLen; DlgVarLength *dlgvarLen;
int auth; int auth;
Dialogmodifypasswd *dialogModPasswd; Dialogmodifypasswd *dialogModPasswd;
DialogShowCounter *dialogShowCounter; DialogShowCounter *dialogShowCounter;
int modify_vol; int modify_vol;
int keepVolVal; int keepVolVal;
QTimer *refresh_timer; QTimer *refresh_timer;
int lockpulse; int lockpulse;
int area_end; int area_end;
int last_area_end; int last_area_end;
PicScene* pGetPicScene; PicScene* pGetPicScene;
//当前打印的长度 //当前打印的长度
unsigned int current_print_col_num; unsigned int current_print_col_num;
// 分段计米 // 分段计米
SectionalWid* sectionalWid = nullptr; SectionalWid* sectionalWid = nullptr;
void initSection(); void initSection();
}; };
#endif // PRINTSETTING_H #endif // PRINTSETTING_H
-44
View File
@@ -1,44 +0,0 @@
/*
* Public.h
*
* Created on: Jul 16, 2013
* Author: yiyu
* QQ:1036184468
* Descriptoin:
*/
#ifndef PUBLIC_H_
#define PUBLIC_H_
#include <Qt>
#include <QString>
#include <stdlib.h>
#include <QFont>
extern void MySleep(unsigned int msec);
class Public{
public:
Public();
~Public();
static int getMinFontPixelSize();
static QString getFontFamily(int pixelSize);
static QString getFontFamily(int pixelSize, int vartype);// 20160812
static int derivePixelSizeFromHeight(int value);
static int derivePixelSizeFromHeightNx(int value);
static int getAdjustedPixelSize(int value);
static void resetPara();
static void backupPara();
static QString readLanguageType();
static QString ReadLanguageName();
static int getNumberHeight(QFont font);
static time_t getDateFromMacro(const char *time);
static QString DateToString(const char *time);
static int getType(int vartype); // 将变量类型进行转换,以处理横向字体
};
#endif /* PUBLIC_H_ */
+2 -23
View File
@@ -369,33 +369,12 @@ QString Public::DateToString(char const *time){
int month, day, year; int month, day, year;
//struct tm t = {0}; //struct tm t = {0};
static const char month_names[] = "JanFebMarAprMayJunJulAugSepOctNovDec"; static const char month_names[] = "JanFebMarAprMayJunJulAugSepOctNovDec";
//qDebug()<<time;
sscanf(time, "%s %d %d", s_month, &day, &year); sscanf(time, "%s %d %d", s_month, &day, &year);
//qDebug()<<time<<s_month<<day<<year;
month = ((strstr(month_names, s_month)-month_names)/3)+1; month = ((strstr(month_names, s_month)-month_names)/3)+1;
//qDebug()<<month<<s_month;
QString s; QString s;
s.sprintf("%04d-%02d-%02d",year,month,day); // s.sprintf("%04d-%02d-%02d",year,month,day);
return s; s.sprintf("%02d%02d",month,day);
}
QString Public::ArmDate2String(const char *date, const char *time)
{
char s_month[5];
int month, day, year;
static const char month_names[] = "JanFebMarAprMayJunJulAugSepOctNovDec";
sscanf(date, "%s %d %d", s_month, &day, &year);
month = ((strstr(month_names, s_month)-month_names)/3)+1;
QString dateStr;
dateStr.sprintf("A%04d%02d%02d",year,month,day);
int hour, min, secend;
sscanf(time, "%d:%d:%d", &hour, &min, &secend);
QString timeStr;
timeStr.sprintf("%02d%02d", hour, min);
QString s = dateStr+timeStr;
return s; return s;
} }
-2
View File
@@ -36,8 +36,6 @@ public:
static time_t getDateFromMacro(const char *time); static time_t getDateFromMacro(const char *time);
static QString DateToString(const char *time); static QString DateToString(const char *time);
static QString ArmDate2String(const char * date, const char * time);
static QString ReadKeyBoardUse(); static QString ReadKeyBoardUse();
static int getType(int vartype); // 将变量类型进行转换,以处理横向字体 static int getType(int vartype); // 将变量类型进行转换,以处理横向字体
+1 -13
View File
@@ -57,7 +57,7 @@ DEFINES+=WARNING
DEFINES+=TEMPMIMA DEFINES+=TEMPMIMA
DEFINES+=COUNTER1_BY_GROUP #分段计米 DEFINES+=COUNTER1_BY_GROUP #分段计米
# DEFINES+=COUNTER2_BY_GROUP #分段计米2 #DEFINES+=COUNTER2_BY_GROUP #分段计米2
DEFINES+=_2DCODE_ #QR二维码 DEFINES+=_2DCODE_ #QR二维码
DEFINES+=PICSCENE DEFINES+=PICSCENE
#DEFINES+=__2451WIFI__ #DEFINES+=__2451WIFI__
@@ -417,15 +417,3 @@ if(contains(DEFINES,__2451WIFI__))
#INCLUDEPATH += /home/student/newDisk/2451_linux/wpa_supplicant_hostapd/wpa_supplicant_hostapd-0.8/src #INCLUDEPATH += /home/student/newDisk/2451_linux/wpa_supplicant_hostapd/wpa_supplicant_hostapd-0.8/src
#INCLUDEPATH += /home/student/newDisk/2451_linux/wpa_supplicant_hostapd/wpa_supplicant_hostapd-0.8/src/utils #INCLUDEPATH += /home/student/newDisk/2451_linux/wpa_supplicant_hostapd/wpa_supplicant_hostapd-0.8/src/utils
} }
+4 -1
View File
@@ -1,3 +1,6 @@
# VX5-DiaphragmPump # VX5-DiaphragmPump
vx5隔膜泵版本 vx5隔膜泵版本
基于最新的vx5齿轮泵代码,仅修改为隔膜泵算法,并在产线测试后提交
20260826 hlp
+5
View File
@@ -25,6 +25,11 @@ void SectionalManager::emitLoadUI()
emit sig_loadSettings2UI(); emit sig_loadSettings2UI();
} }
void SectionalManager::emitCancelSection()
{
emit sig_cancelSection();
}
SectionalManager::SectionalManager() SectionalManager::SectionalManager()
{ {
+3 -1
View File
@@ -25,6 +25,8 @@ public:
//应用配置 //应用配置
void emitLoadUI(); void emitLoadUI();
// 取消分段计米
void emitCancelSection();
private: private:
SectionalManager(); SectionalManager();
@@ -33,7 +35,7 @@ signals:
void sig_applySetting(); void sig_applySetting();
void sig_loadSettings2UI(); void sig_loadSettings2UI();
void sig_updateCntGroupDisp(bool); void sig_updateCntGroupDisp(bool);
void sig_cancelSection();
}; };
#endif // SECTIONALMANAGER_H #endif // SECTIONALMANAGER_H
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -64,7 +64,7 @@ private slots:
void slt_applySetting(); void slt_applySetting();
void slt_loadSettings2UI(); void slt_loadSettings2UI();
void slt_updateCntGroupDisp(bool bChangeToNext); void slt_updateCntGroupDisp(bool bChangeToNext);
void slt_cancelSection();
private: private:
Ui::SectionalWid *ui; Ui::SectionalWid *ui;
SysPara* sysPara = nullptr; SysPara* sysPara = nullptr;
+10
View File
@@ -23,6 +23,7 @@
#include <unistd.h> #include <unistd.h>
#include<iostream> #include<iostream>
#include<string> #include<string>
#include "VerBVersion.h"
#define VNLG #define VNLG
SysPara::SysPara(void): SysPara::SysPara(void):
@@ -30,6 +31,9 @@ SysPara::SysPara(void):
memset(&para,0,sizeof(para)); memset(&para,0,sizeof(para));
memset(&status,0,sizeof(status)); memset(&status,0,sizeof(status));
para.airPushDurationSec = 4;
//qDebug("start to loadParaFromFile."); //qDebug("start to loadParaFromFile.");
loadParaFromFile(); loadParaFromFile();
//qDebug("loadParaFromFile ok."); //qDebug("loadParaFromFile ok.");
@@ -57,6 +61,10 @@ SysPara::SysPara(void):
//para.HVFaultCloseEn= 1; //开机默认为1,允许高压故障自动关闭回收功能 //para.HVFaultCloseEn= 1; //开机默认为1,允许高压故障自动关闭回收功能
// 隔膜泵版本强制开启回收泵模式
if(PUMP_VER == QString("D"))
para.flagOfReclaimPumEnable = true;
devOp->writeFpgaPrintPara(true); //系统起来的时候,将上次记录的配置写入fpga,比如晶振分频等信息 devOp->writeFpgaPrintPara(true); //系统起来的时候,将上次记录的配置写入fpga,比如晶振分频等信息
devOp->writeFpgaVariCtrl(); devOp->writeFpgaVariCtrl();
devOp->resumeFault(); devOp->resumeFault();
@@ -174,6 +182,8 @@ void SysPara::loadDefaultPara(){
para.enableChargeFullTime = 1;//充电占空百分比 para.enableChargeFullTime = 1;//充电占空百分比
para.mixValveisNewVersion = 1;//混和阀是否是新管路 para.mixValveisNewVersion = 1;//混和阀是否是新管路
para.airPushDurationSec = 4;
} }
void SysPara::saveParaToFile(){ void SysPara::saveParaToFile(){
+1344 -1342
View File
File diff suppressed because it is too large Load Diff
+847 -842
View File
File diff suppressed because it is too large Load Diff
+70 -70
View File
@@ -1,70 +1,70 @@
#ifndef SSYSTEMSETTING_H #ifndef SSYSTEMSETTING_H
#define SSYSTEMSETTING_H #define SSYSTEMSETTING_H
#include <QWidget> #include <QWidget>
#include <QProgressBar> #include <QProgressBar>
#include "ParaSettingUI.h" #include "ParaSettingUI.h"
#include "TimeSettingDialog.h" #include "TimeSettingDialog.h"
#include <QTimer> #include <QTimer>
#include "DialogAuthorization.h" #include "DialogAuthorization.h"
#include "dlgmutilanguage.h" #include "dlgmutilanguage.h"
#include <iostream> #include <iostream>
namespace Ui { namespace Ui {
class SystemSetting; class SystemSetting;
} }
class SystemSetting : public QWidget,public ParaSettingUI class SystemSetting : public QWidget,public ParaSettingUI
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit SystemSetting(QWidget *parent = 0); explicit SystemSetting(QWidget *parent = 0);
~SystemSetting(); ~SystemSetting();
void updateSysParaToUI(); //重载 void updateSysParaToUI(); //重载
void applyUIPara(); //重载 void applyUIPara(); //重载
void updateSysStatusToUI(); //重载 void updateSysStatusToUI(); //重载
QProgressBar progressBar; QProgressBar progressBar;
void updateReclaimTime(int time); void updateReclaimTime(int time);
void updateViscosityAdjust(int offset); void updateViscosityAdjust(int offset);
void updateAuthorization(int auth); void updateAuthorization(int auth);
void setSpinBoxPressureMaxValue(int pressureVal); void setSpinBoxPressureMaxValue(int pressureVal);
void SystemSettingLog(); void SystemSettingLog();
bool lastHighVoltageOpen; bool lastHighVoltageOpen;
public slots: public slots:
void setFreqFixVisible(bool visible); void setFreqFixVisible(bool visible);
Q_SIGNALS: Q_SIGNALS:
void changeEditMode(int); void changeEditMode(int);
void setRunStatus(QString); void setRunStatus(QString);
void pressureAdjust(); void pressureAdjust();
private slots: private slots:
void setInterfaceMode(); void setInterfaceMode();
void SystemupdateSysParaToUI(); void SystemupdateSysParaToUI();
void on_spinBoxReclaimPumpPower_valueChanged(int arg1); void on_spinBoxReclaimPumpPower_valueChanged(int arg1);
void on_pushButtonCleanUP_pressed(); void on_pushButtonCleanUP_pressed();
void on_pushButtonHighVoltageData_pressed(); void on_pushButtonHighVoltageData_pressed();
void on_pushButtonApply_pressed(); void on_pushButtonApply_pressed();
void on_pushButtonSearchBestOscillatorVoltage_pressed(); void on_pushButtonSearchBestOscillatorVoltage_pressed();
void on_pushButtonSearchBestOscillatorFreq_pressed(); void on_pushButtonSearchBestOscillatorFreq_pressed();
void timerHandler(); void timerHandler();
void on_spinBoxOscillatorVoltage_valueChanged(int arg1); void on_spinBoxOscillatorVoltage_valueChanged(int arg1);
void on_pushButtonInterFace_pressed(); void on_pushButtonInterFace_pressed();
void ondialogAuthorizationAccepted(); void ondialogAuthorizationAccepted();
void onCleanUPNow(); void onCleanUPNow();
void timerHandler2(); void timerHandler2();
void autoControlPressure(); void autoControlPressure();
private: private:
Ui::SystemSetting *ui; Ui::SystemSetting *ui;
DlgMutiLanguage dlgLanguage; DlgMutiLanguage dlgLanguage;
QTimer *timer,*timer2, *SetinkcloseCountTimer, *timerAuto; QTimer *timer,*timer2, *SetinkcloseCountTimer, *timerAuto;
unsigned char enCleanUpAppendFlag; // 0空闲,1关开回收槽,2手动,3清洗,4恢复,5停止,6 unsigned char enCleanUpAppendFlag; // 0空闲,1关开回收槽,2手动,3清洗,4恢复,5停止,6
bool r_PumpValveControledByHand; bool r_PumpValveControledByHand;
DialogAuthorization *dialogUpateMm; DialogAuthorization *dialogUpateMm;
}; };
#endif // SSYSTEMSETTING_H #endif // SSYSTEMSETTING_H
+1794 -1797
View File
File diff suppressed because it is too large Load Diff
+7 -21
View File
@@ -93,13 +93,11 @@ TriggerCtrl::TriggerCtrl(QWidget *parent) :
connect(pulseNumFix,SIGNAL(pulseNuxFixDone(float)),this,SLOT(onPulseNumFixDone(float))); connect(pulseNumFix,SIGNAL(pulseNuxFixDone(float)),this,SLOT(onPulseNumFixDone(float)));
updateSysStatusToUI(); updateSysStatusToUI();
QString s; QString s;
// s.sprintf("%d.%d.%02d%s%s_", UP_PRINTER_MAJOR_VER, UP_PRINTER_MINOR_VER,UP_PRINTER_RIVISION_VER,SUB_VERSION,SUB_RFID);
s.sprintf("%d.%d.%02d%s%s_", UP_PRINTER_MAJOR_VER, UP_PRINTER_MINOR_VER,UP_PRINTER_RIVISION_VER,SUB_VERSION,SUB_RFID); s.sprintf("%s.%s.", MACHINAE_VER, PUMP_VER);
s = s + (QString) Public::DateToString(__DATE__)+"_"+ QString(__TIME__)+"_"; s = s + (QString) Public::DateToString(__DATE__)+"."+SUB_VER+SUB_RFID;
// hlp :邓总要求,采用新的格式进行转换 0727
// s = Public::ArmDate2String(__DATE__, __TIME__);
ui->test_version->setText(s); ui->test_version->setText(s);
ui->checkBoxEleEyeMakeClean->setVisible(false); ui->checkBoxEleEyeMakeClean->setVisible(false);
tr("独立参数"); tr("独立参数");
@@ -398,16 +396,6 @@ void TriggerCtrl::updateSysStatusToUI(){
ui->spinBoxpluseSinal->setValue(sysPara->para.pulse_sinal_value); ui->spinBoxpluseSinal->setValue(sysPara->para.pulse_sinal_value);
t_init = 1; t_init = 1;
} }
// if((sysPara->para.printTriggerMode == PRINT_TRIGGER_SYNCHRONIZER))
// {
// ui->lineEditPulseCount ->setText(QString::number((int )((sysPara->para.synTriggerPrintLenMm)*sysPara->para.synPulseNumPerMm)));
// }
// else if(((sysPara->para.printTriggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL
// ||sysPara->para.printTriggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE)
// && sysPara->para.eleEyeTriggerSynPrintEn))
// {
// ui->lineEditPulseCount ->setText(QString::number( (int )((sysPara->para.elecEyeTriggerInterval)*sysPara->para.synPulseNumPerMm)));
// }
} }
} }
@@ -511,11 +499,9 @@ void TriggerCtrl::on_checkBoxPulseOutputEnable_clicked()
void TriggerCtrl::setBuildTime(QString s1) void TriggerCtrl::setBuildTime(QString s1)
{ {
QString s; QString s;
s.sprintf("A%d.%d.%02d%s%s_", UP_PRINTER_MAJOR_VER, UP_PRINTER_MINOR_VER,UP_PRINTER_RIVISION_VER,SUB_VERSION,SUB_RFID); // s.sprintf("A%d.%d.%02d%s%s_", UP_PRINTER_MAJOR_VER, UP_PRINTER_MINOR_VER,UP_PRINTER_RIVISION_VER,SUB_VERSION,SUB_RFID);
s = s + (QString) Public::DateToString(__DATE__)+ "_"+ QString(__TIME__); s.sprintf("%s.%s.", MACHINAE_VER, PUMP_VER);
// hlp :邓总要求,采用新的格式进行转换 0727 s = s + (QString) Public::DateToString(__DATE__)+"."+SUB_VER+SUB_RFID;//+ "_"+ QString(__TIME__)
// s = Public::ArmDate2String(__DATE__, __TIME__);
ui->test_version->setText(s+s1); ui->test_version->setText(s+s1);
} }
+30 -31
View File
@@ -1,31 +1,30 @@
#ifndef VERBVERSION_H #ifndef VERBVERSION_H
#define VERBVERSION_H #define VERBVERSION_H
#include "myinclude.h" #include "myinclude.h"
/* /*
Major.Minor.Rivison.yyyy-MM-DD_Beta VX5.D.0826.0100_Std(-C)
*/ MACHINAE_VER.PUMP_VER.MMdd.SUB_VER+SUB_RFID
#define UP_PRINTER_MAJOR_VER 6 */
#define UP_PRINTER_MINOR_VER 8 #define MACHINAE_VER "VX5"
#define UP_PRINTER_RIVISION_VER 3 #define PUMP_VER "D"
// #define SUB_VERSION "_GuiL" //#define SUB_VER "0100"
//#define SUB_VERSION "_JingZ" //#define SUB_VER "IND"
//#define SUB_VERSION "_RFID" #define SUB_VER "GuiL"
#define SUB_VERSION "_Std"
// #define SUB_VERSION "_Std_VZ" #ifdef __RFID_OLD
#define SUB_RFID "_RO"
#ifdef __RFID_OLD #else
#define SUB_RFID "_RO" #define SUB_RFID "_Std"
#else #endif
#define SUB_RFID ""
#endif #ifdef __RFID_CARD
//#define UP_PRINTER_STAGE_VER "Std" #undef SUB_RFID
//#define UP_PRINTER_STAGE_VER "Beta" #define SUB_RFID "-C"
//#define UP_PRINTER_STAGE_VER "RC" #endif
//#define UP_PRINTER_STAGE_VER "Release"
#define VERNONBACH_VERSION(a,b,c) (((a)<<16) + ((b)<<8) + (c))
#define VERNONBACH_VERSION(a,b,c) (((a)<<16) + ((b)<<8) + (c))
#define VERNONBACH_VERSION_CODE VERNONBACH_VERSION(UP_PRINTER_MAJOR_VER, UP_PRINTER_MINOR_VER, UP_PRINTER_RIVISION_VER)
#define VERNONBACH_VERSION_CODE VERNONBACH_VERSION(UP_PRINTER_MAJOR_VER, UP_PRINTER_MINOR_VER, UP_PRINTER_RIVISION_VER)
#endif // VERBVERSION_H
#endif // VERBVERSION_H
-21660
View File
File diff suppressed because it is too large Load Diff
+602 -584
View File
File diff suppressed because it is too large Load Diff
-4100
View File
File diff suppressed because it is too large Load Diff
-5362
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+606 -579
View File
File diff suppressed because it is too large Load Diff
-4210
View File
File diff suppressed because it is too large Load Diff
-4223
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-4399
View File
File diff suppressed because it is too large Load Diff
-4223
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+605 -579
View File
File diff suppressed because it is too large Load Diff
+2595 -2595
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+604 -579
View File
File diff suppressed because it is too large Load Diff
+79 -122
View File
@@ -436,14 +436,16 @@ void MainWindow::RefreshStatusLight(){//100ms
static int reclainTankReachEnd = 0; static int reclainTankReachEnd = 0;
if((!(sysPara->status.statWarn & WARN_STATUS_HDINT)) && (hdint == 0)) { //喷头盖由开变关 if((!(sysPara->status.statWarn & WARN_STATUS_HDINT)) && (hdint == 0)) { //喷头盖由开变关
if (sysPara->status.reclainTankReachEnd) { if (sysPara->status.reclainTankReachEnd) {
sysPara->devOp->highVoltageCtrl(sysPara->para.HighVoltageAmplitude); // sysPara->devOp->highVoltageCtrl(sysPara->para.HighVoltageAmplitude);
sysPara->devOp->highVoltageCtrl(0);
} }
} }
hdint = !(sysPara->status.statWarn & WARN_STATUS_HDINT); hdint = !(sysPara->status.statWarn & WARN_STATUS_HDINT);
if(sysPara->status.reclainTankReachEnd && reclainTankReachEnd == 0) { //开回收槽到底 if(sysPara->status.reclainTankReachEnd && reclainTankReachEnd == 0) { //开回收槽到底
if (!(sysPara->status.statWarn & WARN_STATUS_HDINT)) { //喷头盖是关闭的状态 if (!(sysPara->status.statWarn & WARN_STATUS_HDINT)) { //喷头盖是关闭的状态
sysPara->devOp->highVoltageCtrl(sysPara->para.HighVoltageAmplitude); // sysPara->devOp->highVoltageCtrl(sysPara->para.HighVoltageAmplitude);
sysPara->devOp->highVoltageCtrl(0);
} }
} }
reclainTankReachEnd = sysPara->status.reclainTankReachEnd; reclainTankReachEnd = sysPara->status.reclainTankReachEnd;
@@ -834,7 +836,10 @@ void MainWindow::updateSysStatusToUI(){ //100ms
sysPara->devOp->readbuilDat(); sysPara->devOp->readbuilDat();
} }
firstGetFpgaVersionNumFlag=1; firstGetFpgaVersionNumFlag=1;
ui->labelFpgaVersionNum->setText(QString("%1/F%2.%3.%4").arg(SOFTWARE_VER_NUM).arg(0).arg(0).arg(0) ); QString ARM_Version;
ARM_Version.sprintf("%s.%s.", MACHINAE_VER, PUMP_VER);
ARM_Version = ARM_Version + (QString) Public::DateToString(__DATE__)+"."+SUB_VER+SUB_RFID;
ui->labelFpgaVersionNum->setText(QString("%1/F%2.%3.%4").arg(ARM_Version).arg(0).arg(0).arg(0) );
} }
else{ else{
static bool logflag5 = true; static bool logflag5 = true;
@@ -847,8 +852,9 @@ void MainWindow::updateSysStatusToUI(){ //100ms
logflag5 = false; logflag5 = false;
sysPara->devOp->writeFpgaPrintPara(true); sysPara->devOp->writeFpgaPrintPara(true);
QString ARM_Version; QString ARM_Version;
ARM_Version.sprintf("%d.%d.%02d%s%s", UP_PRINTER_MAJOR_VER, UP_PRINTER_MINOR_VER,UP_PRINTER_RIVISION_VER,SUB_VERSION,SUB_RFID); ARM_Version.sprintf("%s.%s.", MACHINAE_VER, PUMP_VER);
ui->labelFpgaVersionNum->setText(QString("A%1/F%2.%3.%4").arg(ARM_Version).arg(sysPara->status.fpgaVersionNum >> 12) ARM_Version = ARM_Version + (QString) Public::DateToString(__DATE__)+"."+SUB_VER+SUB_RFID;
ui->labelFpgaVersionNum->setText(QString("%1/F%2.%3.%4").arg(ARM_Version).arg(sysPara->status.fpgaVersionNum >> 12)
.arg((sysPara->status.fpgaVersionNum>>8) & 0x0f).arg(sysPara->status.fpgaVersionNum&0xff) ); .arg((sysPara->status.fpgaVersionNum>>8) & 0x0f).arg(sysPara->status.fpgaVersionNum&0xff) );
} }
} }
@@ -1692,13 +1698,7 @@ void MainWindow::generateCharRamData(){/* 生成字模数据 */
p_var->original = true; p_var->original = true;
p_var->currVal = -1; //相当于初始化 p_var->currVal = -1; //相当于初始化
ramAddress += rowByteNum * width2; ramAddress += rowByteNum * width2;
} else {
qDebug() << "startRowPos:" << p_var->startRowPos
<<" endRowPos:" << p_var->endRowPos
<<" rowDiff:" << rowDiff
<< " 按原逻辑,执行这一步的时候软件就已经崩溃了";
} }
} }
} }
} }
@@ -2036,85 +2036,48 @@ void MainWindow::enablePrintButton(bool enable){
ui->pushButtonStopPrint->setEnabled(enable); ui->pushButtonStopPrint->setEnabled(enable);
} }
static int mainInkPumpCtrlStatus = 0;
static int mainInkPumpCtrlCnt = 0;
//100ms 为单位
void MainWindow::airPushingProcess() void MainWindow::airPushingProcess()
{ {
if(sysPara){ if(sysPara){
if (sysPara->status.airPushing) { if (sysPara->status.airPushing) {
//qDebug()<< "start airPushingProcess "<<sysPara->status.airPushingOnTime;
// 执行排气 7 秒
setRunStatus(tr("正在排气 ...............")); setRunStatus(tr("正在排气 ..............."));
++sysPara->status.airPushingOnTime; // 执行排气 4 秒
if(sysPara->status.airPushingOnTime >= 50) { sysPara->status.airPushingOnTime += 100;
static int delayCount = 0;
++delayCount;
m_2sFlag = true;
//sysPara->devOp->controlInkValve(false); //关供墨阀
if(delayCount >= 40)
{
m_2sFlag = false;
}
if(delayCount >= 60)
{
delayCount = 0;
airPushTimer->stop();
sysPara->devOp->controlViscosityPump(false);
reclaimTanOpen();
//qDebug()<< "start stop";
sysPara->status.airPushingDone = 1;
sysPara->status.airPushing = 0;
sysPara->status.airPushingOnTime = 0;
}
if(sysPara->para.airPushDurationSec <= 0 || sysPara->para.airPushDurationSec > 30) {
sysPara->para.airPushDurationSec = 4;
sysPara->saveParaToFile();
}
// 延迟 7 秒后才开回收槽,正式结束排气阶段. reclaimTanOpen:会延迟半秒
if(sysPara->status.airPushingOnTime >= sysPara->para.airPushDurationSec * 1000 + 6500){
airPushTimer->stop();
setRunStatus(tr("排气结束, 打开回收槽."));
LogInfo::setRunStatusText(tr("排气结束, 打开回收槽."));
reclaimTanOpen();
sysPara->status.airPushingDone = 1;
sysPara->status.airPushing = 0;
sysPara->status.airPushingOnTime = 0;
return; return;
} }
if (sysPara->status.airPushingOnTime%10 >= 5) { if(sysPara->status.airPushingOnTime >= sysPara->para.airPushDurationSec * 1000){
sysPara->devOp->controlCycleValve(true);
} if(sysPara->devOp->isViscosityPumpOpen())
else { sysPara->devOp->controlViscosityPump(false);
sysPara->devOp->controlCycleValve(false);
} if(sysPara->devOp->isCycleValveOpen())
if (mainInkPumpCtrlStatus == 0) { sysPara->devOp->controlCycleValve(false);
if(++mainInkPumpCtrlCnt > 15) { //100ms 为单位, 时间到关闭
sysPara->devOp->controlMainInkPump(false); if(!sysPara->devOp->isReclaimPumpOpen())
sysPara->devOp->mainInkCtrl(); sysPara->devOp->controlReclaimPump(true, false);
mainInkPumpCtrlStatus = 1;
mainInkPumpCtrlCnt = 0; setRunStatus(tr("排气结束, 准备打开回收槽."));
} LogInfo::setRunStatusText(tr("排气结束, 准备打开回收槽."));
} sysPara->status.isPumpValveControledByHand = false;//切换手动,调节压力
else if (mainInkPumpCtrlStatus == 1) { //100ms 为单位, 时间到开启 return;
sysPara->devOp->controlMainInkPump(true);
sysPara->devOp->mainInkCtrl();
mainInkPumpCtrlStatus = 2;
}
else if (mainInkPumpCtrlStatus == 2) {
if(++mainInkPumpCtrlCnt>7) {
sysPara->devOp->controlMainInkPump(false);
sysPara->devOp->mainInkCtrl();
mainInkPumpCtrlStatus = 3;
mainInkPumpCtrlCnt = 0;
}
}
else if (mainInkPumpCtrlStatus == 3) {
if(++mainInkPumpCtrlCnt>8) {
sysPara->devOp->controlMainInkPump(true);
sysPara->devOp->mainInkCtrl();
mainInkPumpCtrlStatus = 4;
mainInkPumpCtrlCnt = 0;
}
}
else if (mainInkPumpCtrlStatus == 4) {
if(++mainInkPumpCtrlCnt>8) {
sysPara->devOp->controlMainInkPump(false);
sysPara->devOp->mainInkCtrl();
mainInkPumpCtrlStatus = 3;
mainInkPumpCtrlCnt = 0;
}
} }
} }
} }
@@ -2122,30 +2085,29 @@ void MainWindow::airPushingProcess()
void MainWindow::reclaimTanOpen() void MainWindow::reclaimTanOpen()
{ {
// 还原当前模式
if (sysPara->status.airPushing) {
sysPara->status.isPumpValveControledByHand = sysPara->status.byHandStore;
}
sysPara->status.isPumpValveControledByHand = false; sysPara->status.isPumpValveControledByHand = false;
sysPara->devOp->mainInkCtrl(); sysPara->devOp->mainInkCtrl();
sysPara->devOp->controlReclaimTankClose(false);//开回收槽之前先让关回收槽停止 // 如果是排气流程,则不需要先收
MySleep(1000); if (sysPara->status.airPushingDone)
sysPara->devOp->controlReclaimTankOpen(!sysPara->devOp->isReclaimTankOpenEnable()); sysPara->devOp->controlReclaimTankClose(false);//开回收槽之前先让关回收槽停止
ui->pushButtonReclaimTanOpen->setText(sysPara->devOp->isReclaimTankOpenEnable()?tr("停止"):tr("开")); MySleep(500);
ui->pushButtonReclaimTankClose->setText(tr("关"));
enablePrintButton(SIMULATE_PRINTING_MODE);
sysPara->devOp->highVoltageCtrl(0); /*回收槽动作的时候务必关高压*/
// sysPara->status.reclaimTankstatus = 1;
setRunStatus(sysPara->devOp->isReclaimTankOpenEnable()?tr("正在打开回收槽..."):tr("停止打开"));
if (!sysPara->para.reclaimTankTime) {
LogInfo::setRunStatusText(tr("警告!回收槽开关时间未设置!"));
}
sysPara->status.currReclaimOperationCnt = 0; sysPara->status.currReclaimOperationCnt = 0;
sysPara->status.reclainTankReachEnd = false; sysPara->status.reclainTankReachEnd = false;
sysPara->status.reclainOpenAppending = true; sysPara->status.reclainOpenAppending = true;
sysPara->status.reclainCloseAppending = false; sysPara->status.reclainCloseAppending = false;
sysPara->status.reclaimBlockedCnt = 0; sysPara->status.reclaimBlockedCnt = 0;
sysPara->status.canRunAirPushing = false; sysPara->status.canRunAirPushing = false;
sysPara->devOp->controlReclaimTankOpen(!sysPara->devOp->isReclaimTankOpenEnable());
sysPara->devOp->highVoltageCtrl(0); /*回收槽动作的时候务必关高压*/
ui->pushButtonReclaimTanOpen->setText(
sysPara->devOp->isReclaimTankOpenEnable()?tr("停止"):tr("开"));
ui->pushButtonReclaimTankClose->setText(tr("关"));
setRunStatus(sysPara->devOp->isReclaimTankOpenEnable()?tr("正在打开回收槽..."):tr("停止打开"));
if (!sysPara->para.reclaimTankTime) {
LogInfo::setRunStatusText(tr("警告!回收槽开关时间未设置!"));
}
} }
void MainWindow::handleCode(int col, int row, int *varLastRow, int type) void MainWindow::handleCode(int col, int row, int *varLastRow, int type)
@@ -2177,18 +2139,17 @@ void MainWindow::on_pushButtonReclaimTanOpen_pressed()
if(sysPara){ if(sysPara){
if (!sysPara->status.reclaimTankBlockedAppending) { if (!sysPara->status.reclaimTankBlockedAppending) {
if (sysPara->status.canRunAirPushing && (sysPara->status.currReclaimTankPos == 0)) { // 回收槽关闭的情况下才可以执行排气;//2019/10/24 当回收槽未在顶的位置,不需要排气 if (sysPara->status.canRunAirPushing && (sysPara->status.currReclaimTankPos == 0)) { // 回收槽关闭的情况下才可以执行排气;//2019/10/24 当回收槽未在顶的位置,不需要排气
if (!sysPara->status.airPushing) { // 先执行排气后开回收槽 if (!sysPara->status.airPushing) {
sysPara->status.byHandStore = sysPara->status.isPumpValveControledByHand; // 先执行排气后开回收槽
sysPara->status.isPumpValveControledByHand = true; sysPara->status.isPumpValveControledByHand = true;
sysPara->devOp->mainInkCtrl(); sysPara->devOp->mainInkCtrl();
sysPara->devOp->controlCycleValve(true); sysPara->devOp->controlCycleValve(true);
sysPara->devOp->controlViscosityPump(false);//关粘度泵 sysPara->devOp->controlViscosityPump(true);//关粘度泵
sysPara->devOp->controlMainInkPump(true);//主墨泵敞开 sysPara->devOp->controlMainInkPump(true);//主墨泵敞开
sysPara->devOp->mainInkCtrl(); sysPara->devOp->mainInkCtrl();
sysPara->devOp->controlReclaimPump(true, false); // 回收泵开 sysPara->devOp->controlReclaimPump(true, false); // 回收泵开
sysPara->devOp->controlInkValve(true); //墨水阀 sysPara->devOp->controlInkValve(true); //墨水阀
sysPara->devOp->controlInkValvePWM(true); //墨水阀 sysPara->devOp->controlInkValvePWM(true); //墨水阀
//qDebug()<< "start airpushings";
sysPara->status.airPushing = 1; sysPara->status.airPushing = 1;
sysPara->status.airPushingDone = 0; sysPara->status.airPushingDone = 0;
@@ -2252,13 +2213,16 @@ void MySleep(unsigned int msec);
* 关机前务必保存参数 * 关机前务必保存参数
* */ * */
void MainWindow::checkForPowerOff(){ void MainWindow::checkForPowerOff(){
if(m_powerOffInProgress)
return;
if(sysPara->status.powerOffAppending){ if(sysPara->status.powerOffAppending){
m_powerOffInProgress = true;
if(!sysPara->status.selfCheckDone) if(!sysPara->status.selfCheckDone)
sysPara->status.selfCheckDone = true; sysPara->status.selfCheckDone = true;
this->setDisabled(true); this->setDisabled(true);
emit setDisableAll(); emit setDisableAll();
////////关机时提高转速和回收泵压力,粘度泵和循环阀///// ////////关机时通过闭环控制维持压力,控制目标不超过650/////
quint16 gearPumpValue_backup = sysPara->para.gearPumpValue;
int reclaimPumpPWMWidth_backup = sysPara->para.reclaimPumpPWMWidth;; int reclaimPumpPWMWidth_backup = sysPara->para.reclaimPumpPWMWidth;;
if(!(sysPara->status.statWarn & WARN_STATUS_INK_WARN)) if(!(sysPara->status.statWarn & WARN_STATUS_INK_WARN))
{ {
@@ -2284,17 +2248,11 @@ void MainWindow::checkForPowerOff(){
} }
} }
sysPara->devOp->controlReclaimTankOpen(true); sysPara->devOp->controlReclaimTankOpen(true);
sysPara->status.isPumpValveControledByHand = true; //停止自动 sysPara->status.isPumpValveControledByHand = true; // 阀门保持手动,隔膜泵由关机闭环控制
if(sysPara->para.gearPumpEnable ){ if(sysPara->para.gearPumpEnable ){
if(!sysPara->para.flagOfReclaimPumEnable){ if(sysPara->para.flagOfReclaimPumEnable)
sysPara->para.gearPumpValue = 360;
sysPara->devOp->WriteMoterPump();
}
else{
sysPara->devOp->controlReclaimPump(true,false); sysPara->devOp->controlReclaimPump(true,false);
sysPara->para.gearPumpValue = 0; // 不再固定输出360,隔膜泵由pressureAdj按关机目标压力闭环调节
sysPara->devOp->WriteMoterPump();
}
} }
else{ else{
sysPara->para.reclaimPumpPWMWidth = 95; sysPara->para.reclaimPumpPWMWidth = 95;
@@ -2325,7 +2283,10 @@ void MainWindow::checkForPowerOff(){
updateTotalCnt(0); updateTotalCnt(0);
sysPara->saveParaToFile(); // 关机前将相关配置保存 sysPara->saveParaToFile(); // 关机前将相关配置保存
} }
// 退出关机压力维持阶段,后续关闭泵阀时禁止隔膜泵再次启动
sysPara->status.powerOffAppending = false; sysPara->status.powerOffAppending = false;
sysPara->para.gearPumpValue = 0;
sysPara->devOp->WriteMoterPump();
if(!TEST_MODE){ if(!TEST_MODE){
for(int i=7;i>0;i--) for(int i=7;i>0;i--)
{ {
@@ -2344,7 +2305,8 @@ void MainWindow::checkForPowerOff(){
} }
} }
emit CloseJd(); emit CloseJd();
sysPara->para.gearPumpValue=gearPumpValue_backup; sysPara->para.gearPumpValue = 0;
sysPara->devOp->WriteMoterPump();
sysPara->para.reclaimPumpPWMWidth = reclaimPumpPWMWidth_backup; sysPara->para.reclaimPumpPWMWidth = reclaimPumpPWMWidth_backup;
sysPara->devOp->controlCompressPump(false); sysPara->devOp->controlCompressPump(false);
setRunStatus(tr("准备关机......")); setRunStatus(tr("准备关机......"));
@@ -4462,15 +4424,9 @@ void MainWindow::on_pushButton_Reboot_clicked()
sysPara->devOp->controlReclaimTankOpen(true); sysPara->devOp->controlReclaimTankOpen(true);
sysPara->status.isPumpValveControledByHand = true; //停止自动 sysPara->status.isPumpValveControledByHand = true; //停止自动
if(sysPara->para.gearPumpEnable ){ if(sysPara->para.gearPumpEnable ){
if(!sysPara->para.flagOfReclaimPumEnable){ if(sysPara->para.flagOfReclaimPumEnable)
sysPara->para.gearPumpValue = 360;
sysPara->devOp->WriteMoterPump();
}
else{
sysPara->devOp->controlReclaimPump(true,false); sysPara->devOp->controlReclaimPump(true,false);
sysPara->para.gearPumpValue = 0; // 不再固定输出360,由闭环控制维持压力
sysPara->devOp->WriteMoterPump();
}
} }
else{ else{
sysPara->para.reclaimPumpPWMWidth = 95; sysPara->para.reclaimPumpPWMWidth = 95;
@@ -4622,7 +4578,8 @@ void MainWindow::UpdateUIVersion(){
.arg((sysPara->status.stm32Verion>>8) & 0xFF).arg(sysPara->status.stm32Verion&0xFF).arg(baudRateValue); .arg((sysPara->status.stm32Verion>>8) & 0xFF).arg(sysPara->status.stm32Verion&0xFF).arg(baudRateValue);
QString VernonBach; QString VernonBach;
VernonBach.sprintf("A%d.%d.%02d%s%s", UP_PRINTER_MAJOR_VER, UP_PRINTER_MINOR_VER,UP_PRINTER_RIVISION_VER,SUB_VERSION,SUB_RFID); VernonBach.sprintf("%s.%s.", MACHINAE_VER, PUMP_VER);
VernonBach = VernonBach + (QString) Public::DateToString(__DATE__)+"_"+SUB_VER;
QString Mac = QString::number(sysPara->status.machineMac); QString Mac = QString::number(sysPara->status.machineMac);
LogInfo::showVerionInformation(Mac,VernonBach,fpgaVersion,STM32Ver,sysPara->status.flagOfPowerOnMode); LogInfo::showVerionInformation(Mac,VernonBach,fpgaVersion,STM32Ver,sysPara->status.flagOfPowerOnMode);
@@ -4642,4 +4599,4 @@ void MainWindow::checkPrintingInterval(){
return; return;
} }
} }
} }
+1
View File
@@ -243,6 +243,7 @@ private:
bool printingFlag; //判断当前是否在打印 bool printingFlag; //判断当前是否在打印
bool startPrintingFlag; bool startPrintingFlag;
bool previewFlag; bool previewFlag;
bool m_powerOffInProgress = false; // 防止MySleep处理事件时重复进入关机流程
int searchExpiryVar(QString html = "");//检索有效期变量 int searchExpiryVar(QString html = "");//检索有效期变量
void ExpiryDotUpdate(char Mode); void ExpiryDotUpdate(char Mode);
+1 -3
View File
@@ -7,13 +7,11 @@
#define SYS_ROOT_DIR "/home/plg/" #define SYS_ROOT_DIR "/home/plg/"
#include "qnamespace.h" #include "qnamespace.h"
#define SOFTWARE_VER_NUM "A3.09"
#define MYSAVEFILEDLG // 定义自己的保存文件对话框,解决系统对话框按键不弹起问题 #define MYSAVEFILEDLG // 定义自己的保存文件对话框,解决系统对话框按键不弹起问题
#define LANINTERFACE_NAME "eth0" #define LANINTERFACE_NAME "eth0"
// #define FPGATEST // 给韦工测试时启用,发布版本需要关闭 // #define FPGATEST // 给韦工测试时启用,发布版本需要关闭
// #define NETWORKQRCODE //二维码允许tcp客户端修改 #define NETWORKQRCODE //二维码允许tcp客户端修改 --荆州四机赛瓦定制功能
// #define __RFID_OLD //旧的加密算法 // #define __RFID_OLD //旧的加密算法
// #define __RFID_CARD //刷卡功能 // #define __RFID_CARD //刷卡功能
// #define __RFID_IND //允许印度进行二次加密的宏 // #define __RFID_IND //允许印度进行二次加密的宏
+1 -1
View File
@@ -301,7 +301,7 @@ QTabBar::tab:selected {background-color: rgb(255, 170, 127)}
QTabBar::tab:!selected {margin-top: 5px;}</string> QTabBar::tab:!selected {margin-top: 5px;}</string>
</property> </property>
<property name="currentIndex"> <property name="currentIndex">
<number>2</number> <number>0</number>
</property> </property>
<widget class="QWidget" name="tab_3"> <widget class="QWidget" name="tab_3">
<attribute name="title"> <attribute name="title">
BIN
View File
Binary file not shown.
+631 -605
View File
File diff suppressed because it is too large Load Diff
+1062 -1030
View File
File diff suppressed because it is too large Load Diff
-5
View File
@@ -1,5 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'songti'; font-size:12pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">f</p></body></html>
-5
View File
@@ -1,5 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'songti'; font-size:12pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">fdafdsa</p></body></html>
-5
View File
@@ -1,5 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'songti'; font-size:12pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">化公为私于机构改革讨价还价液恭恭敬敬用同方</p></body></html>
-5
View File
@@ -1,5 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'songti'; font-size:12pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'helvetica'; font-size:8pt; font-weight:200;">yujhfdddeef</span><img src=":/6/image/digitalWidth2.png" width="10" height="8" /></p></body></html>
BIN
View File
Binary file not shown.
+605 -579
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+605 -579
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+605 -579
View File
File diff suppressed because it is too large Load Diff