FBS9600通信程序,带了均衡电压版本
Administrator
2021-08-12 8467d3be4ce3be340d36f45c83d370def9e7e50f
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
package com.donghuan.sql_server;
import java.util.Date;
import java.util.GregorianCalendar;
 
import com.base.Com;
import com.battdata_rt.BattData_RT_Array;
import com.config.AppConfig;
import com.sql.MysqlConnPool;
 
public class GetHisdoryDataFromSybase_Thread extends Thread {
    
    private BattData_RT_Array m_Data;
    private AppConfig m_AppConfig;
    
    private int query_start_index = 0;
    private int query_count = 0;
    
    public GetHisdoryDataFromSybase_Thread(AppConfig cfg, int start_index, int count,
                                            BattData_RT_Array data, MysqlConnPool conn_pool)
    {
        m_AppConfig = cfg;
        query_start_index = start_index;
        query_count = count;
        m_Data = data;
    }
    
    /********************************************************************************************/
    @Override
    public void run() {
        
        /**********************************************************************************/
        System.out.println(this.getName() + " - GetHisdoryDataFromSybase_Thread Started ...");
        /**********************************************************************************/
        GregorianCalendar query_gc_start = new GregorianCalendar();
        GregorianCalendar query_gc_end     = new GregorianCalendar();
        
        while(m_Data.getSybaseQueryCount() < 2)
        {
            try {
                sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        
        query_gc_start.setTime(m_Data.getSybaseServerDateTime());
        query_gc_end.setTime(m_Data.getSybaseServerDateTime());
        
        int day_count = 0;
        while(true)
        {
            boolean have_zero = m_Data.checkIfHaveZeroMonVol();
            if(true == have_zero)
            {
                query_gc_end.setTime(query_gc_start.getTime());
                query_gc_start.setTime(query_gc_end.getTime());
                query_gc_start.add(GregorianCalendar.HOUR, -1);
                
                m_Data.getDataFromSybase_Task(m_AppConfig, query_start_index, query_count, 
                                                query_gc_start, query_gc_end, false, "DESC");
                if((day_count%24) == 0)
                {
                    System.out.println(this.getName() + " - GetHisdoryDataFromSybase_Thread: Search data from " 
                                    + Com.getDateTimeFormat(query_gc_start.getTime(), Com.DTF_YMDhms)
                                    + " to " + Com.getDateTimeFormat(query_gc_end.getTime(), Com.DTF_YMDhms));
                }        
                try {
                    sleep(100);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            
            day_count++;
            if((false == have_zero) || (day_count >= 10000))
            {
                String str_msg = this.getName() + " - GetHisdoryDataFromSybase_Thread: - search end!";
                if(false == have_zero)
                {
                    str_msg = this.getName() + " - GetHisdoryDataFromSybase_Thread: - no zero mon vol now!";
                }
                
                System.out.println(str_msg + " " + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
                
                try {
                    sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                break;
            }
        }
        /**********************************************************************************/
    }
}