Ubuntu12.04.4_lts
2023-08-01 961efe36f62f7eba688d504ec0cdf3e1daa4dd74
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#ifndef WORKING_PAGE_H
#define WORKING_PAGE_H
 
#include "Common/custom.h"
#include "qcustomplot.h"
#include "Common/work_thread.h"
#include "custom_lineedit.h"
#include "qtimer.h"
#include <QDebug>
#include <QTextCodec>
#include <QTableWidget>
#include <QTableWidgetItem>
#include "Common/mymessagebox.h"
 
namespace Ui {
#if PageType == IDCE48CT
class Working_Page;
#elif PageType == FBO48CT
class Working_Page_FBO;
#elif PageType == FBI48CT
class Working_Page_FBI;
#endif
}
 
class Working_Page : public customDialog
{
    Q_OBJECT
    
public:
    explicit Working_Page(QWidget *parent = 0,Work_Thread *thread = 0);
    ~Working_Page();
    
    Work_Thread *work_thread;
    QString batteryName;    //电池组名
    TEST_PARAM_XML test_param_xml;
 
    void toHide();
    void toShow(int type);
    void ContinueTest(CHECK_DATA c_data, FBO_DATA f_data);
 
private:
#if PageType == IDCE48CT
    Ui::Working_Page *ui;
#elif PageType == FBO48CT
    Ui::Working_Page_FBO *ui;
#elif PageType == FBI48CT
    Ui::Working_Page_FBI *ui;
#endif
 
    BuzzerDrv *BD;
 
    QTableWidgetItem* tableItem;
 
    QCPBars* bars1;     //常规单体
    QCPBars* bars2;     //最大单体
    QCPBars* bars3;     //最小单体
    QCPBars* bars4;     //电压差
 
    QTimer *getDataTimer;
 
    MessageBox *CurrentBox;
    QString AlarmText;
 
private:
    QVector<QString> stopType;
    QVector<QString> chargeType;
    QStringList testTypeList;
    QStringList chartTypeList;
    quint16 SingleVolBeforeTest[MONOMER_NUM_MAX];
    qint8 ChargeDelayTime;
    bool isCloseBeep;
 
    int batteryId;          //电池组编号
 
    int nominalCap;
 
    MON_TABLE mon_table;    //单体界面属性
 
    QVector<int> vector_groupvol;
    QVector<int> vector_cur;
    QVector<int> vector_cap;
    QVector<int> vector_second;
    QVector<QVector<int> > vector_mon;
 
    int chartMonID;
    int allMonNum;
    int GmonNum;
    int CBGroupIndex;
 
    quint8 IF_READCUR;
 
    bool if_update;
    FBO_DATA fbodata;
    LOCAL_DATA lcldata;
 
private:
    void initPage();
    void initParam();
    void setTestPage();
    void setEachGroupInfo(quint16 groupnum);
    void setStateAlarmAndDrop(quint8 state,quint8 alarm,quint16 drop);
    void setIconTime();
    void cleanMonomerTable();
    void setMonomerTable();
    void setMonomerBtnState();
    void initMonomerChart();
    void setMonomerChart();
    bool AutoStartChargeTest(void);
    void setParamEnabled(bool enabled);
 
    bool setEditInput(Custom_LineEdit *edit,int space,
        float min,float max,int floatNum);
    void setChartEditInput(Custom_LineEdit *edit,int min, int max);
    bool setTimeInput(Custom_LineEdit *edit,int space);
    bool checkTimeText(QString time);
 
    void initTestChart();
    void updateVolChart();
    void updateCurChart();
    void updateCapChart();
    void updateMonChart(int index);
 
    void initPageShow();
    void initConnectBeep(bool);
    void toStart(int);
    void toStartZCH(int);
    void toStop(int);
    bool AppStartAlarm();
 
    QString format_monID(int index);
    QString format_monomer(int index,int vol);
    double get_top_chart(QVector<double> data_v);
    double get_top_barmon(QVector<double> data_v,QVector<double> data_vold,int state);
 
    void popBox(QString msg);
    void setDCdataTable();
 
signals:
    void sendParam(TEST_PARAM_XML);
    void sendStart(int,QString);
    void senddeleteSocket();
 
private slots:
    void CustomEditSlot();
    void ChartMonEditSlot();
    void WorkBtnSlot();
    void GetDataSlot();
    void ReadDataSlot();
    void SendParamSlot();
 
    void alarm_beep(void);
    void DischargeWaitF1();
    void ChargeWaitF1();
 
    void GroupMComboBoxChangeSlot(int);
    void TabcurrentChangeSlot(int index);
    void TestChartComboBoxChangeSlot(int index);
    void TypeComboBoxChangeSlot(int index);
    void popBoxAlarm(quint8 alarm);
    void delay_ContinueTest_Start();
 
public slots:
    void operatorCMD_Work(int);
};
 
#endif // WORKING_PAGE_H