app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java
@@ -29,7 +29,7 @@ public AppStatusWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) { super(context, workerParams); MyLog.d(TAG,"初始化AppStatusDao"); MyLog.d(TAG,"初始化AppStatusWorker"); appStatusDao = WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getAppStatusDao(); } app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt
@@ -8,6 +8,8 @@ import com.anyun.exam.lib.AYSdk import com.anyun.exam.lib.MyLog import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.google.gson.stream.JsonReader import org.json.JSONException import org.json.JSONObject import safeluck.drive.evaluation.DB.Constant @@ -15,6 +17,8 @@ import safeluck.drive.evaluation.DB.rtktb.RTKConfig import safeluck.drive.evaluation.DB.signalConfigdb.SingalConfig import safeluck.drive.evaluation.bean.SignalConfigRemote import java.io.IOException import java.io.InputStreamReader class ExamStatusOutWorker(context: Context, workerParams: WorkerParameters) : Worker(context, workerParams) { val TAG:String = "ExamStatusOutWorker" @@ -23,18 +27,9 @@ private var singalConfigs :List<SingalConfig> = ArrayList() override fun doWork(): Result { val examType =WorkRoomDataBase.getWorkRoomDataBase(applicationContext).examStatusDao.startExamInt; singalConfigs = WorkRoomDataBase.getWorkRoomDataBase(applicationContext).signalConfigDao._getSignalConfigs() sendRtkConfigInfo(WorkRoomDataBase.getWorkRoomDataBase(applicationContext).rtkConfigDao._getRtkConfig()) for (i in singalConfigs.indices) { val signalConfigRemote = SignalConfigRemote() signalConfigRemote.func_id = i signalConfigRemote.gpio_num = singalConfigs.get(i).getIndex() signalConfigRemote.level = singalConfigs.get(i).getHighLevel() signalConfiglist.add(signalConfigRemote) } var indexs = WorkRoomDataBase.getWorkRoomDataBase(applicationContext).signalConfigDao.allIndexs sendSignalConfigsToRemote(indexs) MyLog.i(TAG,"查到的考试type="+examType) val data = Data.Builder().putInt(Constant.EXAM_STATUS_TYPE,examType).build() if (examType != safeluck.drive.evaluation.Constant.NONE_BEEN_START_EXAM) { @@ -48,6 +43,55 @@ e.printStackTrace() } } var rtk = WorkRoomDataBase.getWorkRoomDataBase(applicationContext).rtkConfigDao._getRtkConfig() if (rtk == null){ try { MyLog.i("读文件发送RTK配置") val inputStream = applicationContext.assets.open(safeluck.drive.evaluation.Constant.RTK_CONFIG_JSON) val inputStreamReader = InputStreamReader(inputStream) val jsonReader = JsonReader(inputStreamReader) val gson = Gson() val type = object : TypeToken<RTKConfig?>() {}.type val mstus = gson.fromJson<RTKConfig>(jsonReader, type) rtk = mstus } catch (e: IOException) { e.printStackTrace() } }else{ } sendRtkConfigInfo(rtk) singalConfigs = WorkRoomDataBase.getWorkRoomDataBase(applicationContext).signalConfigDao._getSignalConfigs() if (singalConfigs ==null){ MyLog.i("读文件发送信号配置") try { val inputStream = applicationContext.assets.open("signal_config_file.json") val inputStreamReader = InputStreamReader(inputStream) val jsonReader = JsonReader(inputStreamReader) val gson = Gson() val type = object : TypeToken<List<SingalConfig?>?>() {}.type val mstus = gson.fromJson<List<SingalConfig>>(jsonReader, type) singalConfigs = mstus } catch (e: IOException) { e.printStackTrace() } }else{ } for (i in singalConfigs.indices) { val signalConfigRemote = SignalConfigRemote() signalConfigRemote.func_id = i signalConfigRemote.gpio_num = singalConfigs.get(i).getIndex() signalConfigRemote.level = singalConfigs.get(i).getHighLevel() signalConfiglist.add(signalConfigRemote) } var indexs = WorkRoomDataBase.getWorkRoomDataBase(applicationContext).signalConfigDao.allIndexs sendSignalConfigsToRemote(indexs) return Result.success(data) } @@ -89,7 +133,7 @@ jsonObject!!.remove("_id") rtkjson = null rtkjson = jsonObject.toString() MyLog.i(TAG, "RTK配置信息:$rtkjson") MyLog.i(TAG, "NDK_start RTK配置信息") AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.PUSH_RTK_PLATFORM_INFO, rtkjson) } else { MyLog.d(TAG, "RTKConfig未取到数据") app/src/main/java/safeluck/drive/evaluation/DB/signalConfigdb/SignalConfigInitWorker.java
@@ -1,11 +1,13 @@ package safeluck.drive.evaluation.DB.signalConfigdb; import android.content.Context; import android.util.Log; import androidx.annotation.NonNull; import androidx.work.Worker; import androidx.work.WorkerParameters; import com.anyun.exam.lib.AYSdk; import com.anyun.exam.lib.MyLog; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; @@ -15,20 +17,25 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; import safeluck.drive.evaluation.DB.WorkRoomDataBase; import safeluck.drive.evaluation.bean.SignalConfigRemote; public class SignalConfigInitWorker extends Worker { private static final String TAG = "SignalConfigInitWorker"; private List<SignalConfigRemote> signalConfiglist = new ArrayList<>(); private Gson gson; public SignalConfigInitWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) { super(context, workerParams); gson = new Gson(); } @NonNull @Override public Result doWork() { MyLog.i(TAG,"信号配置表初始化"); MyLog.i("信号配置表初始化"); try { InputStream inputStream = getApplicationContext().getAssets().open("signal_config_file.json"); @@ -46,4 +53,29 @@ } return Result.success(); } private void sendSignalConfigsToRemote(List<Integer> indexs) { if (signalConfiglist.size() > 0) { if (listContainsSameValue(indexs)) { Log.i(TAG, "sendSignalConfigsToRemote: 有相同的index,不能发送" + gson.toJson(signalConfiglist)); } else { AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.SEND_CONFIG_SIGNAL, gson.toJson(signalConfiglist)); } } } private boolean listContainsSameValue(List<Integer> indexs) { for (int i=0;i<indexs.size();i++) { //可以默认是0 0不判断是否有相同的index if (indexs.get(i) == 0) { continue; } for (int j =i + 1 ;j<indexs.size();j++) { if (indexs.get(i) == indexs.get(j)) { return true; } } } return false; } } app/src/main/java/safeluck/drive/evaluation/MainActivity.java
@@ -105,29 +105,6 @@ }; private List<SignalConfigRemote> signalConfiglist = new ArrayList<>(); private void sendMcuUprgrade() { CThreadPoolExecutor.runInBackground(new Runnable() { @Override public void run() { try { byte[] datas = FileUtil.readLocalFile(MainActivity.this,Constant.MCU_FILE_NAME); if (datas != null){ Log.i(TAG, ByteUtil.byte2hex(datas)); String strs = new String(datas, Charset.forName("ISO-8859-1")); MyLog.i(TAG, "mcu upgrade datas.legnth=="+strs.getBytes("ISO-8859-1").length); AYSdk.getInstance().sendCmd(Constant.UPGRADE_MCU_CONTENT_FILE, strs); // FileUtil.deleteFile("",Constant.MCU_FILE_NAME); }else{ MyLog.i(TAG,"mcu升级文件不存在"); } } catch (IOException e) { e.printStackTrace(); } } }); } public ExamPlatformModel examPlatformModel; @Override app/src/main/java/safeluck/drive/evaluation/app.java
@@ -78,7 +78,6 @@ private Gson gson; RTKConfig rtkConfig; FailedProjRepository failedProjRepository;//失败项目表数据库 RTKWorkRepository rtkWorkRepository;//保存RTK配置表 Random random = new Random(); private static Context appContext=null; @Override @@ -109,7 +108,6 @@ MyLog.i(TAG, "onCreate111"); FileUtil.createdirs(getApplicationContext()); failedProjRepository = new FailedProjRepository(this); rtkWorkRepository = new RTKWorkRepository(this); MyLog.i(TAG,"拷贝assert目录下的map" + "和vechile json到包目录下"); new Thread(new Runnable() { @@ -165,7 +163,6 @@ // CEventCenter.dispatchEvent(Constant.BIND_CONNECT_RTK_TOPIC,cmd,0,json); break; case Constant.RTK_PLATFORM_REGISTER_STATUS: CEventCenter.dispatchEvent(Constant.BIND_CONNECT_RTK_TOPIC,cmd,0,json); @@ -297,7 +294,7 @@ }else{ if (TextUtils.isEmpty(lastSn)){ lastSn =sn; lastSn ="123"; return; } lastSn = sn;