V3.106 lijun edit 2023-08-25
1.修复历史实时数据中的超时历史实时数据表循环删除功能优化
2.优化设备通信计数设备通信断开后重新计数
56个文件已添加
8个文件已修改
159 ■■■■■ 已修改文件
BattFBS9600XSP2/batt_fbs9600_dev_x64_logs/error-20220720-1.log.gz 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/batt_fbs9600_dev_x64_logs/error-20230424-1.log.gz 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/batt_fbs9600_dev_x64_logs/error-20230425-1.log.gz 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/batt_fbs9600_dev_x64_logs/info-20220722-1.log.gz 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/batt_fbs9600_dev_x64_logs/info-20230410-1.log.gz 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/batt_fbs9600_dev_x64_logs/info-20230423-1.log.gz 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/batt_fbs9600_dev_x64_logs/info-20230424-1.log.gz 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/batt_fbs9600_dev_x64_logs/info-20230425-1.log.gz 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/.gitignore 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/base/BattTestData.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/base/Com.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/base/ComBase.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/base/Crc16.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/battdata_rt/BattData_RT.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/battdata_rt/BattData_RT_Array.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/battdata_rt/BattData_RT_RamDB_Thread.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/battdata_rt/BattData_RT_RamDB_Thread_SQL.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/battdata_rt/BattData_RT_SQL.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/battdata_rt/BattStatData.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/battdata_rt/MonVolData.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/battmonitor/data_store/InsertDataToMysql_Task.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/battmonitor/data_store/InsertDataToMysql_Task_SQL.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/battmonitor/data_store/getInsertDataTaskInstant.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/batttest/BattDataTestPro_Thread$BattTestState.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/batttest/BattDataTestPro_Thread$MyBattTestTask.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/batttest/BattDataTestPro_Thread.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/batttest/BattResStorePro_Thread.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/config/AppConfig.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/config/AppParam$MonitorParam.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/config/AppParam.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/fbs9100/ComFn.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/fbs9100/FBS9100_ComBase.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/fbs9100/FBS9100_Crc16.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/fbs9100/FBS9100_DateTime.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/fbs9100/FBS9100_SysState.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/fbs9600/FBS9600_CommData.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/fbs9600/FBS9600_Lithium_Data.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/fbs9600/FBS9600_ServerSocket_Thread.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/fbs9600/FBS9600_SocketClient.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/fbs9600/FBS9600_SocketClient2.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/fbs9600/FBS9600_State.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/fbs9600/FBS9600_State_SQL.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/fbs9600/FBS9600_Task_Thread.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/modbus4j/MyIpParameters.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/modbus4j/MyModbusFactory.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/modbus4j/MyModbusMaster.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/modbus4j/MyModbusUtils.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/modbus4j/SerialPortWrapperImpl.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/record/BattRealDataPro_Thread.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/dev/record/BattRealDataPro_Thread_SQL.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/sql/MysqlConnPool.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/sql/Sql_Mysql.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/sql/Sql_Sybase.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/sql/SybaseConnPool.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/version_inf/version_inf.txt 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/main/main_FBS9600XS.class 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/log4j.properties 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/src/com/battmonitor/data_store/InsertDataToMysql_Task.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/src/com/dev/fbs9600/FBS9600_SocketClient2.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/src/com/dev/fbs9600/FBS9600_State.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/src/com/dev/fbs9600/FBS9600_State_SQL.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/src/com/dev/record/BattRealDataPro_Thread_SQL.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/src/com/sql/Sql_Mysql.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/src/com/version_inf/version_inf.txt 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/batt_fbs9600_dev_x64_logs/error-20220720-1.log.gz
Binary files differ
BattFBS9600XSP2/batt_fbs9600_dev_x64_logs/error-20230424-1.log.gz
Binary files differ
BattFBS9600XSP2/batt_fbs9600_dev_x64_logs/error-20230425-1.log.gz
Binary files differ
BattFBS9600XSP2/batt_fbs9600_dev_x64_logs/info-20220722-1.log.gz
Binary files differ
BattFBS9600XSP2/batt_fbs9600_dev_x64_logs/info-20230410-1.log.gz
Binary files differ
BattFBS9600XSP2/batt_fbs9600_dev_x64_logs/info-20230423-1.log.gz
Binary files differ
BattFBS9600XSP2/batt_fbs9600_dev_x64_logs/info-20230424-1.log.gz
Binary files differ
BattFBS9600XSP2/batt_fbs9600_dev_x64_logs/info-20230425-1.log.gz
Binary files differ
BattFBS9600XSP2/bin/.gitignore
BattFBS9600XSP2/bin/com/base/BattTestData.class
Binary files differ
BattFBS9600XSP2/bin/com/base/Com.class
Binary files differ
BattFBS9600XSP2/bin/com/base/ComBase.class
Binary files differ
BattFBS9600XSP2/bin/com/base/Crc16.class
Binary files differ
BattFBS9600XSP2/bin/com/battdata_rt/BattData_RT.class
Binary files differ
BattFBS9600XSP2/bin/com/battdata_rt/BattData_RT_Array.class
Binary files differ
BattFBS9600XSP2/bin/com/battdata_rt/BattData_RT_RamDB_Thread.class
Binary files differ
BattFBS9600XSP2/bin/com/battdata_rt/BattData_RT_RamDB_Thread_SQL.class
Binary files differ
BattFBS9600XSP2/bin/com/battdata_rt/BattData_RT_SQL.class
Binary files differ
BattFBS9600XSP2/bin/com/battdata_rt/BattStatData.class
Binary files differ
BattFBS9600XSP2/bin/com/battdata_rt/MonVolData.class
Binary files differ
BattFBS9600XSP2/bin/com/battmonitor/data_store/InsertDataToMysql_Task.class
Binary files differ
BattFBS9600XSP2/bin/com/battmonitor/data_store/InsertDataToMysql_Task_SQL.class
Binary files differ
BattFBS9600XSP2/bin/com/battmonitor/data_store/getInsertDataTaskInstant.class
Binary files differ
BattFBS9600XSP2/bin/com/batttest/BattDataTestPro_Thread$BattTestState.class
Binary files differ
BattFBS9600XSP2/bin/com/batttest/BattDataTestPro_Thread$MyBattTestTask.class
Binary files differ
BattFBS9600XSP2/bin/com/batttest/BattDataTestPro_Thread.class
Binary files differ
BattFBS9600XSP2/bin/com/batttest/BattResStorePro_Thread.class
Binary files differ
BattFBS9600XSP2/bin/com/config/AppConfig.class
Binary files differ
BattFBS9600XSP2/bin/com/config/AppParam$MonitorParam.class
Binary files differ
BattFBS9600XSP2/bin/com/config/AppParam.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/fbs9100/ComFn.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/fbs9100/FBS9100_ComBase.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/fbs9100/FBS9100_Crc16.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/fbs9100/FBS9100_DateTime.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/fbs9100/FBS9100_SysState.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/fbs9600/FBS9600_CommData.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/fbs9600/FBS9600_Lithium_Data.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/fbs9600/FBS9600_ServerSocket_Thread.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/fbs9600/FBS9600_SocketClient.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/fbs9600/FBS9600_SocketClient2.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/fbs9600/FBS9600_State.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/fbs9600/FBS9600_State_SQL.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/fbs9600/FBS9600_Task_Thread.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/modbus4j/MyIpParameters.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/modbus4j/MyModbusFactory.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/modbus4j/MyModbusMaster.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/modbus4j/MyModbusUtils.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/modbus4j/SerialPortWrapperImpl.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/record/BattRealDataPro_Thread.class
Binary files differ
BattFBS9600XSP2/bin/com/dev/record/BattRealDataPro_Thread_SQL.class
Binary files differ
BattFBS9600XSP2/bin/com/sql/MysqlConnPool.class
Binary files differ
BattFBS9600XSP2/bin/com/sql/Sql_Mysql.class
Binary files differ
BattFBS9600XSP2/bin/com/sql/Sql_Sybase.class
Binary files differ
BattFBS9600XSP2/bin/com/sql/SybaseConnPool.class
Binary files differ
BattFBS9600XSP2/bin/com/version_inf/version_inf.txt
@@ -1,5 +1,10 @@
9600显示屏通讯程序
V3.106 lijun edit 2023-08-25
     1.修复历史实时数据中的超时历史实时数据表循环删除功能优化
     2.优化设备通信计数设备通信断开后重新计数
V3.105
    1.新增单体均衡电流读取
    2.加快数据读取速率,便于节省流量
BattFBS9600XSP2/bin/main/main_FBS9600XS.class
Binary files differ
BattFBS9600XSP2/log4j.properties
New file
@@ -0,0 +1,43 @@
log4j.rootLogger=DEBUG, R, O, LOGDB2
# Stdout
log4j.appender.O=org.apache.log4j.ConsoleAppender
# File
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=batt_fbs9600_dev_x64_logs/datalog.log
# Control the maximum log file size
log4j.appender.R.MaxFileSize=10000KB
# Archive log files (one backup file here)
log4j.appender.R.MaxBackupIndex=9
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.O.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n
log4j.appender.O.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n
#数据库:
log4j.appender.LOGDB2=org.apache.log4j.jdbc.JDBCAppender
#日志级别:ALL < TRACE < DEBUG <INFO <WARN <ERROR <FATAL <OFF的级别顺序.
log4j.appender.LOGDB2.Threshold=ALL
#驱动:
log4j.appender.LOGDB2.Driver=com.mysql.jdbc.Driver
#连接:
log4j.appender.LOGDB2.URL=jdbc:mysql://127.0.0.1:3360/db_app_sys?useUnicode=true&characterEncoding=UTF-8
#账号密码:
log4j.appender.LOGDB2.user=root
log4j.appender.LOGDB2.password=lmx8688139
#SQL:
log4j.appender.LOGDB2.sql=insert into tb_batt_ms_x64_fbsdev_log4j (level,category,thread,time,location,note) values ("%p","%c","%t","%d{yyyy-MM-dd HH:mm:ss}","%l","%m")
#输出:
log4j.appender.LOGDB2.layout=org.apache.log4j.PatternLayout
BattFBS9600XSP2/src/com/battmonitor/data_store/InsertDataToMysql_Task.java
@@ -85,7 +85,6 @@
                try {
                    sql_v.mysql_con.rollback();
                } catch (SQLException e1) {
                    // TODO Auto-generated catch block
                    sql_v.logger.error("InsertDataToMysql_Task.inserTestDataToDB():" + e1.toString(), e1);
                }
                sql_v.logger.error("InsertDataToMysql_Task.inserTestDataToDB():" + e.toString(), e);
BattFBS9600XSP2/src/com/dev/fbs9600/FBS9600_SocketClient2.java
@@ -132,6 +132,10 @@
            if (this.m_BattMonCount > 392) {
                this.m_BattMonCount = 392;
            }
            FBS9600_State_SQL.queryFBS9100State_Table(conn, m_FBS9600_State);
            this.m_ReadRegAddr = getbattGroupAddr((short) 4, this.batt_Group_Num);
            this.m_ReadRegCount = 0;
            
@@ -173,7 +177,7 @@
                        //System.out.println("读取组端数据" +(read_mon_index+1)+ "\t MonCount:"+ m_RTData[read_group_index].MonCount + "\t" +Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
                        readGroupData(m_RTData[read_group_index],read_group_index);
                        
                        Thread.sleep(100);
                        Thread.sleep(50);
                    }        
                    read_group_index++;
                    if(!(read_group_index < data_Num)) {
@@ -296,29 +300,40 @@
    }
    
    private void readMonData(BattData_RT battData_RT,int index) {
        try {
        //Date start = new Date();
        BatchRead<Integer> batch1 = m_FBS9600_State.createMonVolBatchRead(master,index,battData_RT.MonCount);        
        BatchResults<Integer> res1 = MyModbusUtils.readMutilRegisters(batch1, master);
        m_FBS9600_State.putMonVolBatchResult(res1,index,battData_RT);
            
            Thread.sleep(50);
        BatchRead<Integer> batch2 = m_FBS9600_State.createMonResBatchRead(master,index,battData_RT.MonCount);        
        BatchResults<Integer> res2 = MyModbusUtils.readMutilRegisters(batch2, master);
        m_FBS9600_State.putMonResBatchResult(res2,index,battData_RT);
            Thread.sleep(50);
        
        BatchRead<Integer> batch3 = m_FBS9600_State.createMonTmpBatchRead(master,index,battData_RT.MonCount);        
        BatchResults<Integer> res3 = MyModbusUtils.readMutilRegisters(batch3, master);
        m_FBS9600_State.putMonTmpBatchResult(res3,index,battData_RT);
        
        
            Thread.sleep(50);
        {
            //读取单体均衡电流
            BatchRead<Integer> batch4 = m_FBS9600_State.createMonJhCurrBatchRead(master,index,battData_RT.MonCount);        
            BatchResults<Integer> res4 = MyModbusUtils.readMutilRegisters(batch4, master);
            m_FBS9600_State.putMonJhCurrBatchResult(res4,index,battData_RT);
            
                Thread.sleep(50);
            //读取单体漏液电压
            
        }
        } catch (InterruptedException e) {
            logger.error(e.toString(), e);
        }
        
        //Date end = new Date();
        //logger.info("读取单体数据耗时"+(end.getTime()-start.getTime()));
BattFBS9600XSP2/src/com/dev/fbs9600/FBS9600_State.java
@@ -26,8 +26,14 @@
    public int BattGroupNum;                //当前电池组号启动或停止时判断要启动和停止的组号
    private boolean op_cmd_ack_fromdev = false;
    int work_state;
    public int com_count;
    public int com_err_count;
    public int com_count;                    //通信计数
    public int com_err_count;                //连续错误计数
    public int com_totalcount;                //总的错误计数
    public int com_err_totalcount;            //总的错误计数
    long alm_rec_id = 0L;
    public int[] dev_works = new int[BATT_MAXGOROUP_COUNT];
    public float[] dev_currs = new float[BATT_MAXGOROUP_COUNT];
@@ -96,10 +102,28 @@
    public void setComErrCountInc() {
        this.com_err_count += 1;
        if (this.com_err_count >= 90000000)
        this.com_err_totalcount += 1;
        if (this.com_err_totalcount >= 90000000)
            this.com_err_totalcount = 20;
            this.com_err_count = 20;
    }
    public int getTotalCommCount() {
        int totalCommCount = (this.com_count + this.com_totalcount);
        if(totalCommCount > 90000000) {
            this.com_totalcount = 20;
        }
        return (this.com_count + this.com_totalcount);
    }
    public int getTotalErrCommCount() {
        int totalCommErrCount = (this.com_err_count + this.com_err_totalcount);
        if(totalCommErrCount > 90000000) {
            this.com_err_totalcount = 20;
        }
        return (this.com_err_count + this.com_err_totalcount);
    }
    /**
     * 构造State 的设备ID读取集合
     * @param master
BattFBS9600XSP2/src/com/dev/fbs9600/FBS9600_State_SQL.java
@@ -412,19 +412,49 @@
                + " dev_ip = '" + state.ip_addr+"',"
                + " dev_captest_groupvol="+state.dev_groupvols[0]+","
                + " dev_captest_curr = "+state.dev_currs[0]+","
                + " dev_commcount = "+state.com_count+","
                + " dev_errcommcount= "+state.com_err_count
                + " dev_commcount = "+state.getTotalCommCount()+","
                + " dev_errcommcount= "+state.getTotalErrCommCount()
                + " WHERE dev_id= " + state.dev_id;
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str);
        } catch (SQLException e) {
            e.printStackTrace();
            sql.logger.error(e.toString(), e);
        } finally {
            sql.close_con();
        }
    }
    
    public static void queryFBS9100State_Table(MysqlConnPool pool, FBS9600_State state) {
        String sql_str = " select * from db_ram_db.tb_fbs9100_state "
                       + " WHERE dev_id= " + state.dev_id;
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        ResultSet res = null;
        try {
            res = sql.sqlMysqlQuery(sql_str);
            if(res.next()) {
                state.setWorkState(res.getInt("dev_workstate"));
                state.dev_groupvols[0] = res.getFloat("dev_captest_groupvol");
                state.dev_currs[0] = res.getFloat("dev_captest_curr");
                state.com_totalcount = res.getInt("dev_commcount");
                state.com_err_totalcount = res.getInt("dev_errcommcount");
            }
        } catch (Exception e) {
            sql.logger.error(e.toString(), e);
        } finally {
            if(null != res) {
                try {
                    res.close();
                } catch (SQLException e) {
                    sql.logger.error(e.toString(), e);
                }
            }
            sql.close_con();
        }
    }
    /**
     *     更新程序启动时间以及对应程序的版本号
     * @param pool
BattFBS9600XSP2/src/com/dev/record/BattRealDataPro_Thread_SQL.java
@@ -34,8 +34,9 @@
                System.out.println("删除:"+res.getString("TABLE_NAME")+"\t at "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
                count++;
            }
            if(count >0) {
                sql.sqlMysqlExecute(sql_delete_strs);
                sql.sqlMysqlTotalExecute(sql_delete_strs);
            }
            res.close();
        } catch (SQLException e) {
BattFBS9600XSP2/src/com/sql/Sql_Mysql.java
@@ -318,6 +318,11 @@
        sql.setQueryTimeout(30);
        sql.execute(sql_str);
    }
    public void sqlMysqlTotalExecute(String sql_str) throws SQLException {
        Statement sql = this.mysql_con.createStatement();
        sql.setQueryTimeout(60*10);
        sql.execute(sql_str);
    }
    public boolean makeManualCommit(ArrayList<String> al_sql_strs) {
        boolean exe_res = true;
@@ -369,6 +374,20 @@
        return res;
    }
    public ResultSet sqlMysqlTotalQuery(String sql_str) {
        ResultSet res = null;
        try {
            Statement sql = this.mysql_con.createStatement();
            sql.setQueryTimeout(60*5);
            String query = sql_str;
            res = sql.executeQuery(query);
        } catch (SQLException ex) {
            System.err.println("SQLException:" + ex.getMessage());
        }
        return res;
    }
    public void sqlMysqlUpdate(String sql_str) {
        try {
            Statement sql = this.mysql_con.createStatement();
BattFBS9600XSP2/src/com/version_inf/version_inf.txt
@@ -1,5 +1,10 @@
9600显示屏通讯程序
V3.106 lijun edit 2023-08-25
     1.修复历史实时数据中的超时历史实时数据表循环删除功能优化
     2.优化设备通信计数设备通信断开后重新计数
V3.105
    1.新增单体均衡电流读取
    2.加快数据读取速率,便于节省流量