yy1717
2020-08-19 39d8fdbb1754997a33b323b6a447ffb2a837806f
Merge branch 'master' of https://gitee.com/endian11/DriveJudge
8个文件已修改
1个文件已添加
383 ■■■■■ 已修改文件
app/src/main/java/safeluck/drive/evaluation/Constant.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/app.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/bean/CarSignal.kt 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/bean/RTKInfoBean.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/InspectSignalFragment.java 115 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/layout_base_datas.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/layout_check_signal.xml 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/layout_mycustom_et.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/layout_signal_slice.xml 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/Constant.java
@@ -93,6 +93,7 @@
    public static final String NEED_MAPS_CAR = "need_maps_car";
    //用于地图车辆移动 坐标
    public static final String BIND_RTK_INFO_MAP = "bind_rtk_info_map";
    public static final int ID_SM_CARSENSOR = 0x0013;
    public static String exam_enter_exitdata="exam_enter_exitdata";
    public static int Chang_di = 2;
    public static int DaoLu_night = 3;
app/src/main/java/safeluck/drive/evaluation/app.java
@@ -82,8 +82,7 @@
                        }
                    })
                    .install();
            MyLog.delSubDirLogs();
            CrashHandler crashHandler = CrashHandler.getInstance();
            crashHandler.init(getApplicationContext());
            AYSdk.getInstance().init(getApplicationContext());
@@ -116,7 +115,7 @@
            DataInitKt.MCUUpgrade(getApplicationContext());
            DataInitKt.sendExamLights(getApplicationContext());
            DataInitKt.sendRtkConfig(getApplicationContext());
            DataInitKt.sendSignalConfigToRemote(getApplicationContext());
//            DataInitKt.sendSignalConfigToRemote(getApplicationContext());
//            OneTimeWorkRequest mcuUpgradeWorker = OneTimeWorkRequest.from(MCUUpgradeWorker.class);
//            WorkManager.getInstance(getApplicationContext()).beginWith(examStatausOutWorker).then(mcuUpgradeWorker).enqueue();
        });
@@ -512,6 +511,10 @@
            case Constant.LEFT_RIGHT_DISTANCE:
                CEventCenter.dispatchEvent(Constant.BIND_RTK_SPEED_TOPIC,cmd,0,json);
                break;
            case Constant.ID_SM_CARSENSOR:
                Log.i("InspectSignal",json);
                CEventCenter.dispatchEvent(Constant.BIND_MCUINFO_TOPIC,cmd,0,json);
                break;
        }
    }
app/src/main/java/safeluck/drive/evaluation/bean/CarSignal.kt
New file
@@ -0,0 +1,51 @@
package safeluck.drive.evaluation.bean
/**DriveJudge
 * Created by lzw on 2020/8/17. 19:06:54
 * 邮箱:632393724@qq.com
 * All Rights Saved! Chongqing AnYun Tech co. LTD
 */
data class CarSignal (
        //总里程
        var  odo:Int,
        //本次运行里程
        var  trip:Int,
        //本次运行时间
        var  trip_time:Int,
        var cell_volt:Double,
        var speed:Double,
        var engine:Int,
        //方向盘转角 -1000~1000,负数代表左转
        var sas:Int,
        //钥匙状态  0:OFF,1:ACC,2:ON,3:START
        var key:Int,
        var gear:Int,
        //加速踏板 0~100,踏板行程百分比
        var aps:Int,
        var lock:Int,
        var seat_belt:Int,
        //离合    Uint8    1:踩下,0:未踩
        var clutch:Int,
        //喇叭    Uint8    1:按下,0:未按
        var horn:Int,
        //27    雨刮    Uint8    1:打开,0:关闭
        var wiper:Int,
        var hand_break:Int,
        //脚刹
        var main_break:Int,
        var left_turn_lamp:Int,
        var right_turn_lamp:Int,
        //示廓灯    Uint8    1:打开,0:关闭
        var clearance_lamp:Int,
        //近光灯    Uint8    1:打开,0:关闭
        var dipped_beam_lamp:Int,
        //远光灯    Uint8    1:打开,0:关闭
        var main_beam_lamp:Int,
        //雾灯    Uint8    1:打开,0:关闭
        var fog_lamp:Int,
        var assist_break:Int,
        var surround1:Int,
        var surround2:Int,
        var surround3:Int,
        var surround4:Int
)
app/src/main/java/safeluck/drive/evaluation/bean/RTKInfoBean.java
@@ -168,4 +168,25 @@
    public void setTrack_ture(double track_ture) {
        this.track_ture = track_ture;
    }
    @Override
    public String toString() {
        return "RTKInfoBean{" +
                "utc='" + utc + '\'' +
                ", qf=" + qf +
                ", coord_x=" + coord_x +
                ", coord_x_dir='" + coord_x_dir + '\'' +
                ", coord_y=" + coord_y +
                ", coord_y_dir='" + coord_y_dir + '\'' +
                ", heading=" + heading +
                ", pitch=" + pitch +
                ", roll=" + roll +
                ", sat_num=" + sat_num +
                ", latitude=" + latitude +
                ", longitude=" + longitude +
                ", altitude=" + altitude +
                ", speed=" + speed +
                ", track_ture=" + track_ture +
                '}';
    }
}
app/src/main/java/safeluck/drive/evaluation/fragment/InspectSignalFragment.java
@@ -13,6 +13,7 @@
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;
@@ -32,6 +33,7 @@
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;
@@ -62,60 +64,69 @@
        @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);
                            }
                        });
                    }
@@ -124,20 +135,20 @@
        }
    };
    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();
    }
@@ -146,20 +157,16 @@
    @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();
    }
app/src/main/res/layout/layout_base_datas.xml
@@ -30,11 +30,12 @@
    android:text="保存"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="10dp"
        android:layout_below="@+id/btn_save_platform"
        android:id="@+id/ll_container_set"
        android:layout_marginBottom="@dimen/ui_margin_10dp"
        android:layout_marginLeft="@dimen/ui_margin_10dp"
        android:layout_marginRight="@dimen/ui_margin_10dp"
        android:gravity="center_horizontal"
@@ -147,6 +148,7 @@
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:gravity="center_vertical"
            android:visibility="gone"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="10dp"
            android:orientation="horizontal">
app/src/main/res/layout/layout_check_signal.xml
@@ -18,15 +18,17 @@
            android:layout_marginLeft="@dimen/ui_margin_10dp"
            />
        <FrameLayout
            android:layout_width="791dp"
            android:layout_height="373dp"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/stu_score_bg"
            android:layout_marginLeft="@dimen/ui_margin_10dp"
            android:layout_marginBottom="@dimen/ui_margin_10dp"
            android:layout_marginRight="10dp">
            <include layout="@layout/layout_signal_slice" android:id="@+id/inpset_signal_slice"/>
            <RelativeLayout
                android:layout_gravity="end"
                android:padding="10dp"
                android:layout_marginRight="@dimen/ui_margin_20dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <safeluck.drive.evaluation.customview.MyCustomEditText
@@ -38,7 +40,7 @@
                    lee:txt_unit_des ="km/h"
                    android:layout_height="58dp"
                    android:layout_width="237dp"/>
                    android:layout_width="257dp"/>
                <safeluck.drive.evaluation.customview.MyCustomEditText
                    android:layout_marginTop="@dimen/ui_margin_20dp"
                    android:layout_below="@+id/myspeed"
@@ -48,7 +50,83 @@
                    lee:txt_unit_des ="r/min"
                    android:id="@+id/roatespeed"
                    android:layout_height="58dp"
                    android:layout_width="237dp"/>
                    android:layout_width="257dp"/>
                <safeluck.drive.evaluation.customview.MyCustomEditText
                    android:layout_marginTop="@dimen/ui_margin_20dp"
                    android:layout_below="@+id/roatespeed"
                    lee:txt="1212"
                    lee:txt_des="档位"
                    lee:txt_unit="true"
                    lee:txt_unit_des ="档"
                    android:id="@+id/dagnwei"
                    android:layout_height="58dp"
                    android:layout_width="257dp"/>
                <safeluck.drive.evaluation.customview.MyCustomEditText
                    android:layout_marginTop="@dimen/ui_margin_20dp"
                    android:layout_below="@+id/dagnwei"
                    lee:txt="1212"
                    lee:txt_des="钥匙"
                    lee:txt_unit="false"
                    lee:txt_unit_des ="档"
                    android:id="@+id/keystatus"
                    android:layout_height="58dp"
                    android:layout_width="257dp"/>
                <safeluck.drive.evaluation.customview.MyCustomEditText
                    android:layout_marginTop="@dimen/ui_margin_20dp"
                    android:layout_below="@+id/keystatus"
                    lee:txt="1212"
                    lee:txt_des="加速踏板"
                    lee:txt_unit="false"
                    lee:txt_unit_des ="档"
                    android:id="@+id/accelerator"
                    android:layout_height="58dp"
                    android:layout_width="257dp"/>
            </RelativeLayout>
            <RelativeLayout
                android:layout_gravity="center_horizontal"
                android:padding="10dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <safeluck.drive.evaluation.customview.MyCustomEditText
                    android:id="@+id/odo"
                    lee:txt="121"
                    lee:txt_des="总里程"
                    lee:txt_unit="true"
                    lee:txt_unit_des ="km"
                    android:layout_height="58dp"
                    android:layout_width="257dp"/>
                <safeluck.drive.evaluation.customview.MyCustomEditText
                    android:layout_marginTop="@dimen/ui_margin_20dp"
                    android:layout_below="@+id/odo"
                    lee:txt="1212"
                    lee:txt_des="本次运行里程"
                    lee:txt_unit="true"
                    lee:txt_unit_des ="km"
                    android:id="@+id/trip"
                    android:layout_height="58dp"
                    android:layout_width="257dp"/>
                <safeluck.drive.evaluation.customview.MyCustomEditText
                    android:layout_marginTop="@dimen/ui_margin_20dp"
                    android:layout_below="@+id/trip"
                    lee:txt="1212"
                    lee:txt_des="本次运行时间"
                    lee:txt_unit="true"
                    lee:txt_unit_des ="秒"
                    android:id="@+id/trip_time"
                    android:layout_height="58dp"
                    android:layout_width="257dp"/>
                <safeluck.drive.evaluation.customview.MyCustomEditText
                    android:layout_marginTop="@dimen/ui_margin_20dp"
                    android:layout_below="@+id/trip_time"
                    lee:txt="1212"
                    lee:txt_des="电压"
                    lee:txt_unit="true"
                    lee:txt_unit_des ="V"
                    android:id="@+id/cell_volt"
                    android:layout_height="58dp"
                    android:layout_width="257dp"/>
            </RelativeLayout>
        </FrameLayout>
app/src/main/res/layout/layout_mycustom_et.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="237dp"
    android:orientation="horizontal" android:layout_width="257dp"
    android:layout_height="58dp"
    android:gravity="center_vertical"
    android:background="@drawable/input_bg">
app/src/main/res/layout/layout_signal_slice.xml
@@ -30,17 +30,7 @@
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
            android:textColor="@android:color/white"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="档位一"
            android:textSize="@dimen/network_train_textsize22px"
            android:layout_marginLeft="30dp"
            android:id="@+id/tv_gear_one"
            android:layout_toRightOf="@+id/tv_high_beam"
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
            android:textColor="@android:color/white"/>
    </TableRow>
    <TableRow android:layout_marginBottom="10dp" >
@@ -54,23 +44,14 @@
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
            android:textColor="@android:color/white"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="空档"
            android:text="绕车三"
            android:id="@+id/tv_winding_three"
            android:textSize="@dimen/network_train_textsize22px"
            android:layout_marginLeft="30dp"
            android:id="@+id/tv_null_engine"
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
            android:textColor="@android:color/white"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="档位二"
            android:textSize="@dimen/network_train_textsize22px"
            android:layout_marginLeft="30dp"
            android:id="@+id/tv_gear_two"
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
            android:textColor="@android:color/white"/>
@@ -97,16 +78,7 @@
            android:drawablePadding="5dp"
            android:layout_marginLeft="30dp"
            android:textColor="@android:color/white"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="档位三"
            android:textSize="@dimen/network_train_textsize22px"
            android:layout_marginLeft="30dp"
            android:id="@+id/tv_gear_three"
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
            android:textColor="@android:color/white"/>
    </TableRow>
    <TableRow android:layout_marginBottom="10dp" >
@@ -121,16 +93,7 @@
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
            android:textColor="@android:color/white"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="档位四"
            android:textSize="@dimen/network_train_textsize22px"
            android:layout_marginLeft="30dp"
            android:id="@+id/tv_gear_four"
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
            android:textColor="@android:color/white"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
@@ -167,16 +130,7 @@
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
            android:textColor="@android:color/white"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="档位五"
            android:layout_marginLeft="30dp"
            android:id="@+id/tv_gear_five"
            android:textSize="@dimen/network_train_textsize22px"
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
            android:textColor="@android:color/white"/>
    </TableRow>
    <TableRow android:layout_marginBottom="10dp" >
@@ -201,16 +155,6 @@
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
            android:textColor="@android:color/white"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="绕车二"
            android:layout_marginLeft="30dp"
            android:id="@+id/tv_signal3_6"
            android:textSize="@dimen/network_train_textsize22px"
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
            android:textColor="@android:color/white"/>
    </TableRow>
    <TableRow android:layout_marginBottom="10dp" >
@@ -228,23 +172,14 @@
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="钥匙START位"
            android:text="绕车二"
            android:layout_marginLeft="30dp"
            android:id="@+id/tv_winding_two"
            android:textSize="@dimen/network_train_textsize22px"
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
            android:textColor="@android:color/white"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="绕车三"
            android:id="@+id/tv_winding_three"
            android:textSize="@dimen/network_train_textsize22px"
            android:layout_marginLeft="30dp"
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
            android:textColor="@android:color/white"/>
    </TableRow>
    <TableRow android:layout_marginBottom="10dp" >
@@ -259,16 +194,7 @@
            android:drawablePadding="5dp"
            android:textSize="@dimen/network_train_textsize22px"
            android:textColor="@android:color/white"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="倒挡"
            android:layout_marginLeft="30dp"
            android:id="@+id/tv_reverse_gear"
            android:textSize="@dimen/network_train_textsize22px"
            android:drawableLeft="@drawable/gray_light"
            android:drawablePadding="5dp"
            android:textColor="@android:color/white"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"