|
|
<UserControl xmlns="https://github.com/avaloniaui"
|
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
|
x:Class="Sln.Wcs.UI.Views.HomePageView">
|
|
|
<ScrollViewer Margin="20,14,20,14">
|
|
|
<StackPanel Spacing="14">
|
|
|
|
|
|
<!-- Intro Card -->
|
|
|
<Border CornerRadius="8" Padding="22" BorderBrush="#1E3550" BorderThickness="1">
|
|
|
<Border.Background>
|
|
|
<LinearGradientBrush StartPoint="0%,0%" EndPoint="0%,100%">
|
|
|
<GradientStop Color="#121C29" Offset="0" />
|
|
|
<GradientStop Color="#0F1620" Offset="1" />
|
|
|
</LinearGradientBrush>
|
|
|
</Border.Background>
|
|
|
<StackPanel Spacing="10">
|
|
|
<StackPanel Orientation="Horizontal" Spacing="10">
|
|
|
<Rectangle Width="3" Height="20" Fill="#4FC3F7" RadiusX="2" RadiusY="2" />
|
|
|
<TextBlock Text="WCS 通用平台框架" FontSize="17" FontWeight="SemiBold" Foreground="#DDE4F0" />
|
|
|
</StackPanel>
|
|
|
<TextBlock Text="基于 .NET 8.0 + Avalonia UI 构建的跨平台仓库控制系统 (Warehouse Control System),支持多种硬件设备协议,提供统一的调度、监控和管理能力。采用 Apollo 配置中心实时下发配置,Serilog 结构化日志按模块分类存储,SqlSugar ORM 多库访问。"
|
|
|
FontSize="12" Foreground="#7B8FA8" TextWrapping="Wrap" LineHeight="20" />
|
|
|
<WrapPanel Margin="0,4,0,0">
|
|
|
<Border Background="#0F1F38" CornerRadius="4" Padding="10,5" Margin="0,0,8,8" BorderBrush="#1B3A5C" BorderThickness="1">
|
|
|
<TextBlock Text=".NET 8.0" FontSize="11" Foreground="#64B5F6" /></Border>
|
|
|
<Border Background="#0F1F38" CornerRadius="4" Padding="10,5" Margin="0,0,8,8" BorderBrush="#1B3A5C" BorderThickness="1">
|
|
|
<TextBlock Text="Avalonia UI" FontSize="11" Foreground="#64B5F6" /></Border>
|
|
|
<Border Background="#0F1F38" CornerRadius="4" Padding="10,5" Margin="0,0,8,8" BorderBrush="#1B3A5C" BorderThickness="1">
|
|
|
<TextBlock Text="MVVM" FontSize="11" Foreground="#64B5F6" /></Border>
|
|
|
<Border Background="#0F1F38" CornerRadius="4" Padding="10,5" Margin="0,0,8,8" BorderBrush="#1B3A5C" BorderThickness="1">
|
|
|
<TextBlock Text="SqlSugar ORM" FontSize="11" Foreground="#64B5F6" /></Border>
|
|
|
<Border Background="#0F1F38" CornerRadius="4" Padding="10,5" Margin="0,0,8,8" BorderBrush="#1B3A5C" BorderThickness="1">
|
|
|
<TextBlock Text="Serilog" FontSize="11" Foreground="#64B5F6" /></Border>
|
|
|
<Border Background="#0F1F38" CornerRadius="4" Padding="10,5" Margin="0,0,8,8" BorderBrush="#1B3A5C" BorderThickness="1">
|
|
|
<TextBlock Text="Apollo 配置中心" FontSize="11" Foreground="#64B5F6" /></Border>
|
|
|
<Border Background="#0F1F38" CornerRadius="4" Padding="10,5" Margin="0,0,8,8" BorderBrush="#1B3A5C" BorderThickness="1">
|
|
|
<TextBlock Text="FusionCache" FontSize="11" Foreground="#64B5F6" /></Border>
|
|
|
</WrapPanel>
|
|
|
</StackPanel>
|
|
|
</Border>
|
|
|
|
|
|
<!-- Module Card -->
|
|
|
<Border CornerRadius="8" Padding="22" BorderBrush="#1E3550" BorderThickness="1">
|
|
|
<Border.Background>
|
|
|
<LinearGradientBrush StartPoint="0%,0%" EndPoint="0%,100%">
|
|
|
<GradientStop Color="#121C29" Offset="0" />
|
|
|
<GradientStop Color="#0F1620" Offset="1" />
|
|
|
</LinearGradientBrush>
|
|
|
</Border.Background>
|
|
|
<StackPanel Spacing="12">
|
|
|
<StackPanel Orientation="Horizontal" Spacing="10">
|
|
|
<Rectangle Width="3" Height="20" Fill="#4FC3F7" RadiusX="2" RadiusY="2" />
|
|
|
<TextBlock Text="核心模块" FontSize="17" FontWeight="SemiBold" Foreground="#DDE4F0" />
|
|
|
</StackPanel>
|
|
|
<WrapPanel>
|
|
|
<Border Width="240" Padding="14,12" Margin="0,0,14,14" Background="#0C1622" CornerRadius="6" BorderBrush="#1A2F4A" BorderThickness="1">
|
|
|
<StackPanel Spacing="4">
|
|
|
<TextBlock Text="Sln.Wcs" FontSize="13" FontWeight="SemiBold" Foreground="#E1E8F0" />
|
|
|
<TextBlock Text="主控台程序,负责系统启动、配置加载、DI 容器编排" FontSize="11" Foreground="#6B8CB5" TextWrapping="Wrap" /></StackPanel></Border>
|
|
|
<Border Width="240" Padding="14,12" Margin="0,0,14,14" Background="#0C1622" CornerRadius="6" BorderBrush="#1A2F4A" BorderThickness="1">
|
|
|
<StackPanel Spacing="4">
|
|
|
<TextBlock Text="Sln.Wcs.UI" FontSize="13" FontWeight="SemiBold" Foreground="#E1E8F0" />
|
|
|
<TextBlock Text="跨平台桌面客户端,基于 Avalonia + MVVM,提供设备监控界面" FontSize="11" Foreground="#6B8CB5" TextWrapping="Wrap" /></StackPanel></Border>
|
|
|
<Border Width="240" Padding="14,12" Margin="0,0,14,14" Background="#0C1622" CornerRadius="6" BorderBrush="#1A2F4A" BorderThickness="1">
|
|
|
<StackPanel Spacing="4">
|
|
|
<TextBlock Text="Sln.Wcs.Business" FontSize="13" FontWeight="SemiBold" Foreground="#E1E8F0" />
|
|
|
<TextBlock Text="业务逻辑层,任务创建、库位筛选、物料入库/出库策略" FontSize="11" Foreground="#6B8CB5" TextWrapping="Wrap" /></StackPanel></Border>
|
|
|
<Border Width="240" Padding="14,12" Margin="0,0,14,14" Background="#0C1622" CornerRadius="6" BorderBrush="#1A2F4A" BorderThickness="1">
|
|
|
<StackPanel Spacing="4">
|
|
|
<TextBlock Text="Sln.Wcs.Repository" FontSize="13" FontWeight="SemiBold" Foreground="#E1E8F0" />
|
|
|
<TextBlock Text="数据访问层,基于 SqlSugar ORM,多数据库连接管理" FontSize="11" Foreground="#6B8CB5" TextWrapping="Wrap" /></StackPanel></Border>
|
|
|
<Border Width="240" Padding="14,12" Margin="0,0,14,14" Background="#0C1622" CornerRadius="6" BorderBrush="#1A2F4A" BorderThickness="1">
|
|
|
<StackPanel Spacing="4">
|
|
|
<TextBlock Text="Sln.Wcs.Strategy" FontSize="13" FontWeight="SemiBold" Foreground="#E1E8F0" />
|
|
|
<TextBlock Text="策略层,物料/库位分配算法,支持多种策略可配置切换" FontSize="11" Foreground="#6B8CB5" TextWrapping="Wrap" /></StackPanel></Border>
|
|
|
<Border Width="240" Padding="14,12" Margin="0,0,14,14" Background="#0C1622" CornerRadius="6" BorderBrush="#1A2F4A" BorderThickness="1">
|
|
|
<StackPanel Spacing="4">
|
|
|
<TextBlock Text="Sln.Wcs.Cache" FontSize="13" FontWeight="SemiBold" Foreground="#E1E8F0" />
|
|
|
<TextBlock Text="缓存层,FusionCache + SQLite 分布式缓存,支持熔断" FontSize="11" Foreground="#6B8CB5" TextWrapping="Wrap" /></StackPanel></Border>
|
|
|
<Border Width="240" Padding="14,12" Margin="0,0,14,14" Background="#0C1622" CornerRadius="6" BorderBrush="#1A2F4A" BorderThickness="1">
|
|
|
<StackPanel Spacing="4">
|
|
|
<TextBlock Text="Sln.Wcs.Serilog" FontSize="13" FontWeight="SemiBold" Foreground="#E1E8F0" />
|
|
|
<TextBlock Text="日志模块,按 Info/Plc/Agv/Rfid/Alarm/Error 分类存储" FontSize="11" Foreground="#6B8CB5" TextWrapping="Wrap" /></StackPanel></Border>
|
|
|
<Border Width="240" Padding="14,12" Margin="0,0,14,14" Background="#0C1622" CornerRadius="6" BorderBrush="#1A2F4A" BorderThickness="1">
|
|
|
<StackPanel Spacing="4">
|
|
|
<TextBlock Text="Sln.Wcs.Common / Model" FontSize="13" FontWeight="SemiBold" Foreground="#E1E8F0" />
|
|
|
<TextBlock Text="公共工具层与领域模型,提供基础类型、实体定义与配置" FontSize="11" Foreground="#6B8CB5" TextWrapping="Wrap" /></StackPanel></Border>
|
|
|
</WrapPanel>
|
|
|
</StackPanel>
|
|
|
</Border>
|
|
|
|
|
|
<!-- 海康 AGV 模块 -->
|
|
|
<Border CornerRadius="8" Padding="22" BorderBrush="#1E3550" BorderThickness="1">
|
|
|
<Border.Background>
|
|
|
<LinearGradientBrush StartPoint="0%,0%" EndPoint="0%,100%">
|
|
|
<GradientStop Color="#121C29" Offset="0" />
|
|
|
<GradientStop Color="#0F1620" Offset="1" />
|
|
|
</LinearGradientBrush>
|
|
|
</Border.Background>
|
|
|
<StackPanel Spacing="12">
|
|
|
<StackPanel Orientation="Horizontal" Spacing="10">
|
|
|
<Rectangle Width="3" Height="20" Fill="#4FC3F7" RadiusX="2" RadiusY="2" />
|
|
|
<TextBlock Text="海康 AGV 调度模块" FontSize="17" FontWeight="SemiBold" Foreground="#DDE4F0" />
|
|
|
</StackPanel>
|
|
|
<TextBlock Text="封装海康机器人 RCS-2000 接口,采用三层架构实现 AGV 任务下发、路径规划、状态查询与设备通知。"
|
|
|
FontSize="12" Foreground="#7B8FA8" TextWrapping="Wrap" />
|
|
|
<WrapPanel>
|
|
|
<Border Width="280" Padding="14,12" Margin="0,0,12,12" Background="#0C1622" CornerRadius="6" BorderBrush="#1A2F4A" BorderThickness="1">
|
|
|
<StackPanel Spacing="4">
|
|
|
<StackPanel Orientation="Horizontal" Spacing="6">
|
|
|
<Border Background="#1565C0" CornerRadius="2" Width="4" Height="14" />
|
|
|
<TextBlock Text="HikRoBotSdk" FontSize="13" FontWeight="SemiBold" Foreground="#E1E8F0" /></StackPanel>
|
|
|
<TextBlock Text="底层 HTTP 客户端,封装海康 RCS API 原始接口调用(GbTaskSubmit / GenSchedulingTask / QueryStatus / CarrierBind 等)" FontSize="11" Foreground="#6B8CB5" TextWrapping="Wrap" LineHeight="16" /></StackPanel></Border>
|
|
|
<Border Width="280" Padding="14,12" Margin="0,0,12,12" Background="#0C1622" CornerRadius="6" BorderBrush="#1A2F4A" BorderThickness="1">
|
|
|
<StackPanel Spacing="4">
|
|
|
<StackPanel Orientation="Horizontal" Spacing="6">
|
|
|
<Border Background="#0277BD" CornerRadius="2" Width="4" Height="14" />
|
|
|
<TextBlock Text="HikRoBotAdapter" FontSize="13" FontWeight="SemiBold" Foreground="#E1E8F0" /></StackPanel>
|
|
|
<TextBlock Text="适配层,将 SDK 原始 DTO 转换为业务语义模型,含 TaskType 映射、状态枚举转换、异常处理与重试" FontSize="11" Foreground="#6B8CB5" TextWrapping="Wrap" LineHeight="16" /></StackPanel></Border>
|
|
|
<Border Width="280" Padding="14,12" Margin="0,0,12,12" Background="#0C1622" CornerRadius="6" BorderBrush="#1A2F4A" BorderThickness="1">
|
|
|
<StackPanel Spacing="4">
|
|
|
<StackPanel Orientation="Horizontal" Spacing="6">
|
|
|
<Border Background="#00838F" CornerRadius="2" Width="4" Height="14" />
|
|
|
<TextBlock Text="HikRoBotDispatcher" FontSize="13" FontWeight="SemiBold" Foreground="#E1E8F0" /></StackPanel>
|
|
|
<TextBlock Text="调度中枢,管理多 AGV 的任务队列、防死锁、路径冲突检测、优先级调度与设备状态同步" FontSize="11" Foreground="#6B8CB5" TextWrapping="Wrap" LineHeight="16" /></StackPanel></Border>
|
|
|
</WrapPanel>
|
|
|
</StackPanel>
|
|
|
</Border>
|
|
|
|
|
|
<!-- 提升机模块 -->
|
|
|
<Border CornerRadius="8" Padding="22" BorderBrush="#1E3550" BorderThickness="1">
|
|
|
<Border.Background>
|
|
|
<LinearGradientBrush StartPoint="0%,0%" EndPoint="0%,100%">
|
|
|
<GradientStop Color="#121C29" Offset="0" />
|
|
|
<GradientStop Color="#0F1620" Offset="1" />
|
|
|
</LinearGradientBrush>
|
|
|
</Border.Background>
|
|
|
<StackPanel Spacing="12">
|
|
|
<StackPanel Orientation="Horizontal" Spacing="10">
|
|
|
<Rectangle Width="3" Height="20" Fill="#4FC3F7" RadiusX="2" RadiusY="2" />
|
|
|
<TextBlock Text="提升机调度模块" FontSize="17" FontWeight="SemiBold" Foreground="#DDE4F0" />
|
|
|
</StackPanel>
|
|
|
<TextBlock Text="封装提升机 (Hoist) 控制协议,实现出入库升降控制、托盘到位检测、报警设置与状态实时监控。"
|
|
|
FontSize="12" Foreground="#7B8FA8" TextWrapping="Wrap" />
|
|
|
<WrapPanel>
|
|
|
<Border Width="280" Padding="14,12" Margin="0,0,12,12" Background="#0C1622" CornerRadius="6" BorderBrush="#1A2F4A" BorderThickness="1">
|
|
|
<StackPanel Spacing="4">
|
|
|
<StackPanel Orientation="Horizontal" Spacing="6">
|
|
|
<Border Background="#1565C0" CornerRadius="2" Width="4" Height="14" />
|
|
|
<TextBlock Text="HoistSdk" FontSize="13" FontWeight="SemiBold" Foreground="#E1E8F0" /></StackPanel>
|
|
|
<TextBlock Text="底层通信客户端,封装提升机原生协议(升降/取货/放货/状态查询),处理网络连接与超时" FontSize="11" Foreground="#6B8CB5" TextWrapping="Wrap" LineHeight="16" /></StackPanel></Border>
|
|
|
<Border Width="280" Padding="14,12" Margin="0,0,12,12" Background="#0C1622" CornerRadius="6" BorderBrush="#1A2F4A" BorderThickness="1">
|
|
|
<StackPanel Spacing="4">
|
|
|
<StackPanel Orientation="Horizontal" Spacing="6">
|
|
|
<Border Background="#0277BD" CornerRadius="2" Width="4" Height="14" />
|
|
|
<TextBlock Text="HoistAdapter" FontSize="13" FontWeight="SemiBold" Foreground="#E1E8F0" /></StackPanel>
|
|
|
<TextBlock Text="适配层,将原始协议 DTO 转换为业务领域模型,含楼层映射、托盘状态枚举、报警码解析" FontSize="11" Foreground="#6B8CB5" TextWrapping="Wrap" LineHeight="16" /></StackPanel></Border>
|
|
|
<Border Width="280" Padding="14,12" Margin="0,0,12,12" Background="#0C1622" CornerRadius="6" BorderBrush="#1A2F4A" BorderThickness="1">
|
|
|
<StackPanel Spacing="4">
|
|
|
<StackPanel Orientation="Horizontal" Spacing="6">
|
|
|
<Border Background="#00838F" CornerRadius="2" Width="4" Height="14" />
|
|
|
<TextBlock Text="HoistDispatcher" FontSize="13" FontWeight="SemiBold" Foreground="#E1E8F0" /></StackPanel>
|
|
|
<TextBlock Text="调度中枢,管理多台提升机的任务队列、楼层协同、托盘到位逻辑、报警联动与状态同步" FontSize="11" Foreground="#6B8CB5" TextWrapping="Wrap" LineHeight="16" /></StackPanel></Border>
|
|
|
</WrapPanel>
|
|
|
</StackPanel>
|
|
|
</Border>
|
|
|
|
|
|
<!-- 调用关系 -->
|
|
|
<Border CornerRadius="8" Padding="22" BorderBrush="#1E3550" BorderThickness="1">
|
|
|
<Border.Background>
|
|
|
<LinearGradientBrush StartPoint="0%,0%" EndPoint="0%,100%">
|
|
|
<GradientStop Color="#121C29" Offset="0" />
|
|
|
<GradientStop Color="#0F1620" Offset="1" />
|
|
|
</LinearGradientBrush>
|
|
|
</Border.Background>
|
|
|
<StackPanel Spacing="14">
|
|
|
<StackPanel Orientation="Horizontal" Spacing="10">
|
|
|
<Rectangle Width="3" Height="20" Fill="#4FC3F7" RadiusX="2" RadiusY="2" />
|
|
|
<TextBlock Text="调用关系" FontSize="17" FontWeight="SemiBold" Foreground="#DDE4F0" />
|
|
|
</StackPanel>
|
|
|
<Border Background="#0C1622" CornerRadius="6" Padding="16,12" BorderBrush="#1A2F4A" BorderThickness="1">
|
|
|
<StackPanel Spacing="8">
|
|
|
<TextBlock Text="Strategy → Dispatcher → Adapter → SDK → 设备"
|
|
|
FontSize="13" FontWeight="SemiBold" Foreground="#64B5F6" HorizontalAlignment="Center" />
|
|
|
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="0">
|
|
|
<Border Background="#6A1B9A" CornerRadius="4" Padding="14,10" Width="140">
|
|
|
<StackPanel HorizontalAlignment="Center" Spacing="2">
|
|
|
<TextBlock Text="Strategy" FontSize="12" FontWeight="SemiBold" Foreground="White" HorizontalAlignment="Center" />
|
|
|
<TextBlock Text="物料/库位分配" FontSize="9" Foreground="#CE93D8" HorizontalAlignment="Center" /></StackPanel></Border>
|
|
|
<TextBlock Text="→" FontSize="18" Foreground="#4FC3F7" VerticalAlignment="Center" Margin="8,0" />
|
|
|
<Border Background="#00838F" CornerRadius="4" Padding="14,10" Width="140">
|
|
|
<StackPanel HorizontalAlignment="Center" Spacing="2">
|
|
|
<TextBlock Text="Dispatcher" FontSize="12" FontWeight="SemiBold" Foreground="White" HorizontalAlignment="Center" />
|
|
|
<TextBlock Text="队列调度/防死锁" FontSize="9" Foreground="#B2DFDB" HorizontalAlignment="Center" /></StackPanel></Border>
|
|
|
<TextBlock Text="→" FontSize="18" Foreground="#4FC3F7" VerticalAlignment="Center" Margin="8,0" />
|
|
|
<Border Background="#0277BD" CornerRadius="4" Padding="14,10" Width="140">
|
|
|
<StackPanel HorizontalAlignment="Center" Spacing="2">
|
|
|
<TextBlock Text="Adapter" FontSize="12" FontWeight="SemiBold" Foreground="White" HorizontalAlignment="Center" />
|
|
|
<TextBlock Text="DTO转换/重试" FontSize="9" Foreground="#B3D4FC" HorizontalAlignment="Center" /></StackPanel></Border>
|
|
|
<TextBlock Text="→" FontSize="18" Foreground="#4FC3F7" VerticalAlignment="Center" Margin="8,0" />
|
|
|
<Border Background="#0D47A1" CornerRadius="4" Padding="14,10" Width="140">
|
|
|
<StackPanel HorizontalAlignment="Center" Spacing="2">
|
|
|
<TextBlock Text="SDK" FontSize="12" FontWeight="SemiBold" Foreground="White" HorizontalAlignment="Center" />
|
|
|
<TextBlock Text="协议通信" FontSize="9" Foreground="#90CAF9" HorizontalAlignment="Center" /></StackPanel></Border>
|
|
|
</StackPanel>
|
|
|
</StackPanel>
|
|
|
</Border>
|
|
|
<WrapPanel HorizontalAlignment="Center">
|
|
|
<StackPanel Orientation="Horizontal" Margin="0,0,16,8">
|
|
|
<Border Background="#6A1B9A" CornerRadius="2" Width="12" Height="12" Margin="0,0,6,0" />
|
|
|
<TextBlock Text="Strategy 策略层" FontSize="11" Foreground="#8B9BB5" /></StackPanel>
|
|
|
<StackPanel Orientation="Horizontal" Margin="0,0,16,8">
|
|
|
<Border Background="#00838F" CornerRadius="2" Width="12" Height="12" Margin="0,0,6,0" />
|
|
|
<TextBlock Text="Dispatcher 调度层" FontSize="11" Foreground="#8B9BB5" /></StackPanel>
|
|
|
<StackPanel Orientation="Horizontal" Margin="0,0,16,8">
|
|
|
<Border Background="#0277BD" CornerRadius="2" Width="12" Height="12" Margin="0,0,6,0" />
|
|
|
<TextBlock Text="Adapter 适配层" FontSize="11" Foreground="#8B9BB5" /></StackPanel>
|
|
|
<StackPanel Orientation="Horizontal" Margin="0,0,16,8">
|
|
|
<Border Background="#0D47A1" CornerRadius="2" Width="12" Height="12" Margin="0,0,6,0" />
|
|
|
<TextBlock Text="SDK 通信层" FontSize="11" Foreground="#8B9BB5" /></StackPanel>
|
|
|
</WrapPanel>
|
|
|
<TextBlock Text="Strategy 策略层根据物料属性与库位状态计算最优分配方案,将任务指令交由 Dispatcher 进行队列调度与冲突检测,Dispatcher 通过 Adapter 将业务指令转换为设备协议格式,最终由 SDK 与硬件设备(AGV RCS-2000 / 提升机 PLC)通信执行。海康 AGV 与提升机均遵循此四层调用链,仅底层通信协议不同(HTTP vs TCP)。"
|
|
|
FontSize="11" Foreground="#5B6F8A" TextWrapping="Wrap" LineHeight="18" />
|
|
|
</StackPanel>
|
|
|
</Border>
|
|
|
|
|
|
</StackPanel>
|
|
|
</ScrollViewer>
|
|
|
</UserControl>
|