81041
2018-10-31 4f149d9dd30b7703990ba376fc42d54edd7328d2
gx_tieta/src/com/fgkj/dao/BattTestData.java
@@ -1,8 +1,14 @@
package com.fgkj.dao;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
public class BattTestData {
   final public static int BATT_DISCHARGE=3;//放电测试
   final public static int BATT_RES=5;//内阻测试
   final public static int AppServer_Reinit_BattGroupData_EN=1;//修改删除添加电池组信息时识别信号
   
    final public static int BATT_MON_COUNT_MAX = 512;
   
@@ -69,6 +75,77 @@
   
   //落后单体参数(组端电压>标称*test_stop)
   public static final float test_stop = 0.9f;
   //启动创建数据库的jar文件
   public static void run_cmdOld() {
      String path=System.getProperty("user.dir");
      String realapth=path.substring(0,path.lastIndexOf("\\"));
      //System.out.println(realapth);
      String strcmd="cmd /c start  "+realapth+"/webapps/cmd_BTSE_DB_Builder.cmd";
      //
        Runtime rt = Runtime.getRuntime(); //Runtime.getRuntime()返回当前应用程序的Runtime对象
        Process ps = null;  //Process可以控制该子进程的执行或获取该子进程的信息。
        try {
            ps = rt.exec(strcmd);   //该对象的exec()方法指示Java虚拟机创建一个子进程执行指定的可执行程序,并返回与该子进程对应的Process对象实例。
            ps.waitFor();  //等待子进程完成再往下执行。
        } catch (IOException e1) {
            e1.printStackTrace();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        int i = ps.exitValue();  //接收执行完毕的返回值
        if (i == 0) {
            System.out.println("执行完成.");
        } else {
            System.out.println("执行失败.");
        }
        ps.destroy();  //销毁子进程
        ps = null;
    }
   //启动创建数据库的jar文件
   public static void run_cmd() {
      String path=System.getProperty("user.dir");            //myeclipse中获取的目录(获取到的是tomcat/bin)和分离项目获取到的路径(tomcat)不一样
      //System.out.println(path);
      String realapth=path.substring(0,path.lastIndexOf("\\"));
      String strcmd="cmd /c start  "+realapth+"/webapps/cmd_BTSE_DB_Builder.cmd";
      String batPath = realapth+"/webapps/cmd_BTSE_DB_Builder.cmd";
      File f = new File(path);
        //System.out.println("File :"+f.getParentFile().getAbsolutePath()+File.separator+"Batt_MS_FBSDEV_X64/Batt_MS_FBSDEV/"+"cmd_BTSE_DB_Builder.cmd");
        //batPath = f.getParentFile().getAbsolutePath()+File.separator+"Batt_MS_FBSDEV_X64/Batt_MS_FBSDEV/"+"cmd_BTSE_DB_Builder.cmd";
      String jarPath = "";
      if(path.endsWith("bin")){
         f = f.getParentFile();
        }
      jarPath = f.getParentFile().getAbsolutePath()+File.separator+"Batt_MS_FBSDEV_X64/Batt_MS_FBSDEV/"+"BTSE_DB_Builder.jar";            //主程序中jar的目录
        //strcmd = "cmd /c start "+batPath;
        strcmd = ("cmd /c start ")+jarPath.replaceAll(" ", "\" \"");         //修复绝对路径中存在空格时执行不成功bug
        Process child = null;
      InputStream in = null;
      try {
         //System.out.println(strcmd);
         child = Runtime.getRuntime().exec(strcmd);
         in = child.getInputStream();
         int c;
         while ((c = in.read()) != -1) {
            //System.out.print((char)c);
         }
         in.close();
         try {
            child.waitFor();
         } catch (InterruptedException e) {
            e.printStackTrace();
         }
         //System.out.println("Run Bat OK....");
      } catch (IOException e) {
         e.printStackTrace();
      }
    }
   //判断电池组的当前状态
   public static String battState(int num){
      String state="";