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
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
#ifndef WORK_THREAD_H
#define WORK_THREAD_H
 
#include <QDateTime>
#include <QTimer>
#include <qthread.h>
#include <QDir>
#include "Drivers/rs485_driver.h"
#include "data_define.h"
#include "Drivers/module_drv.h"
#include "Drivers/LoRaCell.h"
#include "check_obj.h"
#include "Drivers/rs485_wired_cell.h"
 
const QString DATA_ROOT_DIR = dataDir;
 
#define     CapType_Rest        0
#define        CapType_Sum            1
#define        CapType_Percent        2
 
class Work_Thread : public QThread
{
    Q_OBJECT
 
public:
        Work_Thread();
        virtual void run();
        ~Work_Thread();
public:
        static const int CMD_StartDischarge = 1;
        static const int CMD_PauseDischarge = 2;
        static const int CMD_StopDischarge = 3;
        static const int CMD_StartCharge = 4;
        static const int CMD_PauseCharge = 5;
        static const int CMD_StopCharge = 6;
        static const int CMD_Adj_StartDis = 7;
        static const int CMD_Adj_StopDis = 8;
        static const int CMD_Adj_StartChr = 9;
        static const int CMD_Adj_StopChr = 10;
        static const int CMD_StartFanWork = 11;
        static const int CMD_PowerSwithOn = 12;
        static const int CMD_PowerSwithOff = 13;
        static const int CMD_StopFanWork = 14;
 
        static const int CMD_SetMonomerAddr = 21;
        static const int CMD_SetMonomerFre = 22;
        static const int CMD_SetMadjIndex = 23;
        static const int CMD_SetMonomerAdj = 24;
 
        static const int CMD_SetIntCurrZero = 31;
        static const int CMD_SetIntCurrSlope = 32;
        static const int CMD_SetExtCurrZero = 33;
        static const int CMD_SetExtCurrSlope = 34;
        static const int CMD_SetOnlineVolSlope = 35;
        static const int CMD_SetGroupVolSlope = 36;
 
        static const int CMD_ReadSysConfInfo = 41;
        static const int CMD_SetSysConfInfo = 42;
 
        static const int CMD_ChargeNull = 43;
        static const int CMD_ChargeRLYON = 44;
        static const int CMD_ChargeRLYOFF = 45;
 
        //校准1
        static const int CMD_SetOnlVolZero = 50;
        static const int CMD_SetOnlVolSlope = 51;
        static const int CMD_SetGrpVolZero = 52;
        static const int CMD_SetGrpVolSlope = 53;
        static const int CMD_SetDisCurrZero = 54;
        static const int CMD_SetDisCurrSlope = 55;
        static const int CMD_SetChrCurrZero = 56;
        static const int CMD_SetChrCurrSlope = 57;
        static const int CMD_SetECurrZero = 58;
        static const int CMD_SetECurrSlope = 59;
        static const int CMD_SetDisCur = 60;
        static const int CMD_SetChrCur = 61;
        static const int CMD_StartZCharge = 66;
 
public:
        FBO_DATA fboData;
        LOCAL_DATA localData;
        ICON_STATE iconState;
        SYS_PARAM sysParam;
        void initWorkPageShow(void);
        void enterpage_init();
        void PauseWorkThread(void);
        void StartWorkThread(void);
        bool CheckDiskState(const QString &disk);
        SYS_State GetSysState(void);
        RS485Driver *rs485;
        QString battName;
        CT_DATE_TIME getTestFileTime();
        CT_DATE_TIME testStartTime;
        bool openWorkPage;
        QString testFileName;
        TEST_PARAM_XML testParam;
 
        bool if_cn;     //true 中文 false 英文
        bool IF_J9Close;
        bool CheckFain(void);
        bool Check_Mashine_Type;
 
        void continuetest(CHECK_DATA check_data, FBO_DATA fbo_data);
        void set_app_checkcount();
        void setPowerCtrl(quint16);
        void WriteEndFile(QString filename, FBO_DATA);
        void delay_ms(quint16 time);
        void set_ifinit(bool);
 
        bool adj_mon_vol(int cmd, int num, int num2);
        void set_readmode(int);
        void set_addrsingle(int addr);
        QString get_loraversion();
        void getmodulevol(void *data);
        void GetBattVolData(void *data);
        int ctrlJDQ();
        quint8 get_DCDC_count();
 
        quint8 get_mon_source();
        quint8 DATAVERSION;
 
private:
        bool WORK_RUN_EN;
        //RS485Driver *rs485;
 
        quint8 Adj_TestState;
 
 
        ADJ_PARAM_XML adjParam;
        QTimer *timer_1s;
 
        SYS_State sysState;
 
        quint16 PowerCtrl;
        quint16 PWM_Ctrl;
        quint16 chargeChangeCurr;
 
        quint16 monomerLowCount;
        quint16 sumVOL[4];
        quint16 SingleVolBuff[MONOMER_NUM_MAX];
 
        int MaxCur;//A
        int MaxPOWER;//KW*10
 
        ModuleDrv *nrf905module;
        LORACELL *lora;
 
        RS485_WIRED *rs485wired;
 
        quint8 mon_source;//0 IO单体 3 有线单体
        void mon_source_distinguish();
 
//        quint16 AdjCurParam;
        int if_steady;
 
        int delayupdate;
        quint16 work_preset_cur;//放电电流参数赋值
        quint8 DCDC_count;
        quint8 nullChargingState;
 
private:
        void ShowPageData(void);
        QString format_data_name(void);
 
        void initTest(const quint8 type);
 
        int OpenDischargePower();
        int CloseDischargePower(const quint8 workstate);
        void StartTestingFrom();
        void ResumeTestingFrom();
        void SuspendTesting(const quint8 pausetype);
        void StopTesting(const quint8 stoptype);
 
        void StartChargeTest(const quint8 workstate);
        void ResumeChargeFrom(const quint8 workstate);
        void SuspendChargeTest(const quint8 pausetype);
        int OpenChargePower(quint8 workstate);
        int CloseChargePower(const quint8 workstate);
 
        quint16 getMonomerLowCount(void);
        void AnalyseRecvData(void);
 
        void CheckIfStop(void);
        void CheckIfStop_Dispause();
        void UpdateState(void);
        void ControlDisCur();
        void ControlDisCurGDTQ_ONE(quint16 setcurrent);
        void ControlDisCurGDTQ_TWO(quint16 setcurrent);
        void ControlDisCurGDTQ_THREE(quint16 setcurrent);
        void ControlDisCurGDTQ_FIVE(quint16 setcurrent);
 
        void CheckChargeAlarm(void);
        void CheckChargeAlarm_Pause();
 
        void CheckIconState(void);
        bool CheckMonomerExist(void);
 
        double N_TO_10H(int n_H);
        double GetMonomerCap(double STDAH, int HourRate, double SumAH, double MaxMonomerVol,
                    double MonomerVol, double MonomerVolType, int CapType);
 
        void CalRemainData(void);
        void CalResData(void);
        void ClearRemainData(void);
        void initparam();
        void IF_USEloader(bool en);
        void ReadIOParam();
 
        bool IF_SET905ok;
        void Set905Param(void);
        void CPControlChargeCurrent2415();
        void CPControlChargeCurrent4815();
        void CPControlChargeCurrent4830();
        void ControlChargeCurrent60010();
        void CPControlChargeCurrent10480();
        double GetChargeLimitCurrent(void);
        void CPControlAdj10480();
 
        void CPControlChargeCurrent10480_240V();
        void CPControlAdj10480_240V();
 
        int  check_count;/*调用4次*/
        bool if_need_init;
        void SaveContinueFile();/*五个地方调用 充放电启动、暂停、停止时调用*/
        void APP_check();/*run里调用*/
        void setIOboardState();
        int ctrlJDQ_other();
        int ctrlJDQ_940();
 
signals:
        void SendThreadState(int,int);
        void SendSysconfInfo(SYS_CONFIG);
        void SentInterface(int);
        void sendMgBox(quint8);
        void sendAddrFreResult(int,int);
public slots:
        void RecvCommData(COMM_DATA dt);
        void RecvSysCtrlCMD(int,QString);
        void RecvSysConfCMD(int, SYS_CONFIG);
        void RecvCurrAdjCMD(int,int);
        void RecvTestParam(TEST_PARAM_XML);
        void Timer1s_timeout(void);
        void RecvSysParam(SYS_PARAM);
        void RecvAdjParam(ADJ_PARAM_XML);
        void RecvAdjCmd(int, quint16);
        void RecvSysAddrFre(int cmd,int param);
 
        void RecvInterface(int inter);
        void RecvNRF905Data(N905_MODULE_DATA dt);
        void RecvMonAddrandFre(int, quint16, quint16);
};
 
 
 
#endif // WORK_THREAD_H