小红球udp
This commit is contained in:
parent
6eb48607ba
commit
d0acc157c0
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 1,
|
||||||
"ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
|
"ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
|
||||||
"specifiers": {},
|
"specifiers": {},
|
||||||
"packages": {}
|
"packages": {}
|
||||||
|
|||||||
@ -266,7 +266,10 @@ export const DefaultJudgeConfigData: DefaultJudgeConfigObj = {
|
|||||||
//监管模式有扣分续考(0-否++1-是+把上次未考完的扣分带下来重新考试)
|
//监管模式有扣分续考(0-否++1-是+把上次未考完的扣分带下来重新考试)
|
||||||
param_432: '1',
|
param_432: '1',
|
||||||
// Todo
|
// Todo
|
||||||
param_634: '1'
|
// param_634: '1',
|
||||||
|
// Todo
|
||||||
|
// param_810: '1'
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//所有的科二 科目三项目
|
//所有的科二 科目三项目
|
||||||
|
|||||||
@ -273,8 +273,10 @@ export interface DefaultJudgeConfigObj {
|
|||||||
param_369: string
|
param_369: string
|
||||||
param_375: string
|
param_375: string
|
||||||
param_387: string
|
param_387: string
|
||||||
|
param_392?: string
|
||||||
param_432: string
|
param_432: string
|
||||||
param_634: string
|
param_634?: string
|
||||||
|
param_810?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SyssetConfig {
|
export interface SyssetConfig {
|
||||||
|
|||||||
@ -39,7 +39,7 @@ export interface JudgeData {
|
|||||||
judgeExamEnd?: boolean
|
judgeExamEnd?: boolean
|
||||||
performInfo?: JudgePerformInfo,
|
performInfo?: JudgePerformInfo,
|
||||||
business?: JudgeUDPData
|
business?: JudgeUDPData
|
||||||
remoteType?: number
|
remoteType?: 'kf'
|
||||||
remoteData?: number[]
|
remoteData?: number[]
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -66,7 +66,7 @@ export interface WorkerMessage {
|
|||||||
|
|
||||||
export interface WorkerBackMessage {
|
export interface WorkerBackMessage {
|
||||||
type: WorkerBackMessageType;
|
type: WorkerBackMessageType;
|
||||||
data: string | CenterCallBackMsgType
|
data: string | CenterCallBackMsgType | number[]
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum WorkerBackMessageType {
|
export enum WorkerBackMessageType {
|
||||||
@ -77,7 +77,12 @@ export enum WorkerBackMessageType {
|
|||||||
// 远程开始考试
|
// 远程开始考试
|
||||||
RemoteStartExam = 'remoteStartExam',
|
RemoteStartExam = 'remoteStartExam',
|
||||||
// 远程结束考试
|
// 远程结束考试
|
||||||
RemoteEndExam = 'remoteEndExam'
|
RemoteEndExam = 'remoteEndExam',
|
||||||
|
// 远程扣分
|
||||||
|
RemoteKf = 'RemoteKf',
|
||||||
|
// 远程扣分确认
|
||||||
|
RemoteKfConfirm = 'RemoteKfConfirm',
|
||||||
|
StopExam = 'stopExam'
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface LogWorkerMessage {
|
export interface LogWorkerMessage {
|
||||||
|
|||||||
@ -38,7 +38,8 @@ import {
|
|||||||
SYSTEM_PARAM,
|
SYSTEM_PARAM,
|
||||||
User,
|
User,
|
||||||
WorkerBackMessage,
|
WorkerBackMessage,
|
||||||
WorkerBackMessageType
|
WorkerBackMessageType,
|
||||||
|
WorkerMessageDataType
|
||||||
} from '../model';
|
} from '../model';
|
||||||
import { GetSyncData } from '../utils/table/Operation';
|
import { GetSyncData } from '../utils/table/Operation';
|
||||||
import dayTs from '../utils/Date';
|
import dayTs from '../utils/Date';
|
||||||
@ -114,6 +115,7 @@ export struct JudgePage {
|
|||||||
@State artSubject3Projects: string[] = ['直线', '会车', '变道', '超车', '掉头', '停车']
|
@State artSubject3Projects: string[] = ['直线', '会车', '变道', '超车', '掉头', '停车']
|
||||||
@State artSubject3ProjectsCodesArr: string[] = ['3', '9', '4', '10', '12', '11']
|
@State artSubject3ProjectsCodesArr: string[] = ['3', '9', '4', '10', '12', '11']
|
||||||
@State manualMarkRules: MarkRule[] = []
|
@State manualMarkRules: MarkRule[] = []
|
||||||
|
@State markRules: MarkRule[] = []
|
||||||
//科目三评判初始化数据
|
//科目三评判初始化数据
|
||||||
@State systemparmArr: SYSTEM_PARAM[] = []
|
@State systemparmArr: SYSTEM_PARAM[] = []
|
||||||
@State mapPointItemArr: MAPITEMPOINTITEM[] = []
|
@State mapPointItemArr: MAPITEMPOINTITEM[] = []
|
||||||
@ -205,7 +207,7 @@ export struct JudgePage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async aboutToAppear() {
|
async aboutToAppear() {
|
||||||
DifferentialAndSignal.onMsg(this.onEndExam)
|
DifferentialAndSignal.onMsg(this.onCenterMsg)
|
||||||
this.carInfo = AppStorage.get<CarInfoType>('carInfo')!
|
this.carInfo = AppStorage.get<CarInfoType>('carInfo')!
|
||||||
this.singlePlay = AppStorage.get<boolean>('singlePlay')!
|
this.singlePlay = AppStorage.get<boolean>('singlePlay')!
|
||||||
this.startFullTime = dayTs().format("YYYYMMDDHHmmss");
|
this.startFullTime = dayTs().format("YYYYMMDDHHmmss");
|
||||||
@ -225,7 +227,7 @@ export struct JudgePage {
|
|||||||
this.signalTrajectoryDialogController.close()
|
this.signalTrajectoryDialogController.close()
|
||||||
// this.judgeBusiness.close()
|
// this.judgeBusiness.close()
|
||||||
clearInterval(this.mileageTimer)
|
clearInterval(this.mileageTimer)
|
||||||
DifferentialAndSignal.offMsg(this.onEndExam)
|
DifferentialAndSignal.offMsg(this.onCenterMsg)
|
||||||
}
|
}
|
||||||
|
|
||||||
//初始化相关数据库表
|
//初始化相关数据库表
|
||||||
@ -311,6 +313,7 @@ export struct JudgePage {
|
|||||||
if (Number(tempObj.markserial) > 100 && Number(tempObj.markserial) < 200) {
|
if (Number(tempObj.markserial) > 100 && Number(tempObj.markserial) < 200) {
|
||||||
this.manualMarkRules.push(tempObj)
|
this.manualMarkRules.push(tempObj)
|
||||||
}
|
}
|
||||||
|
this.markRules.push(tempObj)
|
||||||
tempObj.markserial = mark.markserial
|
tempObj.markserial = mark.markserial
|
||||||
Reflect.set(this.markRuleListObj, `${mark.itemno}_${mark.markserial}`, tempObj)
|
Reflect.set(this.markRuleListObj, `${mark.itemno}_${mark.markserial}`, tempObj)
|
||||||
})
|
})
|
||||||
@ -795,11 +798,33 @@ export struct JudgePage {
|
|||||||
.height('100%').backgroundColor('#000').justifyContent(FlexAlign.Start)
|
.height('100%').backgroundColor('#000').justifyContent(FlexAlign.Start)
|
||||||
}
|
}
|
||||||
|
|
||||||
private onEndExam = (msg: string) => {
|
private onCenterMsg = (msg: string) => {
|
||||||
let result: WorkerBackMessage = JSON.parse(msg)
|
let result: WorkerBackMessage = JSON.parse(msg)
|
||||||
if (result.type === WorkerBackMessageType.RemoteEndExam) {
|
if (result.type === WorkerBackMessageType.RemoteEndExam) {
|
||||||
dConsole.info("lixiao", msg)
|
dConsole.info("lixiao", msg)
|
||||||
this.judgeBusiness.JudgeEnd(true)
|
this.judgeBusiness.JudgeEnd(true)
|
||||||
|
} else if (result.type === WorkerBackMessageType.RemoteKf) {
|
||||||
|
let data = result.data as number[]
|
||||||
|
const config810 = this.judgeConfigObj.param_810
|
||||||
|
dConsole.info("lixiao", '评判收到远程扣分项目内容:' + `kfxh=>${data[1]}; directives=>${data[0]}`)
|
||||||
|
let currentKf = this.markRules.filter(item => {
|
||||||
|
return item.kfxh === data[1].toString() && (config810 === "1" || Number(item.markserial) > 99)
|
||||||
|
})[0]
|
||||||
|
if (!currentKf) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
dConsole.info("lixiao", '远程扣分项目:', currentKf)
|
||||||
|
this.judgeBusiness.setJudgeMark(currentKf.itemno!, currentKf.markserial!, 2)
|
||||||
|
DifferentialAndSignal.sendMsg({
|
||||||
|
type: WorkerMessageDataType.JudgeSend,
|
||||||
|
data: {
|
||||||
|
remoteType: 'kf',
|
||||||
|
remoteData: [data[0]]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else if (result.type === WorkerBackMessageType.StopExam) {
|
||||||
|
const config392 = (this.judgeConfigObj.param_392 || '20,81').split(',');
|
||||||
|
this.judgeBusiness.setJudgeMark(Number(config392[0]), config392[1], 2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import {
|
|||||||
JudgeKSJS,
|
JudgeKSJS,
|
||||||
JudgePerformInfo,
|
JudgePerformInfo,
|
||||||
LANE,
|
LANE,
|
||||||
|
MarkRule,
|
||||||
PLCType,
|
PLCType,
|
||||||
ProcessDataEnumType,
|
ProcessDataEnumType,
|
||||||
RecordHandleType,
|
RecordHandleType,
|
||||||
@ -18,7 +19,7 @@ import { LargeJudge } from './LargeJudgeBusiness'
|
|||||||
import { SmallJudge } from './SmallJudgeBusiness'
|
import { SmallJudge } from './SmallJudgeBusiness'
|
||||||
import { dConsole } from '../../utils/LogWorker'
|
import { dConsole } from '../../utils/LogWorker'
|
||||||
import { JudgeTag } from '../../config'
|
import { JudgeTag } from '../../config'
|
||||||
import { examJudgeRealExam } from './JudgeSDKUtils'
|
import { examJudgeArtificialMark, examJudgeRealExam } from './JudgeSDKUtils'
|
||||||
import { DifferentialAndSignal } from '../../utils/business/DifferentialAndSignalWorker'
|
import { DifferentialAndSignal } from '../../utils/business/DifferentialAndSignalWorker'
|
||||||
import { PlcStrToJson, PlcStrToWXJson } from './utils'
|
import { PlcStrToJson, PlcStrToWXJson } from './utils'
|
||||||
import { BaseJudgeImpl, SetJudgeItem } from './BaseJudgeBussines'
|
import { BaseJudgeImpl, SetJudgeItem } from './BaseJudgeBussines'
|
||||||
@ -119,6 +120,12 @@ export default class JudgeBusiness {
|
|||||||
this.JudgeEnd()
|
this.JudgeEnd()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 人工扣分
|
||||||
|
public async setJudgeMark(itemno: number,markserial: string, type: number) {
|
||||||
|
await examJudgeArtificialMark(itemno, markserial, type)
|
||||||
|
// TODO 写扣分轨迹日志
|
||||||
|
}
|
||||||
|
|
||||||
// 考试过程 callback优化
|
// 考试过程 callback优化
|
||||||
public async Judging(strData: string, callBack: Function) {
|
public async Judging(strData: string, callBack: Function) {
|
||||||
this.judgeBusiness.Judging(strData, callBack, this.judgeUI, this)
|
this.judgeBusiness.Judging(strData, callBack, this.judgeUI, this)
|
||||||
|
|||||||
@ -74,9 +74,6 @@ class JudgeUdpBusiness {
|
|||||||
}
|
}
|
||||||
let fyj = Number(plcData.gps.fyj.toFixed(2))
|
let fyj = Number(plcData.gps.fyj.toFixed(2))
|
||||||
fyj = Math.floor(fyj > 0 ? (fyj * 100) : (fyj * 100 + 65536))
|
fyj = Math.floor(fyj > 0 ? (fyj * 100) : (fyj * 100 + 65536))
|
||||||
let examType = this.carInfo.examSubject === "2" ? "2" : "3"
|
|
||||||
dConsole.info("小红球过程数据2", this.isExamEnd, this.business.kfArr)
|
|
||||||
|
|
||||||
|
|
||||||
const arr: number[][] = [
|
const arr: number[][] = [
|
||||||
//考生号
|
//考生号
|
||||||
@ -84,7 +81,7 @@ class JudgeUdpBusiness {
|
|||||||
//考试员号
|
//考试员号
|
||||||
ascksyhArr.map(ksyh => NumberToByteArray(ksyh, 8)[0]),
|
ascksyhArr.map(ksyh => NumberToByteArray(ksyh, 8)[0]),
|
||||||
//科目类型(0:未考试 1:科目二 2:科目三) + 考试开始时间
|
//科目类型(0:未考试 1:科目二 2:科目三) + 考试开始时间
|
||||||
NumberToByteArray(`${examType}${this.business.startTime}`, 4 * 8),
|
NumberToByteArray(`${this.carInfo.examSubject}${this.business.startTime}`, 4 * 8),
|
||||||
// 消息序号
|
// 消息序号
|
||||||
NumberToByteArray(this.isExamEnd ? 0 : this.serialIndex, 2 * 8),
|
NumberToByteArray(this.isExamEnd ? 0 : this.serialIndex, 2 * 8),
|
||||||
translateSignals,
|
translateSignals,
|
||||||
@ -175,7 +172,6 @@ class JudgeUdpBusiness {
|
|||||||
}
|
}
|
||||||
let fyj = Number(plcData.gps.fyj.toFixed(2))
|
let fyj = Number(plcData.gps.fyj.toFixed(2))
|
||||||
fyj = Math.floor(fyj > 0 ? (fyj * 100) : (fyj * 100 + 65536))
|
fyj = Math.floor(fyj > 0 ? (fyj * 100) : (fyj * 100 + 65536))
|
||||||
let examType = this.carInfo.examSubject === "2" ? "2" : "3"
|
|
||||||
|
|
||||||
const arr: number[][] = [
|
const arr: number[][] = [
|
||||||
//考生号
|
//考生号
|
||||||
@ -183,7 +179,7 @@ class JudgeUdpBusiness {
|
|||||||
//考试员号
|
//考试员号
|
||||||
ascksyhArr.map(ksyh => NumberToByteArray(ksyh, 8)[0]),
|
ascksyhArr.map(ksyh => NumberToByteArray(ksyh, 8)[0]),
|
||||||
//科目类型(0:未考试 1:科目二 2:科目三) + 考试开始时间
|
//科目类型(0:未考试 1:科目二 2:科目三) + 考试开始时间
|
||||||
NumberToByteArray(`${examType}${'00:00:000'}`, 4 * 8),
|
NumberToByteArray(`${0}${'00:00:000'}`, 4 * 8),
|
||||||
// 消息序号
|
// 消息序号
|
||||||
NumberToByteArray(0, 2 * 8),
|
NumberToByteArray(0, 2 * 8),
|
||||||
translateSignals,
|
translateSignals,
|
||||||
@ -246,6 +242,15 @@ class JudgeUdpBusiness {
|
|||||||
this.udp.sendMsgExt(data, udpLsh)
|
this.udp.sendMsgExt(data, udpLsh)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sendMsgExt(id: number, body: number[], lsh: number) {
|
||||||
|
this.udp.sendMsgExt({
|
||||||
|
id: id,
|
||||||
|
list: body,
|
||||||
|
carNo: this.carInfo.carNo!,
|
||||||
|
placeId: this.carInfo!.examinationRoomId!,
|
||||||
|
}, lsh)
|
||||||
|
}
|
||||||
|
|
||||||
//申请远程扣分查询
|
//申请远程扣分查询
|
||||||
askKf(directives: number, lsh: number) {
|
askKf(directives: number, lsh: number) {
|
||||||
// TODO
|
// TODO
|
||||||
@ -255,7 +260,12 @@ class JudgeUdpBusiness {
|
|||||||
|
|
||||||
askStopExam(directives: number, lsh: number) {
|
askStopExam(directives: number, lsh: number) {
|
||||||
CenterUDPBusinessInstance.sendMsgExt(38, [directives], lsh)
|
CenterUDPBusinessInstance.sendMsgExt(38, [directives], lsh)
|
||||||
console.info('surenjun', `考车查询扣分项目内容,请求指令为:${directives}`)
|
dConsole.info('surenjun', `考车查询扣分项目内容,请求指令为:${directives}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
confirmStopExam(directives: number, lsh: number) {
|
||||||
|
CenterUDPBusinessInstance.sendMsgExt(40, [directives, 1], lsh)
|
||||||
|
dConsole.info('surenjun', '确定远程终止考试 directives=》' + directives)
|
||||||
}
|
}
|
||||||
|
|
||||||
//确定远程扣分
|
//确定远程扣分
|
||||||
@ -286,6 +296,10 @@ class JudgeUdpBusiness {
|
|||||||
this.lsh = lsh || this.lsh
|
this.lsh = lsh || this.lsh
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getLsh() {
|
||||||
|
return this.lsh
|
||||||
|
}
|
||||||
|
|
||||||
private setWholeMsg(params: UDPParamType) {
|
private setWholeMsg(params: UDPParamType) {
|
||||||
let head: Array<number> = this.setMsgHead(params);
|
let head: Array<number> = this.setMsgHead(params);
|
||||||
let headJudge = this.setMessageExclusive(head);
|
let headJudge = this.setMessageExclusive(head);
|
||||||
|
|||||||
@ -21,13 +21,15 @@ import { ObtainUdpBusinessInstance } from '../utils/business/ObtainUdpBusiness';
|
|||||||
import { SerialPortService } from '../utils/business/SerialPortService';
|
import { SerialPortService } from '../utils/business/SerialPortService';
|
||||||
import { dConsole } from '../utils/LogWorker';
|
import { dConsole } from '../utils/LogWorker';
|
||||||
import dayTs from '../utils/Date';
|
import dayTs from '../utils/Date';
|
||||||
|
import { NumberToByteArray } from '../utils/Common';
|
||||||
|
|
||||||
const workerPort: ThreadWorkerGlobalScope = worker.workerPort;
|
const workerPort: ThreadWorkerGlobalScope = worker.workerPort;
|
||||||
|
|
||||||
let initDate = dayTs(new Date()).format().split(" ")[0]
|
let initDate = dayTs(new Date()).format().split(" ")[0]
|
||||||
let udpLsh = 1
|
let udpLsh = 1
|
||||||
let udpIndex = 0
|
let udpIndex = 0
|
||||||
|
let kfDirective: number | undefined = undefined
|
||||||
|
let signNum: number = 0
|
||||||
|
|
||||||
function checkLsh() {
|
function checkLsh() {
|
||||||
let now = dayTs(new Date()).format().split(" ")[0]
|
let now = dayTs(new Date()).format().split(" ")[0]
|
||||||
@ -62,6 +64,11 @@ workerPort.onmessage = async (e: MessageEvents) => {
|
|||||||
JudgeUdpBusinessInstance.performInfo = data.performInfo ?? null
|
JudgeUdpBusinessInstance.performInfo = data.performInfo ?? null
|
||||||
JudgeUdpBusinessInstance.isUDPEnd = data.judgeUdpEnd ?? false
|
JudgeUdpBusinessInstance.isUDPEnd = data.judgeUdpEnd ?? false
|
||||||
JudgeUdpBusinessInstance.isExamEnd = data.judgeExamEnd ?? false
|
JudgeUdpBusinessInstance.isExamEnd = data.judgeExamEnd ?? false
|
||||||
|
if (data.remoteType) {
|
||||||
|
if (data.remoteType === "kf") {
|
||||||
|
JudgeUdpBusinessInstance.confirmKf(data.remoteData![0], 1, udpLsh)
|
||||||
|
}
|
||||||
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
case WorkerMessageDataType.CenterSend: {
|
case WorkerMessageDataType.CenterSend: {
|
||||||
@ -150,7 +157,9 @@ function getDataFn(config: EnvironmentConfigurationType) {
|
|||||||
dConsole.info("lixiao", data)
|
dConsole.info("lixiao", data)
|
||||||
switch (Number(data.id)) {
|
switch (Number(data.id)) {
|
||||||
case 32:
|
case 32:
|
||||||
|
signNum = data.body![1]
|
||||||
if (Number(data.body![0]) === 5) {
|
if (Number(data.body![0]) === 5) {
|
||||||
|
kfDirective = data.body![1]
|
||||||
JudgeUdpBusinessInstance.askKf(data.body![1], udpLsh)
|
JudgeUdpBusinessInstance.askKf(data.body![1], udpLsh)
|
||||||
} else if (Number(data.body![0]) === 6) {
|
} else if (Number(data.body![0]) === 6) {
|
||||||
JudgeUdpBusinessInstance.askStopExam(data.body![1], udpLsh)
|
JudgeUdpBusinessInstance.askStopExam(data.body![1], udpLsh)
|
||||||
@ -172,9 +181,34 @@ function getDataFn(config: EnvironmentConfigurationType) {
|
|||||||
}
|
}
|
||||||
break
|
break
|
||||||
case 36:
|
case 36:
|
||||||
|
workerPort.postMessage(
|
||||||
|
JSON.stringify({
|
||||||
|
type: WorkerBackMessageType.RemoteKf,
|
||||||
|
data: [kfDirective, data.body![0]]
|
||||||
|
} as WorkerBackMessage)
|
||||||
|
)
|
||||||
break
|
break
|
||||||
case 39:
|
case 39: {
|
||||||
|
let lsh = data.body.map(byte => String.fromCharCode(byte)).join("")
|
||||||
|
if (lsh === JudgeUdpBusinessInstance.getLsh()) {
|
||||||
|
workerPort.postMessage(
|
||||||
|
JSON.stringify({
|
||||||
|
type: WorkerBackMessageType.StopExam,
|
||||||
|
data: data
|
||||||
|
} as WorkerBackMessage))
|
||||||
|
JudgeUdpBusinessInstance.confirmStopExam(signNum, udpLsh)
|
||||||
|
}
|
||||||
break
|
break
|
||||||
|
}
|
||||||
|
case 46: {
|
||||||
|
let lsh = JudgeUdpBusinessInstance.getLsh()
|
||||||
|
let tempList: number[] = []
|
||||||
|
for (let i = 0; i < lsh.length; i++) {
|
||||||
|
tempList.push(NumberToByteArray(lsh.charCodeAt(i), 8)[0])
|
||||||
|
}
|
||||||
|
JudgeUdpBusinessInstance.sendMsgExt(47, tempList, udpLsh)
|
||||||
|
break
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,20 +1,18 @@
|
|||||||
{
|
{
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 1,
|
||||||
"ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
|
"ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
|
||||||
"specifiers": {
|
"specifiers": {
|
||||||
"@ohos/hypium@1.0.19": "@ohos/hypium@1.0.19",
|
"@ohos/crypto-js@2.0.3": "@ohos/crypto-js@2.0.3",
|
||||||
"@ohos/crypto-js@2.0.3": "@ohos/crypto-js@2.0.3"
|
"@ohos/hypium@1.0.19": "@ohos/hypium@1.0.19"
|
||||||
},
|
},
|
||||||
"packages": {
|
"packages": {
|
||||||
"@ohos/hypium@1.0.19": {
|
|
||||||
"resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hypium/-/hypium-1.0.19.har",
|
|
||||||
"integrity": "sha512-cEjDgLFCm3cWZDeRXk7agBUkPqjWxUo6AQeiu0gEkb3J8ESqlduQLSIXeo3cCsm8U/asL7iKjF85ZyOuufAGSQ==",
|
|
||||||
"registryType": "ohpm"
|
|
||||||
},
|
|
||||||
"@ohos/crypto-js@2.0.3": {
|
"@ohos/crypto-js@2.0.3": {
|
||||||
"resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/crypto-js/-/crypto-js-2.0.3.har",
|
"resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/crypto-js/-/crypto-js-2.0.3.har",
|
||||||
"integrity": "sha512-LuHaR1kD5PxnOXnuR1fWvPwGtbed9Q/QGzk6JOh8y5Wdzvi8brPesODZiaWf9scOVRHsbTPOtZw91vWB35p1vQ==",
|
"integrity": "sha512-LuHaR1kD5PxnOXnuR1fWvPwGtbed9Q/QGzk6JOh8y5Wdzvi8brPesODZiaWf9scOVRHsbTPOtZw91vWB35p1vQ=="
|
||||||
"registryType": "ohpm"
|
},
|
||||||
|
"@ohos/hypium@1.0.19": {
|
||||||
|
"resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hypium/-/hypium-1.0.19.har",
|
||||||
|
"integrity": "sha512-cEjDgLFCm3cWZDeRXk7agBUkPqjWxUo6AQeiu0gEkb3J8ESqlduQLSIXeo3cCsm8U/asL7iKjF85ZyOuufAGSQ=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user