From 802dca6731294c970e8adb81646ea7ecebf91fbd Mon Sep 17 00:00:00 2001 From: whyclj <1525436766@qq.com> Date: 星期五, 22 十一月 2019 09:56:06 +0800 Subject: [PATCH] 编辑电池组信息时改变当前电池组线程状态,并且添加电池组充放电线程记录 --- platforms/android/app/src/main/java/com/socket/BattTestDataRecordThread.java | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 111 insertions(+), 5 deletions(-) diff --git a/platforms/android/app/src/main/java/com/socket/BattTestDataRecordThread.java b/platforms/android/app/src/main/java/com/socket/BattTestDataRecordThread.java index 749049b..698c88f 100644 --- a/platforms/android/app/src/main/java/com/socket/BattTestDataRecordThread.java +++ b/platforms/android/app/src/main/java/com/socket/BattTestDataRecordThread.java @@ -7,6 +7,7 @@ import com.concentrator.Concentrator_State; import com.fgkj.dao.DBHelper; +import com.sqlite_DaoHelper.SqliteHelper; import com.util.Com; import java.util.Date; @@ -39,24 +40,67 @@ Log.e(TAG,"run:BattTestDataRecordThread start at " + Com.getDateTimeFormat(new Date(),Com.DTF_YMDhms)); - int nowTestType = Concentrator_State.WORKSTATE_FLOAT; //褰撳墠璁板綍鐨勬祴璇曠被鍨�(褰撳墠鐢垫睜鐘舵��) + int nowTestType = BattDataThread.TESTTYPE_NULL; //褰撳墠璁板綍鐨勬祴璇曠被鍨� + int nowworkState = Concentrator_State.WORKSTATE_FLOAT; //褰撳墠鐢垫睜缁勭殑鐘舵�� Date lastRecordTime = new Date(); //涓婁竴娆¤褰曠殑鏃堕棿 boolean isStartRecord = false; //鏄惁鏄柊鐨勬斁鐢佃褰� - int record_num = 0; //璁板綍绗旀暟 + while(true){ try { if(isRecording){ //姝e湪璁板綍鍘嗗彶鍏呮斁鐢垫暟鎹� + battData.state.record_time = new Date(); if(isStartRecord){ + battData.state.testStartTime = new Date(); //娴嬭瘯寮�濮嬫椂闂� + battData.state.test_type = nowTestType; //璁剧疆褰撳墠鐨勬祴璇曠被鍨� + battData.state.testTimelong = 0; + battData.state.test_record_count = queryMaxTestRecordCount(battData.battIndex,dbHelper); + battData.state.record_num = 1; + //鍒氬紑濮嬭褰曠殑绾跨▼ + insertBattTestDatainf(dbHelper,battData); + + lastRecordTime = new Date(); + isStartRecord = false; } + int testTimelong = (int)((battData.state.record_time.getTime() - battData.state.testStartTime.getTime())/1000); //娴嬭瘯鏃堕暱 + battData.state.testTimelong = testTimelong; + if(battData.state.battstate != nowworkState || !battData.isInstall || battData.loseTimeLong > 60*60){ + //褰撳墠鐢垫睜缁勭殑鐘舵�佸彉鍖�//褰撳墠鐢垫睜缁勫彉鎴愭湭瀹夎//閫氳瓒呮椂(1灏忔椂) + isRecording = false; + } + int recordInterver = (int)Math.abs(new Date().getTime()-lastRecordTime.getTime())/1000; //璺濈涓婃璁板綍鏁版嵁鐨勬椂闀� + if(recordInterver >= saveDataIntever || !isStartRecord){ + lastRecordTime = new Date(); + //鏀剧數缁撴潫鎴栬�呰褰曟椂闂村埌 + //璁板綍褰撳墠鐨勫厖鏀剧數璁板綍 + insertBattTestData(dbHelper,battData); + } + battData.state.record_num++; }else{ //鏆傛棤璁板綍鍏呮斁鐢垫暟鎹� + if(battData.state.battstate == Concentrator_State.WORKSTATE_DISCH && battData.isInstall && battData.loseTimeLong <= 60*60){ + //姝e湪鏀剧數 + isRecording = true; + isStartRecord = true; + nowTestType = BattDataThread.TESTTYPE_DISTEST; + nowworkState = Concentrator_State.WORKSTATE_DISCH; + }else if(battData.state.battstate == Concentrator_State.WORKSTATE_CHARG && battData.isInstall && battData.loseTimeLong <= 60*60){ + //姝e湪鍏呯數 + isRecording = true; + isStartRecord = true; + nowTestType = BattDataThread.TESTTYPE_CHRTEST; + nowworkState = Concentrator_State.WORKSTATE_CHARG; + }else{ + nowTestType = BattDataThread.TESTTYPE_NULL; + nowworkState = Concentrator_State.WORKSTATE_FLOAT; + isRecording = false; + } } - sleep(2000); + sleep(1000); } catch (Exception e) { e.printStackTrace(); } @@ -90,10 +134,72 @@ } //鎻掑叆鍘嗗彶鏁版嵁 - public static void insertBattTestDatainf(DBHelper dbHelper,Concentrator_State state){ - String sql_str = ""; + public static void insertBattTestDatainf(DBHelper dbHelper,BattDataThread battData){ + Concentrator_State state = battData.state; + String batt_inf_sql_str = "INSERT INTO tb_batttestdata_inf" + + "(BattGroupId,test_record_count,test_type,record_time_interval,record_num,test_starttime,record_time,test_timelong,group_vol,test_curr,test_cap,max_monnum,max_monvol,min_monnum,min_monvol) " + + " VALUES("+battData.battIndex+","+state.test_record_count+","+state.test_type+","+saveDataIntever+","+state.record_num+",'"+Com.getDateTimeFormat(state.testStartTime,Com.DTF_YMDhms)+"','"+Com.getDateTimeFormat(state.record_time,Com.DTF_YMDhms)+"',"+state.testTimelong+","+state.getGroupvol()+","+state.getGroupcurr()+","+0+","+state.max_monnum+","+state.max_monvol+","+state.min_monnum+","+state.min_monvol+") "; + String batt_id_sql_str="INSERT INTO tb_batttestdata_"+battData.battIndex+"(BattGroupId,test_record_count,test_type,test_starttime,record_time,test_timelong,group_vol,test_curr,test_cap,mon_num,mon_vol,mon_tmp,mon_res) " + + "VALUES"; + for(int i=0;i<state.monCount;i++){ + if(i != 0){ + batt_id_sql_str += ","; + } + batt_id_sql_str += "("+battData.battIndex+","+state.test_record_count+","+state.test_type+",'"+Com.getDateTimeFormat(state.testStartTime,Com.DTF_YMDhms)+"','"+Com.getDateTimeFormat(state.record_time,Com.DTF_YMDhms)+"',"+state.testTimelong+","+state.getGroupvol()+","+state.getGroupcurr()+","+0+","+(i+1)+","+state.mon_vols[i]+","+state.mon_tmps[i]+","+state.mon_ress[i]+")"; + } + SQLiteDatabase db = null; + try { + db = dbHelper.getWritableDatabase(); + db.beginTransaction(); + db.execSQL(batt_inf_sql_str); + db.execSQL(batt_id_sql_str); + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (SQLException e) { + e.printStackTrace(); + } finally { + if(db != null){ + try { + db.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + //鎻掑叆鍘嗗彶鏁版嵁 + public static void insertBattTestData(DBHelper dbHelper,BattDataThread battData){ + Concentrator_State state = battData.state; + String batt_inf_sql_str = " UPDATE tb_batttestdata_inf SET record_num ="+state.record_num+" ,record_time='"+Com.getDateTimeFormat(state.record_time,Com.DTF_YMDhms)+"',test_timelong="+state.testTimelong+",group_vol="+state.getGroupvol()+",test_curr="+state.getGroupcurr()+",test_cap=0,max_monnum="+state.max_monnum+",max_monvol="+state.max_monvol+",min_monnum="+state.min_monnum+",min_monvol="+state.min_monvol+" WHERE BattGroupId = "+battData.battIndex+" AND test_record_count = "+state.test_record_count; + String batt_id_sql_str="INSERT INTO tb_batttestdata_"+battData.battIndex+"(BattGroupId,test_record_count,test_type,test_starttime,record_time,test_timelong,group_vol,test_curr,test_cap,mon_num,mon_vol,mon_tmp,mon_res) " + + "VALUES"; + for(int i=0;i<state.monCount;i++){ + if(i != 0){ + batt_id_sql_str += ","; + } + batt_id_sql_str += "("+battData.battIndex+","+state.test_record_count+","+state.test_type+",'"+Com.getDateTimeFormat(state.testStartTime,Com.DTF_YMDhms)+"','"+Com.getDateTimeFormat(state.record_time,Com.DTF_YMDhms)+"',"+state.testTimelong+","+state.getGroupvol()+","+state.getGroupcurr()+","+0+","+(i+1)+","+state.mon_vols[i]+","+state.mon_tmps[i]+","+state.mon_ress[i]+")"; + } + SQLiteDatabase db = null; + try { + db = dbHelper.getWritableDatabase(); + db.beginTransaction(); + db.execSQL(batt_inf_sql_str); + db.execSQL(batt_id_sql_str); + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (SQLException e) { + e.printStackTrace(); + } finally { + if(db != null){ + try { + db.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } } } -- Gitblit v1.9.1