Files
FPGA_WebLab/src/views/Project/LogicAnalyzer.vue

117 lines
3.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="bg-base-100 flex flex-col gap-10 mb-5">
<!-- 逻辑信号展示 -->
<div class="card bg-base-200 shadow-xl mx-5">
<div class="card-body">
<h2 class="card-title flex justify-between items-center">
<div class="flex items-center gap-2">
<Zap class="w-5 h-5" />
逻辑信号分析
</div>
<div class="flex items-center gap-2">
<!-- 空闲状态只显示开始捕获按钮 -->
<button
v-if="!analyzer.isCapturing.value"
@click="analyzer.startCapture"
:disabled="analyzer.isApplying.value"
class="btn btn-sm btn-primary"
>
开始捕获
</button>
<!-- 捕获状态显示停止捕获和强制捕获按钮 -->
<button
v-if="analyzer.isCapturing.value"
@click="analyzer.stopCapture"
class="btn btn-sm btn-warning"
>
<span class="loading loading-spinner loading-sm"></span>
停止捕获
</button>
<button
v-if="analyzer.isCapturing.value"
@click="analyzer.forceCapture"
class="btn btn-sm btn-secondary"
>
强制捕获
</button>
<!-- 其他按钮保持不变 -->
<button
@click="analyzer.generateTestData"
class="btn btn-sm btn-info"
>
测试数据
</button>
<button class="btn btn-sm btn-error" @click="handleDeleteData">
清空数据
</button>
</div>
</h2>
<LogicalWaveFormDisplay />
</div>
</div>
<!-- 触发设置 -->
<div class="card bg-base-200 shadow-xl mx-5">
<div class="card-body">
<h2 class="card-title flex justify-between items-center">
<div class="flex gap-8">
<div class="flex items-center gap-2">
<Settings class="w-5 h-5" />
触发设置
</div>
</div>
<div class="flex items-center gap-4">
<!-- 状态指示 -->
<div class="flex items-center gap-2 text-sm">
<span
v-if="analyzer.isCapturing.value"
class="flex items-center gap-1 text-warning"
>
<span class="loading loading-spinner loading-xs"></span>
捕获中
</span>
<span
v-else-if="analyzer.isApplying.value"
class="flex items-center gap-1 text-info"
>
<span class="loading loading-spinner loading-xs"></span>
配置中
</span>
<span
v-else
class="text-success"
>
就绪
</span>
</div>
</div>
</h2>
<TriggerSettings />
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { Zap, Settings, Layers } from "lucide-vue-next";
import { useEquipments } from "@/stores/equipments";
import {
LogicalWaveFormDisplay,
TriggerSettings,
useLogicAnalyzerState,
} from "@/components/LogicAnalyzer";
import { useRequiredInjection } from "@/utils/Common";
const analyzer = useRequiredInjection(useLogicAnalyzerState);
function handleDeleteData() {
analyzer.logicData.value = undefined;
}
// 使用全局设备配置
const equipments = useEquipments();
</script>