whychdw
2019-12-20 0a707989b1e298d6c22575ef573b6a4f65d0e036
platforms/android/app/src/main/java/com/socket/FBS9600S_DeviceService.java
@@ -3,24 +3,30 @@
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.drm.DrmStore;
import android.util.Log;
import android.webkit.JavascriptInterface;
import android.webkit.WebView;
import com.alarms.BattAlarmCheckThread;
import com.concentrator.Concentrator_State;
import com.fgkj.action.ServiceModel;
import com.fgkj.dao.ActionUtil;
import com.fgkj.dao.DBHelper;
import com.fgkj.dto.Battinf;
import com.fgkj.impl.BattinfImpl;
import com.google.gson.Gson;
import com.util.Com;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
public class FBS9600S_DeviceService {
    public static final int MAXCONCENTRATORCOUNT = 2;                                  //最多连接的汇集器数量
    public static final String JS_INTERFACE_NAME = "DeviceService";            //JS调用类名
    public final static String TAG = "FBS9600S_DeviceService";
    public static final int MAXCONCENTRATORCOUNT = 16;                                  //最多连接的汇集器数量
    public static final String JS_INTERFACE_NAME = "DeviceService";                     //JS调用类名
    public static List<BattDataThread> allBattDatt;
    public DBHelper dbHelper;
@@ -41,6 +47,12 @@
        List<Battinf> temps = initBattInfo(allBattDatt,list);
        insertBattinf(dbHelper,temps);
        //电池告警线程
        BattAlarmCheckThread battAlarmCheckThread = new BattAlarmCheckThread(dbHelper,allBattDatt);
        battAlarmCheckThread.start();
    }
    //读取系统状态
@@ -76,9 +88,16 @@
        int battindex = Integer.parseInt(index);
        ServiceModel model = new ServiceModel();
        if(battindex>0 && battindex <= MAXCONCENTRATORCOUNT){
            Concentrator_State state = allBattDatt.get(battindex-1).state;
            if(allBattDatt.get(battindex-1).isOutTime){
                state.isOutTime = 1;
            }else{
                state.isOutTime = 0;
            }
            model.code = 1;
            model.data = allBattDatt.get(battindex-1).state;
            model.data = state;
        }
        //Log.e(TAG, "readBattMonInfo: "+ActionUtil.getGson().toJson(model) );
        ActionUtil.SendCallDataToJS(JS_INTERFACE_NAME,"readBattMonInfo",model,webView, ActionUtil.getGson());
    }
@@ -87,28 +106,98 @@
    public void startBattResTest(String index){
        int battindex = Integer.parseInt(index);
        if(battindex>0 && battindex <= MAXCONCENTRATORCOUNT){
            allBattDatt.get(battindex-1).startBattResTest("startBattResTest");
            allBattDatt.get(battindex-1).startBattResTest(JS_INTERFACE_NAME+"startBattResTest");
        }
    }
    //启动内阻测试
    //停止内阻测试
    @JavascriptInterface
    public void stopBattResTest(String index){
        int battindex = Integer.parseInt(index);
        if(battindex>0 && battindex <= MAXCONCENTRATORCOUNT){
            allBattDatt.get(battindex-1).stopBattResTest("stopBattResTest");
            allBattDatt.get(battindex-1).stopBattResTest(JS_INTERFACE_NAME+"stopBattResTest");
        }
    }
    //启动内阻测试
    //重启系统
    @JavascriptInterface
    public void reStartSystem(String index){
        int battindex = Integer.parseInt(index);
        if(battindex>0 && battindex <= MAXCONCENTRATORCOUNT){
            allBattDatt.get(battindex-1).reStartSystem("reStartSystem");
            allBattDatt.get(battindex-1).reStartSystem(JS_INTERFACE_NAME+"reStartSystem");
        }
    }
    //读取电池组充电个数
    @JavascriptInterface
    public void readBattCharCount(){
        int count = 0;
        for(int i=0;i<allBattDatt.size();i++){
            if(allBattDatt.get(i).state.battstate == Concentrator_State.WORKSTATE_CHARG){
                count ++;
            }
        }
        ServiceModel model = new ServiceModel();
        model.code = 1;
        model.data = count;
        ActionUtil.SendCallDataToJS(JS_INTERFACE_NAME,"readBattCharCount",model,webView, ActionUtil.getGson());
    }
    //读取电池组充电电池信息
    @JavascriptInterface
    public void readBattCharInfo(){
        List<HashMap> list = new ArrayList();
        for(int i=0;i<allBattDatt.size();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());
    }
    //读取电池组放电个数
    @JavascriptInterface
    public void readBattDiscCount(){
        int count = 0;
        for(int i=0;i<allBattDatt.size();i++){
            if(allBattDatt.get(i).state.battstate == Concentrator_State.WORKSTATE_DISCH){
                count ++;
            }
        }
        ServiceModel model = new ServiceModel();
        model.code = 1;
        model.data = count;
        ActionUtil.SendCallDataToJS(JS_INTERFACE_NAME,"readBattDiscCount",model,webView, ActionUtil.getGson());
    }
    //读取电池组放电电池信息
    @JavascriptInterface
    public void readBattDiscInfo(){
        //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 && 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);
            }
            //Log.e(TAG, "readBattDiscInfo: "+allBattDatt.get(i).cloneRtData() );
        }
        ServiceModel model = new ServiceModel();
        model.code = 1;
        model.data = list;
        //Gson gson = ActionUtil.getGson(Com.DTF_YMD_h_m_s);
        //Log.e("#############", "readBattDiscInfo: "+gson.toJson(model));
        ActionUtil.SendCallDataToJS(JS_INTERFACE_NAME,"readBattDiscInfo",model,this.webView, ActionUtil.getGson());
    }
    /**
     * 匹配电池信息配置中的信息
@@ -122,7 +211,7 @@
            Battinf battinf = null;
            for(int k = 0;k<list.size();k++){
                if(list.get(k).getBattGroupId() == battData.battIndex){
                    battinf = list.get(i);
                    battinf = list.get(k);
                }
            }
            if(battinf != null){
@@ -130,22 +219,23 @@
                battData.isInstall = battinf.getStation_install() == 1;                               //是否是已安装
                battData.state.monCount = battinf.getMonCount();                                      //当前单体数目
            }else{
                Battinf temp = new Battinf();
                temp.setStation_install(battData.isInstall?1:0);
                temp.setBattGroupId(i+1);
                temp.setBattFloatCurrent(3);
                temp.setBattGroupName1("电池组");
                temp.setBattGroupName("电池组"+(i+1));
                temp.setBattInUseDate(new Date());
                temp.setBattProducer("");
                temp.setMonCapStd(100);
                temp.setMonCount(24);
                temp.setMonVolStd(2);
                temp.setMonResStd(0.2);
                temp.setMonSerStd(5000);
                temp.setMonTmpStd(24);
                battinfs.add(temp);
                battinf = new Battinf();
                battinf.setStation_install(battData.isInstall?1:0);
                battinf.setBattGroupId(i+1);
                battinf.setBattFloatCurrent(3);
                battinf.setBattGroupName1("电池组");
                battinf.setBattGroupName("电池组"+(i+1));
                battinf.setBattInUseDate(new Date());
                battinf.setBattProducer("");
                battinf.setMonCapStd(100);
                battinf.setMonCount(24);
                battinf.setMonVolStd(2);
                battinf.setMonResStd(0.2);
                battinf.setMonSerStd(5000);
                battinf.setMonTmpStd(24);
                battinfs.add(battinf);
            }
            battData.battinf = battinf;
        }
        return battinfs;
    }