package safeluck.drive.evaluation.fragment;
|
|
import android.content.Context;
|
import android.graphics.drawable.Drawable;
|
import android.os.Bundle;
|
import android.os.Handler;
|
|
import android.util.Log;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.TextView;
|
|
import androidx.annotation.NonNull;
|
import androidx.annotation.Nullable;
|
import androidx.annotation.VisibleForTesting;
|
import androidx.appcompat.widget.Toolbar;
|
import androidx.databinding.DataBindingUtil;
|
import androidx.lifecycle.ViewModelProviders;
|
|
import com.anyun.basecommonlib.MyLog;
|
import com.anyun.im_lib.util.ByteUtil;
|
import com.google.gson.Gson;
|
|
import java.util.ArrayList;
|
import java.util.Collections;
|
import java.util.Comparator;
|
import java.util.List;
|
|
import me.yokeyword.fragmentation.SupportFragment;
|
import safeluck.drive.evaluation.Constant;
|
import safeluck.drive.evaluation.DB.signalConfigdb.SignalConfigViewModel;
|
import safeluck.drive.evaluation.DB.signalConfigdb.SingalConfig;
|
import safeluck.drive.evaluation.MainActivity;
|
import safeluck.drive.evaluation.R;
|
import safeluck.drive.evaluation.bean.CarSignal;
|
import safeluck.drive.evaluation.bean.MCUInfo;
|
import safeluck.drive.evaluation.cEventCenter.CEventCenter;
|
import safeluck.drive.evaluation.cEventCenter.ICEventListener;
|
import safeluck.drive.evaluation.databinding.LayoutCheckSignalBinding;
|
import safeluck.drive.evaluation.databinding.LayoutSignalSliceBinding;
|
|
/**
|
* MyApplication2
|
* Created by lzw on 2019/3/22. 11:07:11
|
* 邮箱:632393724@qq.com
|
* All Rights Saved! Chongqing AnYun Tech co. LTD
|
*/
|
public class InspectSignalFragment extends SupportFragment {
|
|
|
private static final String TAG = "InspectSignalFragment";
|
private static final int VALIAD_NUM = 1;//1高电平有效
|
private Gson gson= new Gson();
|
private Handler handler = new Handler();
|
private LayoutCheckSignalBinding bingding;
|
private List<Integer> gpios = new ArrayList<>();
|
Drawable leftGreen ;
|
Drawable leftGray ;
|
private int index =0 ;
|
private Object object = new Object();
|
private int fun_id = 0;
|
private ICEventListener icEventListener = new ICEventListener() {
|
@Override
|
public void onCEvent(String topic, int msgCode, int resultCode, Object obj) {
|
synchronized (object){
|
if (msgCode==Constant.ID_SM_CARSENSOR){
|
final CarSignal mcuInfo = gson.fromJson((String)obj, CarSignal.class);
|
Log.i(TAG,mcuInfo.toString());
|
if (mcuInfo != null){
|
|
|
handler.post(new Runnable() {
|
@Override
|
public void run() {
|
bingding.roatespeed.updateStr(String.valueOf(mcuInfo.getEngine()));
|
bingding.myspeed.updateStr(String.valueOf(mcuInfo.getSpeed()));
|
bingding.dagnwei.updateStr(gearStr(mcuInfo.getGear()));
|
bingding.odo.updateStr(String.valueOf(mcuInfo.getOdo()));
|
bingding.trip.updateStr(String.valueOf(mcuInfo.getTrip()));
|
bingding.tripTime.updateStr(String.valueOf(mcuInfo.getTrip_time()));
|
bingding.cellVolt.updateStr(String.valueOf(mcuInfo.getCell_volt()));
|
|
String keystr="";
|
switch (mcuInfo.getKey()){
|
case 0:
|
keystr = "OFF";
|
break;
|
case 1:
|
keystr = "ACC";
|
break;
|
case 2:
|
keystr = "ON";
|
break;
|
case 3:
|
keystr = "START";
|
break;
|
default:
|
keystr = "不支持";
|
break;
|
}
|
bingding.keystatus.updateStr(keystr);
|
bingding.accelerator.updateStr(String.valueOf(mcuInfo.getAps())+"%");
|
|
//安全带
|
bingding.inpsetSignalSlice.tvSeatBelt.setCompoundDrawablesWithIntrinsicBounds(mcuInfo.getSeat_belt()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
|
// Log.i(TAG,"安全带之后,Fun_ID="+fun_id);
|
//左转
|
bingding.inpsetSignalSlice.tvTrunLeft.setCompoundDrawablesWithIntrinsicBounds(mcuInfo.getLeft_turn_lamp()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
|
//右转
|
bingding.inpsetSignalSlice.tvTurnRight.setCompoundDrawablesWithIntrinsicBounds(mcuInfo.getRight_turn_lamp()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
|
bingding.inpsetSignalSlice.tvParkingBrake.setCompoundDrawablesWithIntrinsicBounds(mcuInfo.getHand_break()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
|
bingding.inpsetSignalSlice.tvFootBrake.setCompoundDrawablesWithIntrinsicBounds(mcuInfo.getMain_break()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
|
bingding.inpsetSignalSlice.tvLowLamp.setCompoundDrawablesWithIntrinsicBounds(mcuInfo.getDipped_beam_lamp()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
|
bingding.inpsetSignalSlice.tvHighBeam.setCompoundDrawablesWithIntrinsicBounds(mcuInfo.getMain_beam_lamp()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
|
|
bingding.inpsetSignalSlice.tvGateLock.setCompoundDrawablesWithIntrinsicBounds(mcuInfo.getLock()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
|
|
|
//副刹
|
bingding.inpsetSignalSlice.tvSecondaryBrake.setCompoundDrawablesWithIntrinsicBounds(mcuInfo.getAssist_break()==VALIAD_NUM?leftGreen:leftGray,null,null,null);//副刹
|
bingding.inpsetSignalSlice.tvWindingOne.setCompoundDrawablesWithIntrinsicBounds(mcuInfo.getSurround1()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
|
bingding.inpsetSignalSlice.tvWindingTwo.setCompoundDrawablesWithIntrinsicBounds(mcuInfo.getSurround2()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
|
bingding.inpsetSignalSlice.tvWindingThree.setCompoundDrawablesWithIntrinsicBounds(mcuInfo.getSurround3()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
|
bingding.inpsetSignalSlice.tvWindingFour.setCompoundDrawablesWithIntrinsicBounds(mcuInfo.getSurround4()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
|
|
bingding.inpsetSignalSlice.tvFoglight.setCompoundDrawablesWithIntrinsicBounds(mcuInfo.getFog_lamp()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
|
//示宽灯
|
bingding.inpsetSignalSlice.tvWidthLamp.setCompoundDrawablesWithIntrinsicBounds(mcuInfo.getClearance_lamp()==VALIAD_NUM?leftGreen:leftGray,null,null,null);
|
}
|
});
|
}
|
}
|
}
|
|
}
|
};
|
|
private String gearStr(int gear) {
|
|
switch (gear){
|
case 0:
|
return "空";
|
case 6:
|
return "倒";
|
default:
|
return String.valueOf(gear);
|
}
|
}
|
|
|
public static SupportFragment newInstance(){
|
return new InspectSignalFragment();
|
}
|
private List<SingalConfig> singalConfigList = new ArrayList<>();
|
@Nullable
|
@Override
|
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
|
|
|
bingding = DataBindingUtil.inflate(inflater,R.layout.layout_check_signal,container,false);
|
initView();
|
|
leftGreen = getResources().getDrawable(R.drawable.green_light,null);
|
leftGray = getResources().getDrawable(R.drawable.gray_light,null);
|
|
|
|
return bingding.getRoot();
|
}
|
|
private void sortSigalConfigList() {
|
Collections.sort(singalConfigList, new Comparator<SingalConfig>() {
|
@Override
|
public int compare(SingalConfig o1, SingalConfig o2) {
|
return o1.getFunc_id()-o2.getFunc_id();
|
}
|
});
|
Log.i(TAG,"根据fun_id 升序排列");
|
for (int j = 0; j < singalConfigList.size(); j++) {
|
Log.i(TAG,singalConfigList.get(j).toString());
|
}
|
}
|
|
private void initView() {
|
Log.i(TAG,"currTopFragment="+getTopFragment().getClass().getSimpleName());
|
if (HomeFragment.class.getSimpleName().equals(getTopFragment().getClass().getSimpleName())){
|
((MainActivity)_mActivity).viewtitle.setVisibility(View.GONE);
|
((MainActivity)_mActivity).btn_return.setVisibility(View.GONE);
|
}else{
|
((MainActivity)_mActivity).viewtitle.setVisibility(View.VISIBLE);
|
((MainActivity)_mActivity).btn_return.setVisibility(View.VISIBLE);
|
}
|
|
|
|
}
|
@Override
|
public void onAttach(Context context) {
|
super.onAttach(context);
|
CEventCenter.onBindEvent(true,icEventListener, Constant.BIND_MCUINFO_TOPIC);
|
}
|
|
@Override
|
public void onDetach() {
|
super.onDetach();
|
CEventCenter.onBindEvent(false,icEventListener,Constant.BIND_MCUINFO_TOPIC);
|
}
|
}
|