| | |
| | | |
| | | 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 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; |
| | |
| | | @Override |
| | | public void onCEvent(String topic, int msgCode, int resultCode, Object obj) { |
| | | synchronized (object){ |
| | | if (msgCode==Constant.MCU_SN){ |
| | | final MCUInfo mcuInfo = gson.fromJson((String)obj, MCUInfo.class); |
| | | if (msgCode==Constant.ID_SM_CARSENSOR){ |
| | | final CarSignal mcuInfo = gson.fromJson((String)obj, CarSignal.class); |
| | | Log.i(TAG,mcuInfo.toString()); |
| | | if (mcuInfo != null){ |
| | | gpios.clear(); |
| | | for (int i = 0; i < 16; i++) { |
| | | |
| | | gpios.add( ByteUtil.getBitStatus(mcuInfo.getGpio(),i)); |
| | | } |
| | | MyLog.i("mcu info gpio"+mcuInfo.getGpio()); |
| | | |
| | | handler.post(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | bingding.roatespeed.updateStr(String.valueOf(mcuInfo.getEngine())); |
| | | bingding.myspeed.updateStr(String.valueOf(mcuInfo.getSpeed()/10.0)); |
| | | 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())); |
| | | |
| | | for (int i = 0; i < gpios.size(); i++) { |
| | | MyLog.i(TAG, "run: gpio["+i+"]="+gpios.get(i)); |
| | | 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; |
| | | } |
| | | MyLog.i("gpios.size="+gpios.size()); |
| | | bingding.keystatus.updateStr(keystr); |
| | | bingding.accelerator.updateStr(String.valueOf(mcuInfo.getAps())+"%"); |
| | | |
| | | fun_id = 0; |
| | | //安全带 |
| | | bingding.inpsetSignalSlice.tvSeatBelt.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | Log.i(TAG,"安全带之后,Fun_ID="+fun_id); |
| | | 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(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvTrunLeft.setCompoundDrawablesWithIntrinsicBounds(mcuInfo.getLeft_turn_lamp()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | //右转 |
| | | bingding.inpsetSignalSlice.tvTurnRight.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvParkingBrake.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvFootBrake.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvLowLamp.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvHighBeam.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==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(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvNullEngine.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvGearOne.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvGearTwo.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvGearThree.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvGearFour.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvGearFive.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvReverseGear.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | Log.i(TAG,"三挡之后,Fun_ID="+fun_id); |
| | | bingding.inpsetSignalSlice.tvGateLock.setCompoundDrawablesWithIntrinsicBounds(mcuInfo.getLock()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | |
| | | |
| | | //副刹 |
| | | bingding.inpsetSignalSlice.tvSecondaryBrake.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null);//副刹 |
| | | bingding.inpsetSignalSlice.tvWindingOne.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvWindingTwo.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvWindingThree.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvWindingFour.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==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(getGpioBitValue()==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(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvWidthLamp.setCompoundDrawablesWithIntrinsicBounds(mcuInfo.getClearance_lamp()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | } |
| | | }); |
| | | } |
| | |
| | | |
| | | } |
| | | }; |
| | | private int getGpioBitValue(){ |
| | | |
| | | int index = singalConfigList.get(fun_id++).getIndex(); |
| | | Log.i(TAG,"fun_id"+(fun_id-1)+"对应index="+index); |
| | | if (index<gpios.size()){ |
| | | private String gearStr(int gear) { |
| | | |
| | | int value = gpios.get(index-1); |
| | | return value; |
| | | }else{ |
| | | Log.i(TAG,"索引超出,所以值返回0,默认灰色信号"); |
| | | return 0; |
| | | switch (gear){ |
| | | case 0: |
| | | return "空"; |
| | | case 6: |
| | | return "倒"; |
| | | default: |
| | | return String.valueOf(gear); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | public static SupportFragment newInstance(){ |
| | | return new InspectSignalFragment(); |
| | | } |
| | |
| | | @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(); |
| | | SignalConfigViewModel signalConfigViewModel = ViewModelProviders.of(this).get(SignalConfigViewModel.class); |
| | | signalConfigViewModel.getSignalConfigs().observe(this, singalConfigs -> { |
| | | if (singalConfigs != null && singalConfigs.size()>0){ |
| | | singalConfigList.clear(); |
| | | singalConfigList = singalConfigs; |
| | | sortSigalConfigList(); |
| | | } |
| | | }); |
| | | |
| | | leftGreen = getResources().getDrawable(R.drawable.green_light,null); |
| | | leftGray = getResources().getDrawable(R.drawable.gray_light,null); |
| | | |
| | | |
| | | |
| | | return bingding.getRoot(); |
| | | } |
| | | |