合并dev代码
This commit is contained in:
parent
73bc75388f
commit
21a1f20cef
73
entry/src/main/ets/common/utils/UdpEvent.ets
Normal file
73
entry/src/main/ets/common/utils/UdpEvent.ets
Normal file
@ -0,0 +1,73 @@
|
||||
import emitter from '@ohos.events.emitter';
|
||||
|
||||
export const EVENTID = {
|
||||
//远程扣分处理
|
||||
kfEventId:35,
|
||||
//远程扣分查询
|
||||
kfAskEventId:36,
|
||||
//远程扣分确认
|
||||
kfConfirmEventId:37,
|
||||
//远程开始考试
|
||||
beginExamEventId:11,
|
||||
//远程结束考试
|
||||
endExamEventId:12
|
||||
}
|
||||
|
||||
export default class JudgeEmitter{
|
||||
|
||||
private beginExamCallBack:Function = ()=>{}
|
||||
private endExamCallBack:Function = ()=>{}
|
||||
|
||||
constructor() {
|
||||
this.init()
|
||||
}
|
||||
|
||||
init = async ()=>{
|
||||
console.info('surenjun','开始注册udp事件')
|
||||
emitter.on({eventId:EVENTID.beginExamEventId}, () => {
|
||||
this?.beginExamCallBack()
|
||||
});
|
||||
emitter.on({eventId:EVENTID.endExamEventId}, () => {
|
||||
this?.endExamCallBack()
|
||||
});
|
||||
emitter.on({eventId:EVENTID.kfEventId}, () => {
|
||||
this?.endExamCallBack()
|
||||
});
|
||||
}
|
||||
|
||||
//监听开始考试
|
||||
public onBeginExam = async (callBack?:Function)=>{
|
||||
console.info('surenjun','userInfo注册onBeginExam事件')
|
||||
this.beginExamCallBack = callBack
|
||||
}
|
||||
|
||||
//监听结束考试
|
||||
public onEndExam = async (callBack?:Function)=>{
|
||||
this.endExamCallBack = callBack
|
||||
}
|
||||
|
||||
//监听扣分处理
|
||||
public onKfExam= async (callBack?:Function)=>{
|
||||
this.endExamCallBack = callBack
|
||||
}
|
||||
|
||||
//开始考试
|
||||
public sendBeginExam = async(content:string)=>{
|
||||
emitter.emit({eventId:EVENTID.beginExamEventId}, {
|
||||
data:{ content }
|
||||
});
|
||||
}
|
||||
|
||||
//结束考试
|
||||
public sendEndExam = async(content:string)=>{
|
||||
emitter.emit({eventId:EVENTID.endExamEventId}, {
|
||||
data:{content}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
165
entry/src/main/ets/mock/CarCheck.ts
Normal file
165
entry/src/main/ets/mock/CarCheck.ts
Normal file
@ -0,0 +1,165 @@
|
||||
export const WarnFlagData = {
|
||||
1: '0',
|
||||
2: '0',
|
||||
3: '0',
|
||||
4: '0',
|
||||
5: '0',
|
||||
6: '0',
|
||||
7: '0',
|
||||
8: '0',
|
||||
9: '0',
|
||||
10: '0',
|
||||
11: '0',
|
||||
12: '0',
|
||||
13: '0',
|
||||
14: '0',
|
||||
15: '0',
|
||||
16: '0',
|
||||
17: '0',
|
||||
18: '0',
|
||||
19: '0',
|
||||
20: '0',
|
||||
21: '0',
|
||||
22: '0',
|
||||
23: '0',
|
||||
24: '0',
|
||||
25: '0',
|
||||
26: '0',
|
||||
27: '0',
|
||||
28: '0',
|
||||
29: '0',
|
||||
}
|
||||
|
||||
export const PassData = {
|
||||
1: false,
|
||||
2: false,
|
||||
3: false,
|
||||
4: false,
|
||||
5: false,
|
||||
6: false,
|
||||
7: false,
|
||||
8: false,
|
||||
9: false,
|
||||
10: false,
|
||||
11: false,
|
||||
12: false,
|
||||
13: false,
|
||||
14: false,
|
||||
15: false,
|
||||
16: false,
|
||||
17: false,
|
||||
18: false,
|
||||
19: false,
|
||||
20: false,
|
||||
21: false,
|
||||
22: false,
|
||||
23: false,
|
||||
24: false,
|
||||
25: false,
|
||||
26: false,
|
||||
27: false,
|
||||
28: false,
|
||||
29: false,
|
||||
}
|
||||
|
||||
export const StackValueData = {
|
||||
1: '',
|
||||
2: "",
|
||||
3: "",
|
||||
4: "",
|
||||
5: "",
|
||||
6: "",
|
||||
7: "",
|
||||
8: "",
|
||||
9: "",
|
||||
10: "",
|
||||
11: "",
|
||||
12: "",
|
||||
13: "",
|
||||
14: "",
|
||||
15: "",
|
||||
16: "",
|
||||
17: "",
|
||||
18: "",
|
||||
19: "",
|
||||
20: "",
|
||||
21: "",
|
||||
22: "",
|
||||
23: "",
|
||||
24: "",
|
||||
25: "",
|
||||
26: "",
|
||||
27: "",
|
||||
28: "",
|
||||
29: "",
|
||||
}
|
||||
|
||||
export const WarnFlagTipData = {
|
||||
0: [],
|
||||
1: [],
|
||||
2: [],
|
||||
3: ['check1.wav', 'check2.wav'],
|
||||
4: ['check3.wav', 'check4.wav'],
|
||||
5: ['check5.wav', 'check6.wav'],
|
||||
6: ['check7.wav', 'check8.wav'],
|
||||
7: ['check9.wav', 'check10.wav'],
|
||||
8: ['check26.wav', 'check27.wav'],
|
||||
9: ['dianhuoVideo.wav', 'xihuoVideo.wav'],
|
||||
10: ['check31.wav'],
|
||||
11: ['check30.wav'],
|
||||
12: ['check28.wav'],
|
||||
13: ['check29.wav'],
|
||||
14: ['check11.wav'],
|
||||
15: ['check12.wav'],
|
||||
16: ['check13.wav'],
|
||||
17: ['check14.wav'],
|
||||
18: ['check15.wav'],
|
||||
19: ['check16.wav'],
|
||||
20: ['check17.wav'],
|
||||
21: ['check18.wav'],
|
||||
22: ['check19.wav'],
|
||||
23: ['check22.wav'],
|
||||
24: ['check23.wav'],
|
||||
25: ['check20.wav', 'check21.wav'],
|
||||
26: ['check24.wav'],
|
||||
// 27:[],
|
||||
// 28:[],
|
||||
// 29:[],
|
||||
}
|
||||
|
||||
export const RealNumData = {
|
||||
3: 19,
|
||||
4: 17,
|
||||
5: 13,
|
||||
6: 12,
|
||||
7: 14,
|
||||
8: 18,
|
||||
9: 5,
|
||||
10: 29,
|
||||
11: 30,
|
||||
12: 31,
|
||||
13: 32,
|
||||
14: 28,
|
||||
15: 28,
|
||||
16: 28,
|
||||
17: 28,
|
||||
18: 28,
|
||||
19: 28,
|
||||
20: 28,
|
||||
21: 2, //左方向灯,
|
||||
22: 3,
|
||||
23: 7,
|
||||
24: 8,
|
||||
25: 20,
|
||||
26: ''
|
||||
}
|
||||
|
||||
export const DwMapData={
|
||||
14: '1',
|
||||
15: '2',
|
||||
16: '3',
|
||||
17: '4',
|
||||
18: '5',
|
||||
19: '9',
|
||||
20: '0'
|
||||
}
|
||||
35
entry/src/main/ets/mock/VideoData.ts
Normal file
35
entry/src/main/ets/mock/VideoData.ts
Normal file
@ -0,0 +1,35 @@
|
||||
import { VideoConfig } from '../pages/interfaces'
|
||||
|
||||
// 视频配置默认数据
|
||||
export const VideoConfigData: VideoConfig = {
|
||||
videoNum: '1',
|
||||
spls: '1',
|
||||
wz: '0,0',
|
||||
faceFlag: false,
|
||||
shuiying: true,
|
||||
pztd: '2',
|
||||
ljlx: '',
|
||||
ip: '192.168.7.112',
|
||||
port: '554',
|
||||
userName: 'admin',
|
||||
pwd: '12345qwe',
|
||||
td1: '1',
|
||||
td2: '2',
|
||||
td3: '3',
|
||||
td4: '4',
|
||||
videoRecord1: false,
|
||||
videoRecord2: false,
|
||||
videoRecord3: false,
|
||||
videoRecord4: false,
|
||||
text1: '',
|
||||
text2: '',
|
||||
text3: '',
|
||||
dolt: '',
|
||||
fontSize: '',
|
||||
rlls: '1',
|
||||
spzd4: false,
|
||||
spzd3: false,
|
||||
spzd2: false,
|
||||
spzd1: false,
|
||||
zdyz: '5',
|
||||
}
|
||||
9
entry/src/main/ets/mock/index.ts
Normal file
9
entry/src/main/ets/mock/index.ts
Normal file
@ -0,0 +1,9 @@
|
||||
export * from "./CandidateData"
|
||||
|
||||
export * from "./VideoData"
|
||||
|
||||
export * from "./Judge"
|
||||
|
||||
export * from "./SignDisplay"
|
||||
|
||||
export * from "./CarCheck"
|
||||
25
entry/src/main/ets/pages/compontents/judge/video-play.ets
Normal file
25
entry/src/main/ets/pages/compontents/judge/video-play.ets
Normal file
@ -0,0 +1,25 @@
|
||||
|
||||
@Component
|
||||
export default struct EndPopup {
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
|
||||
private title:string = ''
|
||||
private cancelFn:(event?: ClickEvent) => void
|
||||
private confirmFn:(event?: ClickEvent) => void
|
||||
|
||||
build(){
|
||||
Column(){
|
||||
Column(){
|
||||
Text(this.title).fontSize(38).margin({bottom:20})
|
||||
Row(){}.height(50)
|
||||
Row(){
|
||||
Text('取消').backgroundImage($rawfile('judge/end-btn.png'),ImageRepeat.NoRepeat).backgroundImageSize({width:'100%',height:'100%'}).width(250).height(100).fontSize(30).fontColor('#FFF').textAlign(TextAlign.Center).onClick(this.cancelFn)
|
||||
Text('确定').backgroundImage($rawfile('judge/end-btn.png'),ImageRepeat.NoRepeat).backgroundImageSize({width:'100%',height:'100%'}).width(250).height(100).fontSize(30).fontColor('#FFF').textAlign(TextAlign.Center).margin({left:45}).onClick(this.confirmFn)
|
||||
}
|
||||
}.width('80%').height('70%').backgroundColor('#E6E3DF').borderRadius(38).position({y:'12%',x:'10%'}).justifyContent(FlexAlign.Center)
|
||||
|
||||
}.width('100%').height('100%').position({y:0}).backgroundColor('rgba(0,0,0,0.7)')
|
||||
}
|
||||
}
|
||||
155
entry/src/main/ets/pages/judgeSDK/dataTest/GpsPort.java
Normal file
155
entry/src/main/ets/pages/judgeSDK/dataTest/GpsPort.java
Normal file
@ -0,0 +1,155 @@
|
||||
package com.duolun.vehterminal.dl_frontend.port;
|
||||
|
||||
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import com.duolun.vehterminal.dl_base.config.ExamParam;
|
||||
import com.duolun.vehterminal.dl_base.log.LogHelper;
|
||||
import com.duolun.vehterminal.dl_library.SensorCache;
|
||||
import com.duolun.vehterminal.dl_library.VehicleStatus;
|
||||
import com.duolun.vehterminal.dl_library.bean.GPSInfo;
|
||||
import java.math.BigDecimal;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
public class GpsPort extends Port{
|
||||
|
||||
private final String TAG = "GpsPort";
|
||||
|
||||
private StringBuffer gpsData = new StringBuffer();
|
||||
|
||||
private long start = System.currentTimeMillis();
|
||||
|
||||
public void start() {
|
||||
super.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handleData() {
|
||||
try {
|
||||
//client.send("hello!".getBytes());
|
||||
byte[] msg = client.receive();
|
||||
if(msg == null) return;
|
||||
String revMsg = new String(msg, "US-ASCII").trim();
|
||||
String obdData = SensorCache.getInstance().getObdData();
|
||||
SensorCache.getInstance().setPlcData(obdData + revMsg);
|
||||
|
||||
if(TextUtils.isEmpty(revMsg)) return;
|
||||
long timeLen = System.currentTimeMillis() - start;
|
||||
// Log.e(TAG,"----------------revMsg--->"+revMsg);
|
||||
if(timeLen>100){
|
||||
if(!TextUtils.isEmpty(gpsData.toString())){
|
||||
GPSInfo info = getGPSInfo(gpsData.toString());
|
||||
if (info != null) {
|
||||
if (info.getMode() == 4) {
|
||||
VehicleStatus.status[VehicleStatus.GPS] = VehicleStatus.NORMAL;
|
||||
} else {
|
||||
VehicleStatus.status[VehicleStatus.GPS] = VehicleStatus.EXCEPTION;
|
||||
}
|
||||
SensorCache.getInstance().putGpsInfo(info);
|
||||
}
|
||||
}
|
||||
gpsData = new StringBuffer();
|
||||
gpsData.append(revMsg);
|
||||
}else{
|
||||
gpsData.append(revMsg);
|
||||
}
|
||||
start = System.currentTimeMillis();
|
||||
} catch (Exception e) {
|
||||
LogHelper.e(TAG,"",e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private GPSInfo getGPSInfo(String data) {
|
||||
LogHelper.i(TAG, "getGPSInfo--->"+data);
|
||||
GPSInfo info = new GPSInfo();
|
||||
info.setGpsFrontNum(1);
|
||||
try {
|
||||
String[] lines = data.split("\r\n");
|
||||
for(String line:lines){
|
||||
if(line.startsWith("$KSXT")){
|
||||
getGPS(info,line);
|
||||
}else if(line.startsWith("$GPGST")){
|
||||
String[] _data = line.split(",");
|
||||
info.setLatErrorValue(Float.parseFloat(TextUtils.isEmpty(_data[6]) ? "0" : _data[6]));//维度精度因子
|
||||
info.setLongErrorValue(Float.parseFloat(TextUtils.isEmpty(_data[7]) ? "0" : _data[7]));//经度精度因子
|
||||
info.setHeightErrorValue(Float.parseFloat(_data[8].split("\\*")[0]));
|
||||
}else if(line.startsWith("#HEADINGA")){
|
||||
String[] strs = line.split(",");
|
||||
BigDecimal b = new BigDecimal(Float.parseFloat(strs[12]));
|
||||
float azimuthAngle = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
|
||||
azimuthAngle += 180;
|
||||
if (azimuthAngle > 360) {
|
||||
azimuthAngle = azimuthAngle - 360;
|
||||
}
|
||||
info.setAzimuthAngle(azimuthAngle);
|
||||
BigDecimal d = new BigDecimal(Float.parseFloat(strs[13]));
|
||||
info.setPitchAngle(d.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue());
|
||||
info.setAzimuthAngleErrorValue(Float.parseFloat(strs[15]));
|
||||
info.setPitchAngleErrorValue(Float.parseFloat(strs[16]));
|
||||
}else if(line.startsWith("$GPGGA")){
|
||||
String[] gps = line.split(",");
|
||||
int status = Integer.parseInt(TextUtils.isEmpty(gps[6]) ? "0" : gps[6]);//状态
|
||||
if (status > 0) info.setStatus(1);
|
||||
info.setMode(status);
|
||||
info.setLocationStatus(status + "");
|
||||
}
|
||||
}
|
||||
info.setGpsData(data);
|
||||
SensorCache.getInstance().putGpsInfo(info);
|
||||
} catch (Exception e) {
|
||||
LogHelper.e(TAG, "getGPSInfo->", e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
private void getGPS(GPSInfo gpsInfo,String signal) {
|
||||
try {
|
||||
String[] gps = signal.split(",");
|
||||
if (gps.length < 14) {
|
||||
gpsInfo.setRevTime(System.currentTimeMillis());
|
||||
SensorCache.getInstance().putGpsInfo(gpsInfo);
|
||||
LogHelper.i(TAG,signal);
|
||||
return;
|
||||
}
|
||||
gpsInfo.setMsg("#GPS," + signal);
|
||||
gpsInfo.setRevTime(System.currentTimeMillis());
|
||||
gpsInfo.setAzimuthStatus(gps[11]);
|
||||
gpsInfo.setAzimuthNum(gps[12]);
|
||||
gpsInfo.setGpsFrontNum(Integer.parseInt(TextUtils.isEmpty(gps[13]) ? "0" : gps[13]));//收星数
|
||||
gpsInfo.setHeight(Float.parseFloat(TextUtils.isEmpty(gps[4]) ? "0" : gps[4]));//海拔高度
|
||||
gpsInfo.setAge(Float.parseFloat(TextUtils.isEmpty(gps[20]) ? "0" : gps[20]));//龄期
|
||||
String pitchAngle = gps[6];//俯仰角
|
||||
gpsInfo.setPitchAngle(Float.parseFloat(TextUtils.isEmpty(pitchAngle) ? "0" : pitchAngle));
|
||||
gpsInfo.setGpsTime(gps[1]);
|
||||
gpsInfo.setLatitude(Double.parseDouble(TextUtils.isEmpty(gps[3]) ? "0" : gps[3]));//维度
|
||||
gpsInfo.setLongitude(Double.parseDouble(TextUtils.isEmpty(gps[2]) ? "0" : gps[2]));//精度
|
||||
float speed = 0;
|
||||
if (gps.length>14 && !TextUtils.isEmpty(gps[8])) {
|
||||
BigDecimal r = new BigDecimal(Float.parseFloat(gps[8]) * 1.852);
|
||||
speed = r.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
|
||||
gpsInfo.setVelocity(speed);
|
||||
}
|
||||
if ("0".equals(ExamParam.SPEED_TYPE) || TextUtils.isEmpty(ExamParam.SPEED_TYPE))
|
||||
ExamParam.SPEED = speed + "";
|
||||
} catch (Exception e) {
|
||||
LogHelper.i5(TAG, "异常数据:" + signal);
|
||||
LogHelper.i5(TAG, "异常信息:"+e.getMessage());
|
||||
gpsInfo.setRevTime(System.currentTimeMillis());
|
||||
SensorCache.getInstance().putGpsInfo(gpsInfo);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 坐标预处理,将度分转为度
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private double translateLatLon(double a) {
|
||||
int temp1 = (int) Math.floor(a / 100);
|
||||
double temp2 = temp1 + (a - temp1 * 100) / 60;
|
||||
return temp2;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
Find GPGST,Find GPRMC,Find GPGGA,Find PTNL,Find BESTPOSA,Find HEADINGA,Find KSXT,Find BYC,
|
||||
$GPGST,045215.20,0.03,0.01,0.03,0.0000,0.01,0.01,0.03*60
|
||||
$GPRMC,045215.20,A,3206.3460589,N,11842.1399062,E,0.022,0.0,081024,0.0,E,D*30
|
||||
$GPGGA,045215.20,3206.3460589,N,11842.1399062,E,4,42,0.5,1.935,M,0.592,M,3.200,0000*7A
|
||||
$PTNL,AVR,045215.20,+66.5809,Yaw,-1.1687,Tilt,,,1.288,3,1.2,38*01
|
||||
$KSXT,20241008045215.20,118.70233177,32.10576765,2.5270,66.58,-1.17,70.35,0.040,,3,3,38,42,-45.675,-21.352,-2.137,0.038,0.013,0.015,3.2,40,*8BA53C1A
|
||||
#BESTPOSA,COM1,0,87.5,FINESTEERING,2335,190353.200,00000000,0000,782;SOL_COMPUTED,NARROW_INT,32.10576764819,118.70233176936,1.9353,0.5917,WGS84,0.0132,0.0118,0.0253,"0",3.200,0.034,44,42,42,42,00,00,30,37*77b805ad
|
||||
#HEADINGA,COM1,0,87.5,FINESTEERING,2335,190353.200,00000000,0000,782;SOL_COMPUTED,NARROW_INT,1.287597299,66.580940247,-1.168731809,0.0,0.808748186,0.807274878,"0",44,38,44,26,0,00,30,37*3e44d092
|
||||
#BYCHECKA,COM1,0,87.5,FINESTEERING,2335,190353.200,00000000,0000,782;1268,2335,190353.200,1,1,1,0,1,1,1,1,1,1,1,1*c786fc2a
|
||||
58
entry/src/main/ets/pages/judgeSDK/utils/judgeTask_BAK.ts
Normal file
58
entry/src/main/ets/pages/judgeSDK/utils/judgeTask_BAK.ts
Normal file
@ -0,0 +1,58 @@
|
||||
import Prompt from '@system.prompt'
|
||||
|
||||
const TAG = 'SURENJUN_JUDGE'
|
||||
interface QUEUE{
|
||||
fn:Function,
|
||||
config?:{
|
||||
isDelay:boolean
|
||||
delayTime:number
|
||||
}
|
||||
}
|
||||
|
||||
export default class JudgeTask{
|
||||
private queue = []
|
||||
private status:string
|
||||
constructor() {
|
||||
this.queue = []
|
||||
this.status = 'end'
|
||||
}
|
||||
|
||||
executeQueue = async ()=>{
|
||||
const {queue,executeQueue} = this
|
||||
if(queue.length){
|
||||
for (const currentTask of queue) {
|
||||
const {fn,delayConfig:{
|
||||
isDelay = false,
|
||||
delayTime = 1000
|
||||
}} = currentTask;
|
||||
const {status} = this
|
||||
try {
|
||||
isDelay
|
||||
?setTimeout(async ()=>{await fn()})
|
||||
:await fn();
|
||||
}catch (e){
|
||||
// console.info(TAG,'过程数据接口解析错误')
|
||||
Prompt.showToast({
|
||||
message: '过程数据接口解析错误',
|
||||
duration: 3000
|
||||
});
|
||||
}
|
||||
this.queue.shift()
|
||||
await executeQueue()
|
||||
}
|
||||
}else{
|
||||
this.status = 'end'
|
||||
}
|
||||
}
|
||||
|
||||
addTask = async (fn,delayConfig?:{
|
||||
isDelay:Boolean,
|
||||
delayTime:Number
|
||||
}) =>{
|
||||
this.queue.push({fn,delayConfig});
|
||||
if(this.status == 'end' && this.queue.length === 1){
|
||||
await this.executeQueue();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
2
entry/src/main/ets/pages/judgeSDK/utils/rearEndUni.ts
Normal file
2
entry/src/main/ets/pages/judgeSDK/utils/rearEndUni.ts
Normal file
@ -0,0 +1,2 @@
|
||||
|
||||
//
|
||||
Loading…
x
Reference in New Issue
Block a user