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.appcompat.widget.Toolbar; import androidx.databinding.DataBindingUtil; import com.anyun.exam.lib.MyLog; import com.anyun.im_lib.util.ByteUtil; import com.google.gson.Gson; import java.util.ArrayList; import java.util.List; import me.yokeyword.fragmentation.SupportFragment; import safeluck.drive.evaluation.Constant; import safeluck.drive.evaluation.R; 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 TextView textView_turnLight,tv_speed,tv_engine; private Toolbar toolbar; private Gson gson= new Gson(); private Handler handler = new Handler(); private LayoutCheckSignalBinding bingding; private List gpios = new ArrayList<>(); Drawable leftGreen ; Drawable leftGray ; private int index =0 ; private ICEventListener icEventListener = new ICEventListener() { @Override public void onCEvent(String topic, int msgCode, int resultCode, Object obj) { if (msgCode==Constant.MCU_SN){ final MCUInfo mcuInfo = gson.fromJson((String)obj, MCUInfo.class); 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.tvRoateSpeed.setText(String.valueOf(mcuInfo.getEngine())); bingding.tvDangweiNum.setText(String.valueOf(mcuInfo.getSpeed()/10.0)); for (int i = 0; i < gpios.size(); i++) { Log.i(TAG, "run: gpio["+i+"]="+gpios.get(i)); } 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); } }); } } } }; public static SupportFragment newInstance(){ return new InspectSignalFragment(); } @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 initView() { toolbar = bingding.inpsectSignalToolbar.toolbar; toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_arrow_back_white_24dp,null)); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { _mActivity.onBackPressed(); } }); toolbar.setTitle("查看车载信号输入"); } @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); } }