From fc82d219f87c06888e9fb42d9f5e69b946e026da Mon Sep 17 00:00:00 2001 From: whyclj <1525436766@qq.com> Date: 星期五, 06 十二月 2019 10:11:59 +0800 Subject: [PATCH] 修改后台添加开机自启功能 --- platforms/android/app/src/main/java/com/alarms/BattAlarmCheckThread.java | 21 ++-- platforms/android/app/src/main/java/io/cordova/hellocordova/MainActivity.java | 58 ++++++++++++- platforms/android/app/src/main/java/com/concentrator/Concentrator_Param.java | 2 platforms/android/app/src/main/java/com/socket/FBS9600S_DeviceService.java | 12 ++- platforms/android/app/src/main/java/com/socket/BattTestDataRecordThread.java | 29 +++++++ platforms/android/app/src/main/java/com/concentrator/Concentrator_State.java | 65 ++++++++------- platforms/android/app/src/main/java/com/socket/BattResDataRecordThread.java | 22 +++-- 7 files changed, 147 insertions(+), 62 deletions(-) diff --git a/platforms/android/app/src/main/java/com/alarms/BattAlarmCheckThread.java b/platforms/android/app/src/main/java/com/alarms/BattAlarmCheckThread.java index 4930560..17544ab 100644 --- a/platforms/android/app/src/main/java/com/alarms/BattAlarmCheckThread.java +++ b/platforms/android/app/src/main/java/com/alarms/BattAlarmCheckThread.java @@ -54,16 +54,17 @@ for(int i=0;i<allBattDatt.size();i++){ BattDataThread battDataThread = allBattDatt.get(i); if(battDataThread.isInstall){ - List<BattAlarmData> alarmDatas = battDataThread.state.makeAlarmData(battDataThread,alarmParam); - if(alarmDatas.size() > 0){ - //Log.e(TAG, "run: 鏇存柊鍛婅鏉℃暟"+ alarmDatas.size()); + List<BattAlarmData> alarmDatas = battDataThread.state.makeAlarmData(battDataThread,alarmParam); + if(alarmDatas.size() > 0){ + //Log.e(TAG, "run: 鏇存柊鍛婅鏉℃暟"+ alarmDatas.size()); //鏇存柊褰撳墠鍛婅璁板綍 - for(int k = 0;k<alarmDatas.size();k++){ - //Log.e(TAG, "run: "+alarmDatas.get(k) ); - insertOrUpdateBattAlarmData(dbHelper,alarmDatas.get(k)); //鎻掑叆鎴栨洿鏂板綋鍓嶇殑鍛婅璁板綍 - } - } + for(int k = 0;k<alarmDatas.size();k++){ + //Log.e(TAG, "run: "+alarmDatas.get(k) ); + insertOrUpdateBattAlarmData(dbHelper,alarmDatas.get(k)); //鎻掑叆鎴栨洿鏂板綋鍓嶇殑鍛婅璁板綍 + } + } + alarmDatas.clear(); }else{ //娓呴櫎鏈畨瑁呯數姹犵粍鐨勫憡璀﹁褰� if(battDataThread.isAlarmClear){ @@ -81,7 +82,7 @@ } } } - sleep(1000); + sleep(2000); } catch (Exception e) { e.printStackTrace(); } @@ -96,7 +97,7 @@ */ public void initBattAlarmParam(DBHelper dbHelper,AlarmParam alarmParam){ String str_sql = " SELECT num,alm_id,alm_name,alm_high_coe,alm_low_coe,alm_high_en,alm_low_en " + - " FROM tb_alarm_param "; + " FROM tb_alarm_param "; boolean flag = false; SQLiteDatabase db = null; try { diff --git a/platforms/android/app/src/main/java/com/concentrator/Concentrator_Param.java b/platforms/android/app/src/main/java/com/concentrator/Concentrator_Param.java index f159e95..be42f62 100644 --- a/platforms/android/app/src/main/java/com/concentrator/Concentrator_Param.java +++ b/platforms/android/app/src/main/java/com/concentrator/Concentrator_Param.java @@ -128,7 +128,7 @@ //璁$畻鎬荤殑鍗曚綋鏁扮洰 public int countMonCount(){ //return this.first_monCount+second_monCount+thrid_monCount+fourth_monCount+fifth_monCount; - return 24; + return 50; } } diff --git a/platforms/android/app/src/main/java/com/concentrator/Concentrator_State.java b/platforms/android/app/src/main/java/com/concentrator/Concentrator_State.java index 0f1ba91..8acf8ae 100644 --- a/platforms/android/app/src/main/java/com/concentrator/Concentrator_State.java +++ b/platforms/android/app/src/main/java/com/concentrator/Concentrator_State.java @@ -41,8 +41,8 @@ private double sysversion; //绯荤粺鐗堟湰(0.1) private int sysstate; //绯荤粺鐘舵�� 0-甯歌妯″紡 1-鍐呴樆妯″紡 2-缂栧潃妯″紡 - private double groupvol; //缁勭鐢靛帇(0.1) - private double groupcurr; //缁勭鐢垫祦(0.1) + private float groupvol; //缁勭鐢靛帇(0.1) + private float groupcurr; //缁勭鐢垫祦(0.1) public int battstate; //鐢垫睜鐘舵�� 0-娴厖 1-鏀剧數 2-鍏呯數 private int currdirection; //鐢垫祦鏂瑰悜 0-鍏呯數 1-鏀剧數 @@ -91,6 +91,11 @@ this.backup7 = state.backup7; this.backup8 = state.backup8; this.restestcount = state.restestcount; //鍐呴樆娴嬭瘯娆℃暟 + + this.groupvol = groupvol+(float)Math.random()*10; //闅忔満缁勭鐢靛帇 + this.groupvol = (float)Math.round(groupvol*100)/100; + this.groupcurr = groupcurr+(float)Math.random()*5; //闅忔満缁勭鐢垫祦 + this.groupcurr = (float)Math.round(groupcurr*100)/100; } //澶嶅埗鍗曚綋鐢靛帇 @@ -132,12 +137,12 @@ sysversion = ComBase.changeShortToDouble(tmpbuf.getShort())/10; //绯荤粺鐗堟湰 sysstate = ComBase.changeShortToInt(tmpbuf.getShort()); //绯荤粺鐘舵�� - groupvol = ComBase.changeShortToDouble(tmpbuf.getShort())/10; //缁勭鐢靛帇 - groupcurr = ComBase.changeShortToDouble(tmpbuf.getShort())/10; //缁勭鐢垫祦 + groupvol = (float)ComBase.changeShortToDouble(tmpbuf.getShort())/10; //缁勭鐢靛帇 + groupcurr = (float)ComBase.changeShortToDouble(tmpbuf.getShort())/10; //缁勭鐢垫祦 battstate = ComBase.changeShortToInt(tmpbuf.getShort()); //鐢垫睜鐘舵�� currdirection = ComBase.changeShortToInt(tmpbuf.getShort()); //鐢垫祦鏂瑰悜 - this.currdirection=1; - this.battstate = 1; + this.currdirection=0; + this.battstate = 2; if(currdirection == 1){ groupcurr = groupcurr *(-1); //鏀瑰彉褰撳墠鐢垫祦鏂瑰悜 } @@ -155,36 +160,36 @@ return true; } - public List<BattAlarmData> makeAlarmData(BattDataThread battDataThread, AlarmParam alarmParam){ - List<BattAlarmData> alarmDatas = new ArrayList<>(); - Concentrator_State state = battDataThread.state; + public List<BattAlarmData> makeAlarmData(BattDataThread battDataThread, AlarmParam alarmParam){ + List<BattAlarmData> alarmDatas = new ArrayList<>(); + Concentrator_State state = battDataThread.state; - //鍒ゆ柇缁勭鐢靛帇鍛婅 - AlarmParam.AlarmParamCell groupVol_param = alarmParam.alm_GroupVol.CreateAlarmParamCell(battDataThread.battinf); - state.groupVol_AlarmData.makeAlarmData(alarmDatas,groupVol_param,state.groupvol); + //鍒ゆ柇缁勭鐢靛帇鍛婅 + AlarmParam.AlarmParamCell groupVol_param = alarmParam.alm_GroupVol.CreateAlarmParamCell(battDataThread.battinf); + state.groupVol_AlarmData.makeAlarmData(alarmDatas,groupVol_param,state.groupvol); - //鍒ゆ柇鐢垫睜鐢垫祦鍛婅 - AlarmParam.AlarmParamCell battCurr_param = alarmParam.alm_BattCurr.CreateAlarmParamCell(battDataThread.battinf); - state.battCurr_AlarmData.makeAlarmData(alarmDatas,battCurr_param,state.groupcurr); + //鍒ゆ柇鐢垫睜鐢垫祦鍛婅 + AlarmParam.AlarmParamCell battCurr_param = alarmParam.alm_BattCurr.CreateAlarmParamCell(battDataThread.battinf); + state.battCurr_AlarmData.makeAlarmData(alarmDatas,battCurr_param,state.groupcurr); - //鍒ゆ柇鍗曚綋鍛婅 - for(int i=0;i<monCount;i++){ - //鍒ゆ柇鍗曚綋鐢靛帇鍛婅 - AlarmParam.AlarmParamCell monVol_param = alarmParam.alm_MonVol.CreateAlarmParamCell(battDataThread.battinf); + //鍒ゆ柇鍗曚綋鍛婅 + for(int i=0;i<monCount;i++){ + //鍒ゆ柇鍗曚綋鐢靛帇鍛婅 + AlarmParam.AlarmParamCell monVol_param = alarmParam.alm_MonVol.CreateAlarmParamCell(battDataThread.battinf); //Log.e(TAG, "makeAlarmData: monvol 鍛婅鍊糷ig"+monVol_param.alm_high_coe+"\tlow"+monVol_param.alm_low_coe ); state.monVol_AlarmData[i].makeAlarmData(alarmDatas,monVol_param,state.mon_vols[i]); - //鍒ゆ柇鍗曚綋娓╁害鍛婅 - AlarmParam.AlarmParamCell monTmp_param = alarmParam.alm_MonTmp.CreateAlarmParamCell(battDataThread.battinf); - state.monTmp_AlarmData[i].makeAlarmData(alarmDatas,monTmp_param,state.mon_tmps[i]); + //鍒ゆ柇鍗曚綋娓╁害鍛婅 + AlarmParam.AlarmParamCell monTmp_param = alarmParam.alm_MonTmp.CreateAlarmParamCell(battDataThread.battinf); + state.monTmp_AlarmData[i].makeAlarmData(alarmDatas,monTmp_param,state.mon_tmps[i]); - //鍒ゆ柇鍗曚綋鍐呴樆鍛婅 - AlarmParam.AlarmParamCell monRes_param = alarmParam.alm_MonRes.CreateAlarmParamCell(battDataThread.battinf); - state.monRes_AlarmData[i].makeAlarmData(alarmDatas,monRes_param,state.mon_ress[i]); + //鍒ゆ柇鍗曚綋鍐呴樆鍛婅 + AlarmParam.AlarmParamCell monRes_param = alarmParam.alm_MonRes.CreateAlarmParamCell(battDataThread.battinf); + state.monRes_AlarmData[i].makeAlarmData(alarmDatas,monRes_param,state.mon_ress[i]); - } - return alarmDatas; - } + } + return alarmDatas; + } public boolean putMonDataBuffer(ByteBuffer bf,int reg_addr){ if(bf.limit() < BYTE_LEN) { @@ -321,11 +326,11 @@ this.sysstate = sysstate; } - public void setGroupvol(double groupvol) { + public void setGroupvol(float groupvol) { this.groupvol = groupvol; } - public void setGroupcurr(double groupcurr) { + public void setGroupcurr(float groupcurr) { this.groupcurr = groupcurr; } diff --git a/platforms/android/app/src/main/java/com/socket/BattResDataRecordThread.java b/platforms/android/app/src/main/java/com/socket/BattResDataRecordThread.java index 96765c2..5049288 100644 --- a/platforms/android/app/src/main/java/com/socket/BattResDataRecordThread.java +++ b/platforms/android/app/src/main/java/com/socket/BattResDataRecordThread.java @@ -31,6 +31,8 @@ @Override public void run() { Log.d(TAG, "run: BattResDataRecordThread start at" + Com.getDateTimeFormat(new Date(),Com.DTF_YMDhms)); + + while(true){ try { //Log.e(TAG, "run: "+ battData.isOutTime+"\tlastResTestCount:"+lastResTestCount+"\t count:"+battData.state.getRestestcount()); @@ -39,7 +41,7 @@ if(battData.state.monCount >0 && battData.state.mon_ress[battData.state.monCount-1] > 0){ //寮�濮嬭褰曞唴闃诲巻鍙叉暟鎹� int max_test_record_count = queryMaxTestRecordCount(battData.battIndex,dbHelper); //鏌ヨ褰撳墠鐢垫睜缁勬渶澶х殑璁板綍绗旀暟 - //Log.e(TAG, "run: MAXCOUNT:"+max_test_record_count ); + Log.e(TAG, "run: MAXCOUNT:"+max_test_record_count ); //鎻掑叆 tb_battresdata_inf 琛ㄤ腑 insertBattResDataInf(battData.battIndex, battData.state,dbHelper,max_test_record_count); @@ -49,7 +51,6 @@ lastResTestCount = battData.state.getRestestcount(); } } - } sleep(3000); } catch (Exception e) { @@ -68,6 +69,7 @@ sql_str_base += "("+battgroupid+","+test_record_count+","+BattDataThread.TESTTYPE_RESTEST+",'"+Com.getDateTimeFormat(new Date(),Com.DTF_YMDhms)+"',"+state.getGroupvol()+","+state.getGroupcurr()+","+(i+1)+","+state.mon_vols[i]+","+state.mon_tmps[i]+","+state.mon_ress[i]+")"; } SQLiteDatabase db = dbHelper.getWritableDatabase(); + //Log.e(TAG, "insertBattResDataID: "+sql_str_start+sql_str_base ); try { db.execSQL(sql_str_start+sql_str_base); } catch (SQLException e) { @@ -90,17 +92,17 @@ String sql_str = "INSERT INTO tb_battresdata_inf " + "(BattGroupId,test_record_count,test_type,test_starttime,record_time,group_vol,test_curr) " + "VALUES(" - + battgroupid+"," - + test_record_count+"," - + BattDataThread.TESTTYPE_RESTEST+",'" - + Com.getDateTimeFormat(new Date(),Com.DTF_YMDhms)+"','" - + Com.getDateTimeFormat(new Date(),Com.DTF_YMDhms)+"'," - + state.getGroupvol()+ "," - + state.getGroupcurr()+"" + + + battgroupid+"," + + test_record_count+"," + + BattDataThread.TESTTYPE_RESTEST+",'" + + Com.getDateTimeFormat(new Date(),Com.DTF_YMDhms)+"','" + + Com.getDateTimeFormat(new Date(),Com.DTF_YMDhms)+"'," + + state.getGroupvol()+ "," + + state.getGroupcurr()+"" + ");"; SQLiteDatabase db = dbHelper.getWritableDatabase(); try { - Log.d(TAG, "insertBattResDataInf: "+sql_str); + //Log.d(TAG, "insertBattResDataInf: "+sql_str); db.execSQL(sql_str); } catch (Exception e) { 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 2293882..abe2170 100644 --- a/platforms/android/app/src/main/java/com/socket/BattTestDataRecordThread.java +++ b/platforms/android/app/src/main/java/com/socket/BattTestDataRecordThread.java @@ -77,6 +77,10 @@ //璁板綍褰撳墠鐨勫厖鏀剧數璁板綍 insertBattTestData(dbHelper,battData); } + if(!isRecording && testTimelong < minTestTimeLong){ + //娴嬭瘯鏃堕暱灏忎簬1鍒嗛挓鐨勫厖鏀剧數璁板綍鍒犻櫎 + deleteInvalidTestData(dbHelper,battData); + } battData.state.record_num++; isStartRecord = false; }else{ @@ -202,4 +206,29 @@ // } } } + + /** + * 鍒犻櫎鍘嗗彶鎸囧畾鐢垫睜缁勭殑鎸囧畾鍏呮斁鐢佃褰� + * @param dbHelper + * @param battData + */ + public static void deleteInvalidTestData(DBHelper dbHelper,BattDataThread battData){ + Concentrator_State state = battData.state; + //鍒犻櫎tb_batttestdata_inf琛ㄤ腑鐨勮褰� + String sql_delbatttDataInf_str = "DELETE FROM tb_batttestdata_inf WHERE BattGroupId = "+battData.battIndex+" AND test_record_count = "+state.test_record_count; + //鍒犻櫎tb_batttestdata_id琛ㄤ腑鐨勮褰� + String sql_delbatttDataId_str = "DELETE FROM tb_batttestdata_"+battData.battIndex+" WHERE test_record_count= "+state.test_record_count; + SQLiteDatabase db = null; + try { + db = dbHelper.getWritableDatabase(); + db.beginTransaction(); + db.execSQL(sql_delbatttDataInf_str); + db.execSQL(sql_delbatttDataId_str); + db.setTransactionSuccessful(); + db.endTransaction(); + } catch (SQLException e) { + e.printStackTrace(); + } + Log.e(TAG, "deleteInvalidTestData:鍒犻櫎娴嬭瘯鏃堕暱灏忎簬1鍒嗛挓鐨勬斁鐢佃褰� "); + } } diff --git a/platforms/android/app/src/main/java/com/socket/FBS9600S_DeviceService.java b/platforms/android/app/src/main/java/com/socket/FBS9600S_DeviceService.java index 2b880d8..8107575 100644 --- a/platforms/android/app/src/main/java/com/socket/FBS9600S_DeviceService.java +++ b/platforms/android/app/src/main/java/com/socket/FBS9600S_DeviceService.java @@ -146,15 +146,19 @@ //璇诲彇鐢垫睜缁勫厖鐢电數姹犱俊鎭� @JavascriptInterface public void readBattCharInfo(){ - List list = new ArrayList(); + List<HashMap> list = new ArrayList(); for(int i=0;i<allBattDatt.size();i++){ - if(allBattDatt.get(i).state.battstate == Concentrator_State.WORKSTATE_CHARG){ - list.add(allBattDatt.get(i)); + if(allBattDatt.get(i).state.battstate == Concentrator_State.WORKSTATE_CHARG && allBattDatt.get(i).isInstall){ + HashMap map = new HashMap(); + map.put("state",allBattDatt.get(i).state); + map.put("battinf",allBattDatt.get(i).battinf); + list.add(map); } } ServiceModel model = new ServiceModel(); model.code = 1; model.data = list; + //Log.e(TAG, "readBattCharInfo: "+model ); ActionUtil.SendCallDataToJS(JS_INTERFACE_NAME,"readBattCharInfo",model,webView, ActionUtil.getGson()); } @@ -179,7 +183,7 @@ //Log.e(TAG, "readBattDiscInfo: ##############################"+allBattDatt.size()); List<HashMap> list = new ArrayList(); for(int i=0;i<allBattDatt.size();i++){ - if(allBattDatt.get(i).state.battstate == Concentrator_State.WORKSTATE_DISCH){ + if(allBattDatt.get(i).state.battstate == Concentrator_State.WORKSTATE_DISCH && allBattDatt.get(i).isInstall){ HashMap map = new HashMap(); map.put("state",allBattDatt.get(i).state); map.put("battinf",allBattDatt.get(i).battinf); diff --git a/platforms/android/app/src/main/java/io/cordova/hellocordova/MainActivity.java b/platforms/android/app/src/main/java/io/cordova/hellocordova/MainActivity.java index 2c91a89..f1a0977 100644 --- a/platforms/android/app/src/main/java/io/cordova/hellocordova/MainActivity.java +++ b/platforms/android/app/src/main/java/io/cordova/hellocordova/MainActivity.java @@ -19,16 +19,16 @@ package io.cordova.hellocordova; -import android.database.sqlite.SQLiteDatabase; +import android.graphics.Rect; import android.os.Bundle; import android.util.Log; +import android.view.View; +import android.view.ViewTreeObserver; +import android.view.WindowManager; import android.webkit.WebView; import com.fgkj.action.JsInterface; import com.fgkj.dao.DBHelper; -import com.fgkj.dao.SQLdm; -import com.fgkj.dto.Battresdata; -import com.fgkj.dto.Batttestdata_inf; import com.fgkj.service.Battalram_dataService; import com.fgkj.service.BattinfService; import com.fgkj.service.BattresdataService; @@ -43,6 +43,7 @@ { public WebView webview; public DBHelper dbHelper; + boolean isShow = false; @Override public void onCreate(Bundle savedInstanceState) @@ -57,15 +58,15 @@ // Set by <content src="index.html" /> in config.xml loadUrl(launchUrl); - + dbHelper=new DBHelper(this,"fbs9600.db", null, 1); - + webview = findViewById(appView.getView().getId()); // 娣诲姞浜嬩欢 webview.addJavascriptInterface(new JsInterface(this, webview,MainActivity.this), JsInterface.JS_INTERFACE_NAME); //娣诲姞璁惧閫氳鐩稿叧鎺ュ彛 webview.addJavascriptInterface(new FBS9600S_DeviceService(webview,dbHelper), FBS9600S_DeviceService.JS_INTERFACE_NAME); - //tb_battinf琛ㄧ殑鎿嶄綔 + //tb_battinf琛ㄧ殑鎿嶄綔 webview.addJavascriptInterface(new BattinfService(webview, dbHelper),BattinfService.BATTINFSERVICE_NAME); //tb_batttestdata琛ㄧ殑鎿嶄綔 webview.addJavascriptInterface(new BatttestdataService(webview, dbHelper),BatttestdataService.BATTTESTDATASERVICE_NAME); @@ -77,6 +78,31 @@ webview.addJavascriptInterface(new Battresdata_infService(webview, dbHelper),Battresdata_infService.BATTRESDATA_INFSERVICE_NAME); //娣诲姞鍛婅鎺ュ彛 webview.addJavascriptInterface(new Battalram_dataService(webview,dbHelper),Battalram_dataService.BATTALRAM_DATASERVICE_NAME); + + + //鐩戝惉閿洏鏄剧ず鍜岄殣钘忎簨浠� + this.webview.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + Rect rect = new Rect(); + webview.getWindowVisibleDisplayFrame(rect); + int displayHeight = rect.bottom - rect.top; + int height = webview.getHeight(); + boolean visible = (double) displayHeight / height < 0.8; + if (visible) { + if(!isShow){ + //闅愯棌鐘舵�佹爮锛屽苟涓斾笉鏄剧ず瀛椾綋 + getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); + Log.e(TAG, "杞敭鐩樻樉绀�"); + isShow = true; + } + } else { + isShow = false; + Log.e(TAG, "杞敭鐩橀殣钘�"); + hideSystemMenu(); + } + } + }); } @Override @@ -84,4 +110,22 @@ dbHelper.close(); super.onDestroy(); } + + /** + * 闅愯棌绯荤粺鑿滃崟鏍� + */ + public void hideSystemMenu(){ + int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | + //甯冨眬浣嶄簬鐘舵�佹爮涓嬫柟 + View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | + //鍏ㄥ睆 + View.SYSTEM_UI_FLAG_FULLSCREEN | + //闅愯棌瀵艰埅鏍� + View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | + View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN; + uiOptions |= 0x00001000; + getWindow().getDecorView().setSystemUiVisibility(uiOptions); + } + + } -- Gitblit v1.9.1