| | |
| | | import androidx.annotation.Nullable; |
| | | import androidx.appcompat.widget.Toolbar; |
| | | import androidx.databinding.DataBindingUtil; |
| | | import androidx.lifecycle.ViewModelProviders; |
| | | |
| | | import com.anyun.exam.lib.MyLog; |
| | | 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.MCUInfo; |
| | |
| | | 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) { |
| | |
| | | MyLog.i(TAG, "run: gpio["+i+"]="+gpios.get(i)); |
| | | } |
| | | MyLog.i("gpios.size="+gpios.size()); |
| | | bingding.inpsetSignalSlice.tvSeatBelt.setCompoundDrawablesWithIntrinsicBounds(gpios.get(5)==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvTrunLeft.setCompoundDrawablesWithIntrinsicBounds(gpios.get(14)==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvTurnRight.setCompoundDrawablesWithIntrinsicBounds(gpios.get(15)==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvParkingBrake.setCompoundDrawablesWithIntrinsicBounds(gpios.get(2)==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvFootBrake.setCompoundDrawablesWithIntrinsicBounds(gpios.get(7)==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvLowLamp.setCompoundDrawablesWithIntrinsicBounds(gpios.get(13)==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvHighBeam.setCompoundDrawablesWithIntrinsicBounds(gpios.get(11)==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | |
| | | bingding.inpsetSignalSlice.tvGateLock.setCompoundDrawablesWithIntrinsicBounds(gpios.get(9)==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvNullEngine.setCompoundDrawablesWithIntrinsicBounds(gpios.get(8)==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvGearOne.setCompoundDrawablesWithIntrinsicBounds(gpios.get(3)==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvGearTwo.setCompoundDrawablesWithIntrinsicBounds(gpios.get(6)==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvGearThree.setCompoundDrawablesWithIntrinsicBounds(gpios.get(1)==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvGearFour.setCompoundDrawablesWithIntrinsicBounds(gpios.get(4)==VALIAD_NUM?leftGreen:leftGray,null,null,null);//副刹 |
| | | bingding.inpsetSignalSlice.tvWindingOne.setCompoundDrawablesWithIntrinsicBounds(gpios.get(12)==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | bingding.inpsetSignalSlice.tvWindingTwo.setCompoundDrawablesWithIntrinsicBounds(gpios.get(10)==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | fun_id = 0; |
| | | //安全带 |
| | | bingding.inpsetSignalSlice.tvSeatBelt.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==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.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.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.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.tvFoglight.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==VALIAD_NUM?leftGreen:leftGray,null,null,null); |
| | | //示宽灯 |
| | | bingding.inpsetSignalSlice.tvWidthLamp.setCompoundDrawablesWithIntrinsicBounds(getGpioBitValue()==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()){ |
| | | |
| | | int value = gpios.get(index-1); |
| | | return value; |
| | | }else{ |
| | | Log.i(TAG,"索引超出,所以值返回0,默认灰色信号"); |
| | | return 0; |
| | | } |
| | | |
| | | } |
| | | 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(); |
| | | |
| | | 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(); |
| | | } |
| | | |
| | | 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())){ |