lizhanwei
2020-03-10 683deb483d41c576df68d57e250f02b77289677e
提交开始模拟灯光考试指令
3个文件已修改
1个文件已添加
157 ■■■■ 已修改文件
app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/customview/MyDialogFragment.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
@@ -39,7 +39,7 @@
    public static final int DEV_LOGIN = 6;
    private static HashMap<Integer,String> examPlatformStrs = new HashMap<>();
    private static HashMap<Integer,String> enter_exit_item_tts = new HashMap<>();
    private static List<String> simulate_light_tips = new ArrayList<>();
    private static List<SimulateNightBean.QuestionBean> simulate_light_tips = new ArrayList<>();
    static {
        examPlatformStrs.put(TCP_DISCONNECT,"未连接");
        examPlatformStrs.put(TCP_CONNECTED,"已连接");
@@ -61,16 +61,22 @@
        enter_exit_item_tts.put(5,"直角转弯");
        simulate_light_tips.add("开启前照灯");
        simulate_light_tips.add("开启前照灯");
        simulate_light_tips.add("开启前照灯");
        simulate_light_tips.add("开启前照灯");
        simulate_light_tips.add("开启前照灯");
        simulate_light_tips.add("开启前照灯");
        simulate_light_tips.add("开启前照灯");
        simulate_light_tips.add("开启前照灯");
        simulate_light_tips.add("开启前照灯");
        simulate_light_tips.add("开启前照灯");
        simulate_light_tips.add(new SimulateNightBean.QuestionBean(1,"开启前照灯"));
        simulate_light_tips.add(new SimulateNightBean.QuestionBean(2,"夜间在没有路灯照明不良条件下行驶"));
        simulate_light_tips.add(new SimulateNightBean.QuestionBean(3,"夜间在窄路与非机动车会车"));
        simulate_light_tips.add(new SimulateNightBean.QuestionBean(4,"请将前照灯更换成远光"));
        simulate_light_tips.add(new SimulateNightBean.QuestionBean(5,"夜间同方向近距离跟车行驶"));
        simulate_light_tips.add(new SimulateNightBean.QuestionBean(6,"雾天行驶"));
        simulate_light_tips.add(new SimulateNightBean.QuestionBean(7,"拱桥、人行道"));
        simulate_light_tips.add(new SimulateNightBean.QuestionBean(8,"夜间在道路上发生故障,妨碍交通又难以移动"));
        simulate_light_tips.add(new SimulateNightBean.QuestionBean(9," 夜间通过急弯、坡路、拱桥、人行横道、或者没有交通信号灯控制的路口"));
        simulate_light_tips.add(new SimulateNightBean.QuestionBean(10,"没有交通控制灯之路口"));
        simulate_light_tips.add(new SimulateNightBean.QuestionBean(11,"临时停车"));
        simulate_light_tips.add(new SimulateNightBean.QuestionBean(12,"超车"));
        simulate_light_tips.add(new SimulateNightBean.QuestionBean(100,"下面将进行模拟夜间行驶场景灯光使用的考试,请按语音指令在5秒内做出相应的灯光操作"));
        simulate_light_tips.add(new SimulateNightBean.QuestionBean(101,"模拟夜间考试完成请关闭所有灯光,请起步继续完成考试"));
@@ -238,4 +244,8 @@
    public String getPhone() {
        return mPhone;
    }
    public List<SimulateNightBean.QuestionBean> getSimulate_light_tips() {
        return simulate_light_tips;
    }
}
app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java
@@ -37,6 +37,11 @@
        private int item;
        private String tts;
        public QuestionBean(int i, String s) {
            this.item =i;
            this.tts = s;
        }
        public int getItem() {
            return item;
        }
app/src/main/java/safeluck/drive/evaluation/customview/MyDialogFragment.java
New file
@@ -0,0 +1,59 @@
package safeluck.drive.evaluation.customview;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
public class MyDialogFragment extends DialogFragment {
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return super.onCreateView(inflater, container, savedInstanceState);
    }
    @NonNull
    @Override
    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
        AlertDialog dialog =  new AlertDialog.Builder(getActivity())
                .setTitle("请选择考试项")
                .setMessage("来选择你要实现的一个愿望把")
                .setPositiveButton("场考", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        if (callback != null){
                            callback.changKao();
                        }
                    }
                })
                .setNegativeButton("路考", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        if (callback!= null){
                            callback.luKao();
                        }
                    }
                }).create();
        return dialog;
    }
    private Callback callback;
    public  interface Callback{
        void changKao();
        void luKao();
    }
    public void setCallback(Callback callback) {
        this.callback = callback;
    }
}
app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -27,6 +27,7 @@
import com.anyun.exam.lib.AYSdk;
import com.anyun.exam.lib.MyLog;
import com.google.gson.Gson;
import org.json.JSONException;
import org.json.JSONObject;
@@ -51,10 +52,12 @@
import safeluck.drive.evaluation.DB.exam_status.ExamStatus;
import safeluck.drive.evaluation.bean.ExamPlatformData;
import safeluck.drive.evaluation.bean.ScoreBean;
import safeluck.drive.evaluation.bean.SimulateNightBean;
import safeluck.drive.evaluation.cEventCenter.CEventCenter;
import safeluck.drive.evaluation.cEventCenter.ICEventListener;
import safeluck.drive.evaluation.customview.ArrowView;
import safeluck.drive.evaluation.customview.HouseView;
import safeluck.drive.evaluation.customview.MyDialogFragment;
import safeluck.drive.evaluation.im.MessageProcessor;
import safeluck.drive.evaluation.platformMessage.JKMessage0201;
import safeluck.drive.evaluation.platformMessage.JKMessage0202;
@@ -71,9 +74,12 @@
public class NetWorkTrainFragment extends SupportFragment implements View.OnClickListener {
    private static final String TAG = NetWorkTrainFragment.class.getSimpleName();
    private int exam_type = 2;//2 场地;3 道路,模拟夜考;4 道路,实际夜考;
    private ListView mListView;
    private Button btn_start_exam;
    private TextView tv_stop;//呼叫请求(结束考试)
    private Gson gson = new Gson();
    private ScoreAdapter mScoreAdapter;
    private ArrowView av_zhijiao, av_curve, av_park, av_podao;
    private HouseView houseView;
@@ -199,7 +205,7 @@
                    if (examStatus.get(0).getStartExam() == Constant.HAS_BEEN_START_EXAM){
                        btn_start_exam.setEnabled(false);
                        tv_stop.setEnabled(true);
                        sendExamJson(Constant.HAS_BEEN_START_EXAM);
                        sendExamJson(Constant.HAS_BEEN_START_EXAM,exam_type);
                    }else{
                        btn_start_exam.setEnabled(true);
                        tv_stop.setEnabled(false);
@@ -390,26 +396,54 @@
    }
MyDialogFragment myDialogFragment;
    SimulateNightBean simulateNightBean = null;
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_start:
                examStatusViewModel.updateStartExam(Constant.HAS_BEEN_START_EXAM);
                failedProjViewModel.deleteAll();
                sendExamJson(1);
                if (myDialogFragment == null){
                    myDialogFragment = new MyDialogFragment();
                }
                myDialogFragment.show(getFragmentManager(),"dialog");
                myDialogFragment.setCallback(new MyDialogFragment.Callback() {
                    @Override
                    public void changKao() {
                        exam_type = 2;
                        sendExamJson(1,exam_type);
                        ExamPlatformData.getInstance().getTTS().speak("开始考试");
                    }
                    @Override
                    public void luKao() {
                        exam_type = 3;
                        sendExamJson(1,exam_type);
                        if (simulateNightBean == null){
                            simulateNightBean = new SimulateNightBean();
                        }
                        simulateNightBean.setExam(0);
                        List<SimulateNightBean.QuestionBean> list = ExamPlatformData.getInstance().getSimulate_light_tips();
                        simulateNightBean.setQuestion(list.subList(list.size()-2,list.size()-1));
                        AYSdk.getInstance().sendCmd(0x8012,gson.toJson(simulateNightBean));
                    }
                });
                iv_head.getDrawable().setLevel(1);
                //清空sns
                sns.clear();
                //TODO 发送JKMessage0202 给平台,开始考试
                JKMessage0202 jkMessage0202 = new JKMessage0202();
                jkMessage0202.phone = ExamPlatformData.getInstance().getPhone();
                jkMessage0202.timeBCD = new Date();
                jkMessage0202.curr_exam = 0;
                jkMessage0202.ID = ExamPlatformData.getInstance().getID();
                jkMessage0202.exam_id = ExamPlatformData.getInstance().getExam_id();
                MessageProcessor.getInstance().sendMessage(jkMessage0202);
                ExamPlatformData.getInstance().getTTS().speak("开始考试");
//                JKMessage0202 jkMessage0202 = new JKMessage0202();
//                jkMessage0202.phone = ExamPlatformData.getInstance().getPhone();
//                jkMessage0202.timeBCD = new Date();
//                jkMessage0202.curr_exam = 0;
//                jkMessage0202.ID = ExamPlatformData.getInstance().getID();
//                jkMessage0202.exam_id = ExamPlatformData.getInstance().getExam_id();
//                MessageProcessor.getInstance().sendMessage(jkMessage0202);
                break;
            case R.id.tv_stop:
                Toast.makeText(_mActivity, "结束考试", Toast.LENGTH_SHORT).show();
@@ -436,10 +470,11 @@
        }
    }
    private void sendExamJson(int i) {
    private void sendExamJson(int i,int type) {
        try {
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("exam", i);
            jsonObject.put("type", type);
            String examJson = jsonObject.toString();
            Log.i(TAG, "onClick: " + examJson);
            AYSdk.getInstance().sendCmd(Constant.EXAM_STATUS, examJson);
@@ -459,7 +494,7 @@
        OneTimeWorkRequest examStatusInitWork = OneTimeWorkRequest.from(ExamStatusInitWorker.class);
        WorkManager.getInstance(_mActivity).enqueue(examStatusInitWork);
        ExamPlatformData.getInstance().getTTS().speak("结束考试");
        sendExamJson(0);
        sendExamJson(0,exam_type);
        //TODO 发送JKMessage0204给平台 结束考试
        JKMessage0204 jkMessage0204 = new JKMessage0204();
        jkMessage0204.phone = ExamPlatformData.getInstance().getPhone();