fix: 修复jtag未认证的问题
This commit is contained in:
parent
1fa944f3c7
commit
9c7bde206b
|
@ -93,7 +93,7 @@ const props = withDefaults(defineProps<SevenSegmentDisplayProps>(), {
|
||||||
size: 1,
|
size: 1,
|
||||||
color: "red",
|
color: "red",
|
||||||
AFTERGLOW_BUFFER_SIZE: 1, // 默认存储槽大小为100
|
AFTERGLOW_BUFFER_SIZE: 1, // 默认存储槽大小为100
|
||||||
AFTERGLOW_UPDATE_INTERVAL: 1, // 默认更新间隔为2毫秒
|
AFTERGLOW_UPDATE_INTERVAL: 5, // 默认更新间隔为2毫秒
|
||||||
cathodeType: "common", // 默认为共阴极
|
cathodeType: "common", // 默认为共阴极
|
||||||
pins: () => [
|
pins: () => [
|
||||||
{ pinId: "a", constraint: "", x: 10, y: 170 }, // a段
|
{ pinId: "a", constraint: "", x: 10, y: 170 }, // a段
|
||||||
|
@ -156,13 +156,16 @@ let updateIntervalTimer: number | null = null;
|
||||||
function isSegmentActive(
|
function isSegmentActive(
|
||||||
segment: "a" | "b" | "c" | "d" | "e" | "f" | "g" | "dp",
|
segment: "a" | "b" | "c" | "d" | "e" | "f" | "g" | "dp",
|
||||||
): boolean {
|
): boolean {
|
||||||
return segmentStates.value[segment] || afterglowBuffers.value[segment].some(state => state);
|
return (
|
||||||
|
segmentStates.value[segment] ||
|
||||||
|
afterglowBuffers.value[segment].some((state) => state)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新引脚状态的函数
|
// 更新引脚状态的函数
|
||||||
function updateSegmentStates() {
|
function updateSegmentStates() {
|
||||||
// 先获取COM口状态
|
// 先获取COM口状态
|
||||||
const comPin = props.pins.find(p => p.pinId === "COM");
|
const comPin = props.pins.find((p) => p.pinId === "COM");
|
||||||
let comActive = true;
|
let comActive = true;
|
||||||
if (comPin && comPin.constraint) {
|
if (comPin && comPin.constraint) {
|
||||||
const comState = getConstraintState(comPin.constraint);
|
const comState = getConstraintState(comPin.constraint);
|
||||||
|
@ -182,7 +185,8 @@ function updateSegmentStates() {
|
||||||
if (["a", "b", "c", "d", "e", "f", "g", "dp"].includes(pin.pinId)) {
|
if (["a", "b", "c", "d", "e", "f", "g", "dp"].includes(pin.pinId)) {
|
||||||
// 如果constraint为空,则默认为未激活状态
|
// 如果constraint为空,则默认为未激活状态
|
||||||
if (!pin.constraint) {
|
if (!pin.constraint) {
|
||||||
segmentStates.value[pin.pinId as keyof typeof segmentStates.value] = false;
|
segmentStates.value[pin.pinId as keyof typeof segmentStates.value] =
|
||||||
|
false;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -197,7 +201,8 @@ function updateSegmentStates() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新当前状态
|
// 更新当前状态
|
||||||
segmentStates.value[pin.pinId as keyof typeof segmentStates.value] = newState && comActive;
|
segmentStates.value[pin.pinId as keyof typeof segmentStates.value] =
|
||||||
|
newState && comActive;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -212,7 +217,9 @@ function updateAfterglowBuffers() {
|
||||||
afterglowBuffers.value[segmentId].unshift(currentState);
|
afterglowBuffers.value[segmentId].unshift(currentState);
|
||||||
|
|
||||||
// 如果存储槽超过了最大容量,移除最旧的状态
|
// 如果存储槽超过了最大容量,移除最旧的状态
|
||||||
if (afterglowBuffers.value[segmentId].length > props.AFTERGLOW_BUFFER_SIZE) {
|
if (
|
||||||
|
afterglowBuffers.value[segmentId].length > props.AFTERGLOW_BUFFER_SIZE
|
||||||
|
) {
|
||||||
afterglowBuffers.value[segmentId].pop();
|
afterglowBuffers.value[segmentId].pop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -247,7 +254,9 @@ function onConstraintChange(constraint: string, level: string) {
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// 初始化余晖存储槽
|
// 初始化余晖存储槽
|
||||||
for (const segmentId of ["a", "b", "c", "d", "e", "f", "g", "dp"]) {
|
for (const segmentId of ["a", "b", "c", "d", "e", "f", "g", "dp"]) {
|
||||||
afterglowBuffers.value[segmentId] = Array(props.AFTERGLOW_BUFFER_SIZE).fill(false);
|
afterglowBuffers.value[segmentId] = Array(props.AFTERGLOW_BUFFER_SIZE).fill(
|
||||||
|
false,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
updateSegmentStates();
|
updateSegmentStates();
|
||||||
|
|
|
@ -27,7 +27,6 @@ export const useEquipments = defineStore("equipments", () => {
|
||||||
1000,
|
1000,
|
||||||
new Error("JtagClient Mutex Timeout!"),
|
new Error("JtagClient Mutex Timeout!"),
|
||||||
);
|
);
|
||||||
const jtagClient = AuthManager.createAuthenticatedJtagClient();
|
|
||||||
|
|
||||||
// Matrix Key
|
// Matrix Key
|
||||||
const matrixKeyStates = reactive(new Array<boolean>(16).fill(false));
|
const matrixKeyStates = reactive(new Array<boolean>(16).fill(false));
|
||||||
|
@ -36,7 +35,6 @@ export const useEquipments = defineStore("equipments", () => {
|
||||||
1000,
|
1000,
|
||||||
new Error("Matrixkeyclient Mutex Timeout!"),
|
new Error("Matrixkeyclient Mutex Timeout!"),
|
||||||
);
|
);
|
||||||
const matrixKeypadClient = AuthManager.createAuthenticatedMatrixKeyClient();
|
|
||||||
|
|
||||||
// Power
|
// Power
|
||||||
const powerClientMutex = withTimeout(
|
const powerClientMutex = withTimeout(
|
||||||
|
@ -44,7 +42,6 @@ export const useEquipments = defineStore("equipments", () => {
|
||||||
1000,
|
1000,
|
||||||
new Error("Matrixkeyclient Mutex Timeout!"),
|
new Error("Matrixkeyclient Mutex Timeout!"),
|
||||||
);
|
);
|
||||||
const powerClient = AuthManager.createAuthenticatedPowerClient();
|
|
||||||
|
|
||||||
// Enable Setting
|
// Enable Setting
|
||||||
const enableJtagBoundaryScan = ref(false);
|
const enableJtagBoundaryScan = ref(false);
|
||||||
|
@ -105,6 +102,7 @@ export const useEquipments = defineStore("equipments", () => {
|
||||||
async function jtagBoundaryScan() {
|
async function jtagBoundaryScan() {
|
||||||
const release = await jtagClientMutex.acquire();
|
const release = await jtagClientMutex.acquire();
|
||||||
try {
|
try {
|
||||||
|
const jtagClient = AuthManager.createAuthenticatedJtagClient();
|
||||||
const portStates = await jtagClient.boundaryScanLogicalPorts(
|
const portStates = await jtagClient.boundaryScanLogicalPorts(
|
||||||
boardAddr.value,
|
boardAddr.value,
|
||||||
boardPort.value,
|
boardPort.value,
|
||||||
|
@ -125,6 +123,7 @@ export const useEquipments = defineStore("equipments", () => {
|
||||||
|
|
||||||
async function jtagUploadBitstream(bitstream: File): Promise<boolean> {
|
async function jtagUploadBitstream(bitstream: File): Promise<boolean> {
|
||||||
try {
|
try {
|
||||||
|
const jtagClient = AuthManager.createAuthenticatedJtagClient();
|
||||||
const resp = await jtagClient.uploadBitstream(
|
const resp = await jtagClient.uploadBitstream(
|
||||||
boardAddr.value,
|
boardAddr.value,
|
||||||
toFileParameterOrUndefined(bitstream),
|
toFileParameterOrUndefined(bitstream),
|
||||||
|
@ -140,6 +139,7 @@ export const useEquipments = defineStore("equipments", () => {
|
||||||
async function jtagDownloadBitstream(): Promise<boolean> {
|
async function jtagDownloadBitstream(): Promise<boolean> {
|
||||||
const release = await jtagClientMutex.acquire();
|
const release = await jtagClientMutex.acquire();
|
||||||
try {
|
try {
|
||||||
|
const jtagClient = AuthManager.createAuthenticatedJtagClient();
|
||||||
const resp = await jtagClient.downloadBitstream(
|
const resp = await jtagClient.downloadBitstream(
|
||||||
boardAddr.value,
|
boardAddr.value,
|
||||||
boardPort.value,
|
boardPort.value,
|
||||||
|
@ -157,6 +157,7 @@ export const useEquipments = defineStore("equipments", () => {
|
||||||
async function jtagGetIDCode(isQuiet: boolean = false): Promise<number> {
|
async function jtagGetIDCode(isQuiet: boolean = false): Promise<number> {
|
||||||
const release = await jtagClientMutex.acquire();
|
const release = await jtagClientMutex.acquire();
|
||||||
try {
|
try {
|
||||||
|
const jtagClient = AuthManager.createAuthenticatedJtagClient();
|
||||||
const resp = await jtagClient.getDeviceIDCode(
|
const resp = await jtagClient.getDeviceIDCode(
|
||||||
boardAddr.value,
|
boardAddr.value,
|
||||||
boardPort.value,
|
boardPort.value,
|
||||||
|
@ -173,6 +174,7 @@ export const useEquipments = defineStore("equipments", () => {
|
||||||
async function jtagSetSpeed(speed: number): Promise<boolean> {
|
async function jtagSetSpeed(speed: number): Promise<boolean> {
|
||||||
const release = await jtagClientMutex.acquire();
|
const release = await jtagClientMutex.acquire();
|
||||||
try {
|
try {
|
||||||
|
const jtagClient = AuthManager.createAuthenticatedJtagClient();
|
||||||
const resp = await jtagClient.setSpeed(
|
const resp = await jtagClient.setSpeed(
|
||||||
boardAddr.value,
|
boardAddr.value,
|
||||||
boardPort.value,
|
boardPort.value,
|
||||||
|
@ -191,6 +193,7 @@ export const useEquipments = defineStore("equipments", () => {
|
||||||
const release = await matrixKeypadClientMutex.acquire();
|
const release = await matrixKeypadClientMutex.acquire();
|
||||||
console.log("set Key !!!!!!!!!!!!");
|
console.log("set Key !!!!!!!!!!!!");
|
||||||
try {
|
try {
|
||||||
|
const matrixKeypadClient = AuthManager.createAuthenticatedMatrixKeyClient();
|
||||||
const resp = await matrixKeypadClient.setMatrixKeyStatus(
|
const resp = await matrixKeypadClient.setMatrixKeyStatus(
|
||||||
boardAddr.value,
|
boardAddr.value,
|
||||||
boardPort.value,
|
boardPort.value,
|
||||||
|
@ -209,6 +212,7 @@ export const useEquipments = defineStore("equipments", () => {
|
||||||
const release = await matrixKeypadClientMutex.acquire();
|
const release = await matrixKeypadClientMutex.acquire();
|
||||||
try {
|
try {
|
||||||
if (enable) {
|
if (enable) {
|
||||||
|
const matrixKeypadClient = AuthManager.createAuthenticatedMatrixKeyClient();
|
||||||
const resp = await matrixKeypadClient.enabelMatrixKey(
|
const resp = await matrixKeypadClient.enabelMatrixKey(
|
||||||
boardAddr.value,
|
boardAddr.value,
|
||||||
boardPort.value,
|
boardPort.value,
|
||||||
|
@ -216,6 +220,7 @@ export const useEquipments = defineStore("equipments", () => {
|
||||||
enableMatrixKey.value = resp;
|
enableMatrixKey.value = resp;
|
||||||
return resp;
|
return resp;
|
||||||
} else {
|
} else {
|
||||||
|
const matrixKeypadClient = AuthManager.createAuthenticatedMatrixKeyClient();
|
||||||
const resp = await matrixKeypadClient.disableMatrixKey(
|
const resp = await matrixKeypadClient.disableMatrixKey(
|
||||||
boardAddr.value,
|
boardAddr.value,
|
||||||
boardPort.value,
|
boardPort.value,
|
||||||
|
@ -235,6 +240,7 @@ export const useEquipments = defineStore("equipments", () => {
|
||||||
async function powerSetOnOff(enable: boolean) {
|
async function powerSetOnOff(enable: boolean) {
|
||||||
const release = await powerClientMutex.acquire();
|
const release = await powerClientMutex.acquire();
|
||||||
try {
|
try {
|
||||||
|
const powerClient = AuthManager.createAuthenticatedPowerClient();
|
||||||
const resp = await powerClient.setPowerOnOff(
|
const resp = await powerClient.setPowerOnOff(
|
||||||
boardAddr.value,
|
boardAddr.value,
|
||||||
boardPort.value,
|
boardPort.value,
|
||||||
|
@ -262,7 +268,6 @@ export const useEquipments = defineStore("equipments", () => {
|
||||||
jtagBitstream,
|
jtagBitstream,
|
||||||
jtagBoundaryScanFreq,
|
jtagBoundaryScanFreq,
|
||||||
jtagClientMutex,
|
jtagClientMutex,
|
||||||
jtagClient,
|
|
||||||
jtagUploadBitstream,
|
jtagUploadBitstream,
|
||||||
jtagDownloadBitstream,
|
jtagDownloadBitstream,
|
||||||
jtagGetIDCode,
|
jtagGetIDCode,
|
||||||
|
@ -272,13 +277,11 @@ export const useEquipments = defineStore("equipments", () => {
|
||||||
enableMatrixKey,
|
enableMatrixKey,
|
||||||
matrixKeyStates,
|
matrixKeyStates,
|
||||||
matrixKeypadClientMutex,
|
matrixKeypadClientMutex,
|
||||||
matrixKeypadClient,
|
|
||||||
matrixKeypadEnable,
|
matrixKeypadEnable,
|
||||||
matrixKeypadSetKeyStates,
|
matrixKeypadSetKeyStates,
|
||||||
|
|
||||||
// Power
|
// Power
|
||||||
enablePower,
|
enablePower,
|
||||||
powerClient,
|
|
||||||
powerClientMutex,
|
powerClientMutex,
|
||||||
powerSetOnOff,
|
powerSetOnOff,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue