change - 程序调试

master
wenjy 3 days ago
parent 6a41edb42e
commit 990d27d32f

@ -0,0 +1,134 @@
using System;
using System.Collections.Generic;
using System.IO.Ports;
using System.Text;
using System.Threading;
#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* (c) 2025 WenJY
* CLR4.0.30319.42000
* T14-GEN3-7895
* SlnMesnac.Business
* a0333022-6db6-4dd1-8aa7-bc46b57b6050
*
* WenJY
*
* 2025-06-23 13:50:07
* V1.0.0
*
*
*--------------------------------------------------------------------
*
*
*
*
* V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace SlnMesnac.Business
{
public class SerialBusiness
{
private SerialPort serialPort;
public SerialBusiness()
{
serialPort = new SerialPort("COM6", 115200, Parity.None, 8, StopBits.One);
//serialPort.DataReceived += SerialPort_DataReceived;
}
private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
// 数据接收事件处理
// 这里可以根据需要处理接收到的数据
}
public void OpenPort()
{
try
{
if (!serialPort.IsOpen)
{
serialPort.Open();
}
}
catch (Exception ex)
{
Console.WriteLine($"打开串口时出错: {ex.Message}");
}
}
public void ClosePort()
{
if (serialPort.IsOpen)
{
serialPort.Close();
}
}
private byte[] receiveBuffer = new byte[1024];
private int bufferIndex = 0;
public byte[] SendDataAndWaitForResponse(byte[] dataToSend)
{
if (!serialPort.IsOpen)
{
throw new InvalidOperationException("串口未打开。");
}
// 清空接收缓冲区
serialPort.DiscardInBuffer();
bufferIndex = 0;
byte[] receivedData = new byte[0];
AutoResetEvent dataReceivedEvent = new AutoResetEvent(false);
serialPort.DataReceived += (sender, e) =>
{
int bytesToRead = serialPort.BytesToRead;
serialPort.Read(receiveBuffer, bufferIndex, bytesToRead);
bufferIndex += bytesToRead;
if (bufferIndex >= 5)
{
receivedData = new byte[bufferIndex];
Array.Copy(receiveBuffer, receivedData, bufferIndex);
dataReceivedEvent.Set();
}
};
try
{
// 发送数据
serialPort.Write(dataToSend, 0, dataToSend.Length);
// 等待数据返回,最多等待 5 秒
if (!dataReceivedEvent.WaitOne(5000))
{
throw new TimeoutException("在 5 秒内未收到响应。");
}
return receivedData;
}
finally
{
// 移除事件处理程序
serialPort.DataReceived -= (sender, e) =>
{
int bytesToRead = serialPort.BytesToRead;
serialPort.Read(receiveBuffer, bufferIndex, bytesToRead);
bufferIndex += bytesToRead;
if (bufferIndex >= 10)
{
receivedData = new byte[bufferIndex];
Array.Copy(receiveBuffer, receivedData, bufferIndex);
dataReceivedEvent.Set();
}
};
}
}
}
}

@ -44,6 +44,11 @@ namespace SlnMesnac.Config
/// </summary>
public string? equipKey { get; set; }
/// <summary>
/// 连接会话
/// </summary>
public object? session { get;set; }
/// <summary>
/// 是否启用
/// </summary>

@ -4,6 +4,8 @@ using System.Collections.Generic;
using System.Text;
using Microsoft.AspNetCore.Builder;
using TouchSocket.Sockets;
using TouchSocket.Core;
using SlnMesnac.Config;
#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
@ -35,14 +37,11 @@ namespace SlnMesnac.TouchSocket
public static class TouchSocketSetup
{
public static IApplicationBuilder UseTouchSocketExtensions(this IApplicationBuilder app)
public static async void UseTouchSocketExtensions(this IServiceProvider service)
{
var _server = app.ApplicationServices.GetService<TcpServer>();
_server.Init(20108);
var ap = service.GetService<AppConfig>();
var _apiServer = app.ApplicationServices.GetService<WebApiServer>();
_apiServer.Init();
return app;
}
}
}

@ -7,6 +7,7 @@ using System.Windows;
using Microsoft.Extensions.Configuration;
using SlnMesnac.Extensions;
using SlnMesnac.Serilog;
using SlnMesnac.TouchSocket;
using System.Reflection;
using TouchSocket.Sockets;
using SlnMesnac.WPF.Attribute;
@ -14,6 +15,7 @@ using SlnMesnac.WPF.Page.Login;
using Prism.Events;
using SlnMesnac.WPF.Event;
using AduSkin.Controls.Metro;
using TouchSocket.Core;
namespace SlnMesnac.WPF
{
@ -58,6 +60,8 @@ namespace SlnMesnac.WPF
// 配置Serilog和其他扩展
ServiceProvider.UseSerilogExtensions();
ServiceProvider.UseTouchSocketExtensions();
//通知弹窗
NoticeManager.Initialize();
@ -85,9 +89,33 @@ namespace SlnMesnac.WPF
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
IConfiguration configuration = configurationBuilder.Build();
var ap = configuration.GetSection("AppConfig").Get<AppConfig>();
foreach (var item in ap.rfidConfig)
{
if (item.isFlage)
{
TcpClient tcpClient = new TcpClient();
var hashcode = tcpClient.GetHashCode();
tcpClient.Setup(new TouchSocketConfig()
.SetRemoteIPHost($"{item.equipIp}:{item.equipPort}"));
tcpClient.Connect();
Result result = tcpClient.TryConnect();
if (result.IsSuccess())
{
item.session = tcpClient;
}
var hashcode2 = tcpClient.GetHashCode();
}
}
return ap;
});
services.AddSingleton(typeof(SerilogHelper));
Assembly[] assemblies = {

@ -30,7 +30,7 @@
</Border>
<Border Grid.Column="1" Background="Transparent">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Center">
<TextBlock Text="工业高频RFID测试展示" FontSize="24" Foreground="White" FontFamily="四圆黑" FontWeight="Bold" Margin="20,0,0,0"/>
<TextBlock Text="工业高频RFID测试展示" FontSize="18" Foreground="White" FontFamily="四圆黑" FontWeight="Bold" Margin="20,0,0,0"/>
</StackPanel>
</Border>
<Border Grid.Column="2" Background="#0A56C7">
@ -38,8 +38,8 @@
x:Name="Index" Command="{Binding ControlOnClickCommand}" CommandParameter="{Binding Name,ElementName=Index}">
<Button.Content>
<StackPanel Orientation="Horizontal">
<TextBlock FontFamily="/Templates/fonts/font_5w2octy6l1q/#iconfont" Text="&#xe669;" FontSize="22" Foreground="White" FontWeight="Bold"/>
<TextBlock Text="首页" FontSize="22" Foreground="White" FontFamily="四圆黑" FontWeight="Bold" Margin="5,0"/>
<TextBlock FontFamily="/Templates/fonts/font_5w2octy6l1q/#iconfont" Text="&#xe669;" FontSize="18" Foreground="White" FontWeight="Bold"/>
<TextBlock Text="首页" FontSize="18" Foreground="White" FontFamily="四圆黑" FontWeight="Bold" Margin="5,0"/>
</StackPanel>
</Button.Content>
</Button>
@ -49,8 +49,8 @@
x:Name="Set" Command="{Binding ControlOnClickCommand}" CommandParameter="{Binding Name,ElementName=Set}">
<Button.Content>
<StackPanel Orientation="Horizontal">
<TextBlock FontFamily="/Templates/fonts/font_5w2octy6l1q/#iconfont" Text="&#xf018f;" FontSize="26" Foreground="White" FontWeight="Bold" Margin="0,1,0,0"/>
<TextBlock Text="设置" FontSize="22" Foreground="White" FontWeight="Bold" Margin="5,0,20,0"/>
<TextBlock FontFamily="/Templates/fonts/font_5w2octy6l1q/#iconfont" Text="&#xf018f;" FontSize="18" Foreground="White" FontWeight="Bold" Margin="0,1,0,0"/>
<TextBlock Text="设置" FontSize="18" Foreground="White" FontWeight="Bold" Margin="5,0,20,0"/>
</StackPanel>
</Button.Content>
</Button>

@ -2,6 +2,7 @@
using SlnMesnac.WPF.ViewModel;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@ -26,8 +27,13 @@ namespace SlnMesnac.WPF
public MainWindow(MainWindowViewModel mainWindowViewModel)
{
InitializeComponent();
this.Closing += Application_Closing;
this.DataContext = mainWindowViewModel;
}
private void Application_Closing(object sender, CancelEventArgs e)
{
Application.Current.Shutdown();
// 在此处执行退出事件处理逻辑
}
}
}

@ -52,32 +52,32 @@
<Border Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="8" BorderBrush="Black" BorderThickness="2"/>-->
<Border Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="2">
<StackPanel Orientation="Vertical" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="20,0,0,10">
<StackPanel Orientation="Vertical" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="0,0,0,10">
<TextBlock Text="I68" FontSize="22" Foreground="Black" FontWeight="Bold" HorizontalAlignment="Center"/>
<TextBox FontSize="18" Foreground="Black" Width="150" Height="30"/>
<TextBox Text="{Binding ThirdBatchEpcBarcode}" FontSize="18" Foreground="Black" Width="180" Height="30"/>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button Content="读取" Command="{Binding ControlOnClickCommand}" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
<Button Content="写入" Command="{Binding ControlOnClickCommand}" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
<Button Content="读取" Command="{Binding ReadEpcCodeCommand}" CommandParameter="I68" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
<Button Content="写入" Command="{Binding WriteEpcCodeCommand}" CommandParameter="I68" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
</StackPanel>
</StackPanel>
</Border>
<Border Grid.Row="0" Grid.Column="3" Grid.ColumnSpan="2">
<StackPanel Orientation="Vertical" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="10,0,0,10">
<StackPanel Orientation="Vertical" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="-10,0,0,10">
<TextBlock Text="RFR-RFLY" FontSize="22" Foreground="Black" FontWeight="Bold" HorizontalAlignment="Center"/>
<TextBox FontSize="18" Foreground="Black" Width="150" Height="30"/>
<TextBox Text="{Binding SecondBatchEpcBarcode}" FontSize="18" Foreground="Black" Width="180" Height="30"/>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button Content="读取" Command="{Binding ControlOnClickCommand}" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
<Button Content="写入" Command="{Binding ControlOnClickCommand}" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
<Button Content="读取" Command="{Binding ReadEpcCodeCommand}" CommandParameter="RFR-RFLY" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
<Button Content="写入" Command="{Binding WriteEpcCodeCommand}" CommandParameter="RFR-RFLY" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
</StackPanel>
</StackPanel>
</Border>
<Border Grid.Row="0" Grid.Column="6" >
<StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="0,0,0,10">
<Border Grid.Row="0" Grid.Column="6" Grid.ColumnSpan="2">
<StackPanel Orientation="Vertical" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="20,0,0,10">
<TextBlock Text="I90" FontSize="22" Foreground="Black" FontWeight="Bold" HorizontalAlignment="Center"/>
<TextBox FontSize="18" Foreground="Black" Width="150" Height="30"/>
<TextBox Text="{Binding FirstBatchEpcBarcode}" FontSize="18" Foreground="Black" Width="180" Height="30"/>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button Content="读取" Command="{Binding ControlOnClickCommand}" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
<Button Content="写入" Command="{Binding ControlOnClickCommand}" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
<Button Content="读取" Command="{Binding ReadEpcCodeCommand}" CommandParameter="I90" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
<Button Content="写入" Command="{Binding WriteEpcCodeCommand}" CommandParameter="I90" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
</StackPanel>
</StackPanel>
</Border>
@ -85,30 +85,30 @@
<Border Grid.Row="3" Grid.Column="2">
<StackPanel Orientation="Vertical" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="0,0,0,10">
<TextBlock Text="050-B" FontSize="22" Foreground="Black" FontWeight="Bold" HorizontalAlignment="Center"/>
<TextBox FontSize="18" Foreground="Black" Width="150" Height="30"/>
<TextBox Text="{Binding FourthBatchEpcBarcode}" FontSize="18" Foreground="Black" Width="180" Height="30"/>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button Content="读取" Command="{Binding ControlOnClickCommand}" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
<Button Content="写入" Command="{Binding ControlOnClickCommand}" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
<Button Content="读取" Command="{Binding ReadEpcCodeCommand}" CommandParameter="050-B" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
<Button Content="写入" Command="{Binding WriteEpcCodeCommand}" CommandParameter="050-B" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
</StackPanel>
</StackPanel>
</Border>
<Border Grid.Row="3" Grid.Column="4">
<Border Grid.Row="3" Grid.Column="4" Grid.ColumnSpan="2" >
<StackPanel Orientation="Vertical" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="0,0,0,10">
<TextBlock Text="RFR-050" FontSize="22" Foreground="Black" FontWeight="Bold" HorizontalAlignment="Center"/>
<TextBox FontSize="18" Foreground="Black" Width="150" Height="30"/>
<TextBox Text="{Binding FifthBatchEpcBarcode}" FontSize="18" Foreground="Black" Width="180" Height="30"/>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button Content="读取" Command="{Binding ControlOnClickCommand}" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
<Button Content="写入" Command="{Binding ControlOnClickCommand}" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
<Button Content="读取" Command="{Binding ReadEpcCodeByRtuCommand}" CommandParameter="RFR-050" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
<Button Content="写入" Command="{Binding WriteEpcCodeByRtuCommand}" CommandParameter="RFR-050" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
</StackPanel>
</StackPanel>
</Border>
<Border Grid.Row="3" Grid.Column="6">
<StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="0,0,0,10">
<Border Grid.Row="3" Grid.Column="6" Grid.ColumnSpan="2">
<StackPanel Orientation="Vertical" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="0,0,0,10">
<TextBlock Text="I40" FontSize="22" Foreground="Black" FontWeight="Bold" HorizontalAlignment="Center"/>
<TextBox FontSize="18" Foreground="Black" Width="150" Height="30"/>
<TextBox Text="{Binding SixthBatchEpcBarcode}" FontSize="18" Foreground="Black" Width="180" Height="30"/>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button Content="读取" Command="{Binding ControlOnClickCommand}" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
<Button Content="写入" Command="{Binding ControlOnClickCommand}" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
<Button Content="读取" Command="{Binding ReadEpcCodeByRtuCommand}" CommandParameter="I40" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
<Button Content="写入" Command="{Binding WriteEpcCodeByRtuCommand}" CommandParameter="I40" Foreground="White" Style="{StaticResource MaterialDesignFlatMidBgButton}" Width="70" Height="30" Background="#194B9F" BorderBrush="#194B9F" Margin="5,5"/>
</StackPanel>
</StackPanel>
</Border>
@ -119,7 +119,7 @@
</Border>
<Border Grid.Row="1" Grid.Column="3">
<Button Background="Transparent" BorderBrush="Transparent" Width="90" Height="80" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="40,15,10,10"
Command="{Binding LoadProductInfoCommand}" CommandParameter="A1589CA1-2DCC-4205-8422-20DBEF5AE173"/>
Command="{Binding LoadProductInfoCommand}" CommandParameter="C7FE8F01-8F7A-4916-B20F-CB9F3C7E76DF"/>
</Border>
<Border Grid.Row="0" Grid.Column="5">
<Button Background="Transparent" BorderBrush="Transparent" Width="100" Height="85" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="40,80,10,10"
@ -127,7 +127,7 @@
</Border>
<Border Grid.Row="3" Grid.Column="1">
<Button Background="Transparent" BorderBrush="Transparent" Width="90" Height="80" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="45,50,10,10"
Command="{Binding LoadProductInfoCommand}" CommandParameter="C7FE8F01-8F7A-4916-B20F-CB9F3C7E76DF"/>
Command="{Binding LoadProductInfoCommand}" CommandParameter="A1589CA1-2DCC-4205-8422-20DBEF5AE173"/>
</Border>
<Border Grid.Row="3" Grid.Column="3">
<Button Background="Transparent" BorderBrush="Transparent" Width="85" Height="130" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="35,30,10,10"

@ -32,12 +32,12 @@
<Border Grid.Column="1" Background="Transparent" CornerRadius="3" Margin="10,10">
<StackPanel Orientation="Vertical" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="0,10,0,0">
<Border Background="#1052AE" CornerRadius="5,5,5,0" Width="400" Height="40">
<TextBox Text="{Binding ProductInfo.productSeries}" Foreground="White" FontSize="20" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0"/>
<Border Background="#1052AE" CornerRadius="5,5,5,0" Width="500" Height="40">
<TextBox Text="{Binding ProductInfo.productSeries}" Foreground="White" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0"/>
</Border>
<TextBox Text="{Binding ProductInfo.productName}" Foreground="Black" FontSize="24" Margin="0,20"/>
<TextBox Text="{Binding ProductInfo.productName}" Foreground="Black" FontSize="18" Margin="0,20,0,0"/>
<Border Background="Transparent" CornerRadius="5" Width="150" Height="40" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,30,0,0">
<Border Background="Transparent" CornerRadius="5" Width="150" Height="40" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,10,0,0">
<Image Source="/Templates/image/certification.jpg" Stretch="Uniform"/>
</Border>
@ -57,18 +57,18 @@
<ColumnDefinition Width="7*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Width="600" Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,10,0,0">
<Border Background="#E6EDF6" CornerRadius="18" Height="40" Margin="0,10">
<StackPanel Grid.Column="0" Width="600" Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0">
<Border Background="#E6EDF6" CornerRadius="18" Height="35" Margin="0,5">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock FontFamily="/Templates/fonts/font_5w2octy6l1q/#iconfont" Text="&#xe61d;" Foreground="#1550B7" FontSize="22" VerticalAlignment="Center" Margin="5,0,0,0"/>
<TextBox Text="{Binding ProductFeature[0].productFeature}" Width="500" Foreground="#1550B7" FontSize="20" HorizontalAlignment="Left" VerticalAlignment="Center" />
<TextBlock FontFamily="/Templates/fonts/font_5w2octy6l1q/#iconfont" Text="&#xe61d;" Foreground="#1550B7" FontSize="16" VerticalAlignment="Center" Margin="5,0,0,0"/>
<TextBox Text="{Binding ProductFeature[0].productFeature}" Width="500" Foreground="#1550B7" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" />
</StackPanel>
</Border>
<Border Background="#E6EDF6" CornerRadius="18" Height="40" Margin="0,10">
<Border Background="#E6EDF6" CornerRadius="18" Height="35" Margin="0,5">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock FontFamily="/Templates/fonts/font_5w2octy6l1q/#iconfont" Text="&#xe61d;" Foreground="#1550B7" FontSize="22" VerticalAlignment="Center" Margin="5,0,0,0"/>
<TextBox Text="{Binding ProductFeature[1].productFeature}" Width="500" Foreground="#1550B7" FontSize="20" HorizontalAlignment="Left" VerticalAlignment="Center" />
<TextBlock FontFamily="/Templates/fonts/font_5w2octy6l1q/#iconfont" Text="&#xe61d;" Foreground="#1550B7" FontSize="16" VerticalAlignment="Center" Margin="5,0,0,0"/>
<TextBox Text="{Binding ProductFeature[1].productFeature}" Width="500" Foreground="#1550B7" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" />
</StackPanel>
</Border>
</StackPanel>
@ -98,9 +98,9 @@
<GradientStop Color="#FFFFFF" Offset="1.0"/>
</LinearGradientBrush>
</Border.Background>
<TextBox Text="{Binding ProductDescribe[0].describeTitle}" Width="300" Foreground="#1550B7" FontSize="20" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
<TextBox Text="{Binding ProductDescribe[0].describeTitle}" Width="300" Foreground="#1550B7" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
</Border>
<TextBox Grid.Row="1" Text="{Binding ProductDescribe[0].describeContent}" Width="800" TextWrapping="Wrap" FontSize="18"/>
<TextBox Grid.Row="1" Text="{Binding ProductDescribe[0].describeContent}" Width="800" TextWrapping="Wrap" FontSize="15"/>
</Grid>
</Border>
@ -117,9 +117,9 @@
<GradientStop Color="#FFFFFF" Offset="1.0"/>
</LinearGradientBrush>
</Border.Background>
<TextBox Text="{Binding ProductDescribe[1].describeTitle}" Width="300" Foreground="#1550B7" FontSize="20" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
<TextBox Text="{Binding ProductDescribe[1].describeTitle}" Width="300" Foreground="#1550B7" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
</Border>
<TextBox Grid.Row="1" Text="{Binding ProductDescribe[1].describeContent}" Width="800" TextWrapping="Wrap" FontSize="18" />
<TextBox Grid.Row="1" Text="{Binding ProductDescribe[1].describeContent}" Width="800" TextWrapping="Wrap" FontSize="15" />
</Grid>
</Border>
@ -136,9 +136,9 @@
<GradientStop Color="#FFFFFF" Offset="1.0"/>
</LinearGradientBrush>
</Border.Background>
<TextBox Text="{Binding ProductDescribe[2].describeTitle}" Width="300" Foreground="#1550B7" FontSize="20" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
<TextBox Text="{Binding ProductDescribe[2].describeTitle}" Width="300" Foreground="#1550B7" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
</Border>
<TextBox Grid.Row="1" Text="{Binding ProductDescribe[2].describeContent}" Width="800" TextWrapping="Wrap" FontSize="18"/>
<TextBox Grid.Row="1" Text="{Binding ProductDescribe[2].describeContent}" Width="800" TextWrapping="Wrap" FontSize="15"/>
</Grid>
</Border>
</Grid>
@ -164,7 +164,7 @@
<Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
<Border Grid.Row="0" BorderBrush="#1352B2" BorderThickness="10,0,0,0">
<TextBlock Text="测试数据" Foreground="#1550B7" FontSize="20" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
<TextBlock Text="测试数据" Foreground="#1550B7" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
</Border>
</Border>
@ -187,7 +187,7 @@
<Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
<Border Grid.Row="0" BorderBrush="#1352B2" BorderThickness="10,0,0,0">
<TextBlock Text="技术参数" Foreground="#1550B7" FontSize="20" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
<TextBlock Text="技术参数" Foreground="#1550B7" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
</Border>
</Border>
<Border Grid.Row="1" Grid.Column="0">
@ -204,32 +204,37 @@
<TextBox Text="通讯接口RS485M12-5针-B型-公头航空头)" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
</StackPanel>-->
<StackPanel Orientation="Vertical" VerticalAlignment="Top" HorizontalAlignment="Left" x:Name="ParameterStackPanelLeft">
<TextBox Text="{Binding ProductParams[0].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[1].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[2].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[3].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<ScrollViewer>
<StackPanel Orientation="Vertical" VerticalAlignment="Top" HorizontalAlignment="Left" x:Name="ParameterStackPanelLeft">
<TextBox Text="{Binding ProductParams[0].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[1].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[2].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[3].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[4].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[5].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[6].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[7].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[8].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
</StackPanel>
<TextBox Text="{Binding ProductParams[4].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[5].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[6].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[7].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[8].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
</StackPanel>
</ScrollViewer>
</Border>
<Border Grid.Row="1" Grid.Column="1">
<StackPanel Orientation="Vertical" VerticalAlignment="Top" HorizontalAlignment="Left" x:Name="ParameterStackPanelRight">
<TextBox Text="{Binding ProductParams[9].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[10].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[11].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[12].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<ScrollViewer>
<StackPanel Orientation="Vertical" VerticalAlignment="Top" HorizontalAlignment="Left" x:Name="ParameterStackPanelRight">
<TextBox Text="{Binding ProductParams[9].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[10].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[11].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[12].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[13].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[14].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[15].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[16].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[17].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
</StackPanel>
</ScrollViewer>
<TextBox Text="{Binding ProductParams[13].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[14].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[15].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[16].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBox Text="{Binding ProductParams[17].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
</StackPanel>
</Border>
</Grid>
@ -250,7 +255,7 @@
<Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
<Border Grid.Row="0" BorderBrush="#1352B2" BorderThickness="10,0,0,0">
<TextBlock Text="产品尺寸mm" Foreground="#1550B7" FontSize="20" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
<TextBlock Text="产品尺寸mm" Foreground="#1550B7" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
</Border>
</Border>
@ -269,7 +274,7 @@
<Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
<Border Grid.Row="0" BorderBrush="#1352B2" BorderThickness="10,0,0,0">
<TextBlock Text="产品尺寸mm" Foreground="#1550B7" FontSize="20" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
<TextBlock Text="产品尺寸mm" Foreground="#1550B7" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
</Border>
</Border>

@ -30,12 +30,12 @@
<Border Grid.Column="1" Background="Transparent" CornerRadius="3" Margin="10,10">
<StackPanel Orientation="Vertical" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="0,10,0,0">
<Border Background="#1052AE" CornerRadius="5,5,5,0" Width="400" Height="40">
<TextBlock Text="{Binding ProductInfo.productSeries}" Foreground="White" FontSize="20" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0"/>
<Border Background="#1052AE" CornerRadius="5,5,5,0" Width="500" Height="40">
<TextBlock Text="{Binding ProductInfo.productSeries}" Foreground="White" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0"/>
</Border>
<TextBlock Text="{Binding ProductInfo.productName}" Foreground="Black" FontSize="24" Margin="0,20"/>
<TextBlock Text="{Binding ProductInfo.productName}" Foreground="Black" FontSize="18" Margin="0,20,0,0"/>
<Border Background="Transparent" CornerRadius="5" Width="150" Height="40" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,30,0,0">
<Border Background="Transparent" CornerRadius="5" Width="150" Height="40" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,10,0,0">
<Image Source="/Templates/image/certification.jpg" Stretch="Uniform"/>
</Border>
@ -51,18 +51,18 @@
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Width="600" Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,10,0,0">
<Border Background="#E6EDF6" CornerRadius="18" Height="40" Margin="0,10">
<StackPanel Grid.Column="0" Width="600" Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0">
<Border Background="#E6EDF6" CornerRadius="18" Height="35" Margin="0,5">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock FontFamily="/Templates/fonts/font_5w2octy6l1q/#iconfont" Text="&#xe61d;" Foreground="#1550B7" FontSize="22" VerticalAlignment="Center" Margin="5,0,0,0"/>
<TextBlock Text="{Binding ProductFeature[0].productFeature}" Width="500" Foreground="#1550B7" FontSize="20" HorizontalAlignment="Left" VerticalAlignment="Center" />
<TextBlock FontFamily="/Templates/fonts/font_5w2octy6l1q/#iconfont" Text="&#xe61d;" Foreground="#1550B7" FontSize="16" VerticalAlignment="Center" Margin="5,0,0,0"/>
<TextBlock Text="{Binding ProductFeature[0].productFeature}" Width="500" Foreground="#1550B7" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" />
</StackPanel>
</Border>
<Border Background="#E6EDF6" CornerRadius="18" Height="40" Margin="0,10">
<Border Background="#E6EDF6" CornerRadius="18" Height="35" Margin="0,5">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock FontFamily="/Templates/fonts/font_5w2octy6l1q/#iconfont" Text="&#xe61d;" Foreground="#1550B7" FontSize="22" VerticalAlignment="Center" Margin="5,0,0,0"/>
<TextBlock Text="{Binding ProductFeature[1].productFeature}" Width="500" Foreground="#1550B7" FontSize="20" HorizontalAlignment="Left" VerticalAlignment="Center" />
<TextBlock FontFamily="/Templates/fonts/font_5w2octy6l1q/#iconfont" Text="&#xe61d;" Foreground="#1550B7" FontSize="16" VerticalAlignment="Center" Margin="5,0,0,0"/>
<TextBlock Text="{Binding ProductFeature[1].productFeature}" Width="500" Foreground="#1550B7" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" />
</StackPanel>
</Border>
</StackPanel>
@ -92,9 +92,9 @@
<GradientStop Color="#FFFFFF" Offset="1.0"/>
</LinearGradientBrush>
</Border.Background>
<TextBlock Text="{Binding ProductDescribe[0].describeTitle}" Width="300" Foreground="#1550B7" FontSize="20" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
<TextBlock Text="{Binding ProductDescribe[0].describeTitle}" Width="300" Foreground="#1550B7" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
</Border>
<TextBlock Grid.Row="1" Text="{Binding ProductDescribe[0].describeContent}" TextWrapping="Wrap" FontSize="18" Margin="0,10,0,0"/>
<TextBlock Grid.Row="1" Text="{Binding ProductDescribe[0].describeContent}" TextWrapping="Wrap" FontSize="15" Margin="0,2,0,0"/>
</Grid>
</Border>
@ -111,9 +111,9 @@
<GradientStop Color="#FFFFFF" Offset="1.0"/>
</LinearGradientBrush>
</Border.Background>
<TextBlock Text="{Binding ProductDescribe[1].describeTitle}" Width="300" Foreground="#1550B7" FontSize="20" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
<TextBlock Text="{Binding ProductDescribe[1].describeTitle}" Width="300" Foreground="#1550B7" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
</Border>
<TextBlock Grid.Row="1" Text="{Binding ProductDescribe[1].describeContent}" TextWrapping="Wrap" FontSize="18" Margin="0,10,0,0"/>
<TextBlock Grid.Row="1" Text="{Binding ProductDescribe[1].describeContent}" TextWrapping="Wrap" FontSize="15" Margin="0,2,0,0"/>
</Grid>
</Border>
@ -130,9 +130,9 @@
<GradientStop Color="#FFFFFF" Offset="1.0"/>
</LinearGradientBrush>
</Border.Background>
<TextBlock Text="{Binding ProductDescribe[2].describeTitle}" Width="300" Foreground="#1550B7" FontSize="20" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
<TextBlock Text="{Binding ProductDescribe[2].describeTitle}" Width="300" Foreground="#1550B7" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
</Border>
<TextBlock Grid.Row="1" Text="{Binding ProductDescribe[2].describeContent}" TextWrapping="Wrap" FontSize="18" Margin="0,10,0,0"/>
<TextBlock Grid.Row="1" Text="{Binding ProductDescribe[2].describeContent}" TextWrapping="Wrap" FontSize="15" Margin="0,2,0,0"/>
</Grid>
</Border>
</Grid>
@ -149,11 +149,29 @@
<RowDefinition Height="6*"/>
<RowDefinition Height="4*"/>
</Grid.RowDefinitions>
<Border Grid.Row="0" Background="White" BorderBrush="White" BorderThickness="2" CornerRadius="3" Margin="10,10">
<Image Source="{Binding ProductInfo.analyzeImage}" Stretch="Uniform"/>
<!--<Image Source="{Binding ProductInfo.analyzeImage}" Stretch="Uniform"/>-->
<Grid Margin="10,2,10,0">
<Grid.RowDefinitions>
<RowDefinition Height="2*"/>
<RowDefinition Height="9*"/>
</Grid.RowDefinitions>
<Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
<Border Grid.Row="0" BorderBrush="#1352B2" BorderThickness="10,0,0,0">
<TextBlock Text="测试数据" Foreground="#1550B7" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
</Border>
</Border>
<Border Grid.Row="1" Background="Transparent" BorderBrush="#5B93EA" BorderThickness="0" CornerRadius="3" Margin="10,10">
<Image Source="{Binding ProductInfo.analyzeImage}" Stretch="Uniform"/>
</Border>
</Grid>
</Border>
<Border Grid.Row="1" Background="White" BorderBrush="White" BorderThickness="2" CornerRadius="3" Margin="10,10" >
<Grid Margin="10,0,10,0">
<Grid Margin="10,2,10,0">
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="9*"/>
@ -165,7 +183,7 @@
<Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
<Border Grid.Row="0" BorderBrush="#1352B2" BorderThickness="10,0,0,0">
<TextBlock Text="技术参数" Foreground="#1550B7" FontSize="20" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
<TextBlock Text="技术参数" Foreground="#1550B7" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
</Border>
</Border>
<Border Grid.Row="1" Grid.Column="0">
@ -183,32 +201,30 @@
</StackPanel>-->
<StackPanel Orientation="Vertical" VerticalAlignment="Top" HorizontalAlignment="Left" x:Name="ParameterStackPanelLeft">
<TextBlock Text="RFID特性" Foreground="#1550B7" FontSize="16" TextWrapping="Wrap" Margin="0,10,0,0"/>
<TextBlock Text="{Binding ProductParams[0].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[1].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[2].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[3].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[0].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[1].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[2].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[3].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[4].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[5].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[6].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[7].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[8].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[4].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[5].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[6].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[7].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[8].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
</StackPanel>
</Border>
<Border Grid.Row="1" Grid.Column="1">
<StackPanel Orientation="Vertical" VerticalAlignment="Top" HorizontalAlignment="Left" x:Name="ParameterStackPanelRight">
<TextBlock Text="RFID特性" Foreground="#1550B7" FontSize="16" TextWrapping="Wrap" Margin="0,10,0,0"/>
<TextBlock Text="{Binding ProductParams[9].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[10].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[11].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[12].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<StackPanel Orientation="Vertical" VerticalAlignment="Top" HorizontalAlignment="Left" x:Name="ParameterStackPanelRight" >
<TextBlock Text="{Binding ProductParams[9].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[10].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[11].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[12].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[13].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[14].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[15].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[16].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[17].paramContent}" Width="380" Foreground="Gray" FontSize="14" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[13].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[14].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[15].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[16].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
<TextBlock Text="{Binding ProductParams[17].paramContent}" Width="380" Foreground="Gray" FontSize="12" TextWrapping="Wrap" Margin="0,5,0,0"/>
</StackPanel>
</Border>
@ -222,7 +238,7 @@
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Background="White" BorderBrush="White" BorderThickness="2" Margin="0,0,5,0">
<Grid Margin="10,0,10,0">
<Grid Margin="10,2,10,0">
<Grid.RowDefinitions>
<RowDefinition Height="2*"/>
<RowDefinition Height="9*"/>
@ -230,7 +246,7 @@
<Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
<Border Grid.Row="0" BorderBrush="#1352B2" BorderThickness="10,0,0,0">
<TextBlock Text="产品尺寸mm" Foreground="#1550B7" FontSize="20" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
<TextBlock Text="产品尺寸mm" Foreground="#1550B7" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
</Border>
</Border>
@ -241,7 +257,7 @@
</Grid>
</Border>
<Border Grid.Column="1" Background="White" BorderBrush="White" BorderThickness="2" Margin="5,0,0,0">
<Grid Margin="10,0,10,0">
<Grid Margin="10,2,10,0">
<Grid.RowDefinitions>
<RowDefinition Height="2*"/>
<RowDefinition Height="9*"/>
@ -249,7 +265,7 @@
<Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
<Border Grid.Row="0" BorderBrush="#1352B2" BorderThickness="10,0,0,0">
<TextBlock Text="产品尺寸mm" Foreground="#1550B7" FontSize="20" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
<TextBlock Text="产品尺寸mm" Foreground="#1550B7" FontSize="16" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,0,0"/>
</Border>
</Border>

@ -1,16 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<PackageIcon>Icon.png</PackageIcon>
</PropertyGroup>
<ItemGroup>
<None Remove="appsettings.json" />
<None Remove="Icon.png" />
<None Remove="Templates\fonts\font_5w2octy6l1q\iconfont.ttf" />
<None Remove="Templates\gif\loading.gif" />
<None Remove="Templates\image\background.jpg" />
@ -64,4 +64,11 @@
<Resource Include="Templates\image\login-background.jpg" />
</ItemGroup>
<ItemGroup>
<None Update="Icon.png">
<Pack>True</Pack>
<PackagePath>\</PackagePath>
</None>
</ItemGroup>
</Project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

@ -1,8 +1,12 @@
using CommunityToolkit.Mvvm.Input;
using AduSkin.Controls.Metro;
using AduSkin.Controls;
using CommunityToolkit.Mvvm.Input;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.VisualBasic;
using NVelocity.Util.Introspection;
using Prism.Events;
using SlnMesnac.Common;
using SlnMesnac.Config;
using SlnMesnac.Serilog;
using SlnMesnac.WPF.Attribute;
using SlnMesnac.WPF.Event;
@ -12,6 +16,13 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TouchSocket.Core;
using TouchSocket.Sockets;
using CommunityToolkit.Mvvm.ComponentModel;
using System.Windows.Documents;
using SlnMesnac.Business;
using static Microsoft.WindowsAPICodePack.Shell.PropertySystem.SystemProperties.System;
using System.Windows.Markup;
namespace SlnMesnac.WPF.ViewModel.Index
{
@ -20,14 +31,44 @@ namespace SlnMesnac.WPF.ViewModel.Index
{
public readonly SerilogHelper _logger;
private readonly AppConfig _appConfig;
private readonly StringChange _stringChange;
private readonly IEventAggregator _eventAggregator;
public IndexViewModel(SerilogHelper logger, IEventAggregator eventAggregator)
private readonly SerialBusiness _serialBusiness;
public IndexViewModel(SerilogHelper logger,AppConfig appConfig,StringChange stringChange, IEventAggregator eventAggregator, SerialBusiness serialBusiness)
{
_logger = logger;
_appConfig = appConfig;
_stringChange = stringChange;
_eventAggregator = eventAggregator;
_serialBusiness = serialBusiness;
_serialBusiness.OpenPort();
}
[ObservableProperty]
private string firstBatchEpcBarcode = string.Empty;
[ObservableProperty]
private string secondBatchEpcBarcode = string.Empty;
[ObservableProperty]
private string thirdBatchEpcBarcode = string.Empty;
[ObservableProperty]
private string fourthBatchEpcBarcode = string.Empty;
[ObservableProperty]
private string fifthBatchEpcBarcode = string.Empty;
[ObservableProperty]
private string sixthBatchEpcBarcode = string.Empty;
/// <summary>
/// 加载产品信息
/// </summary>
@ -42,5 +83,393 @@ namespace SlnMesnac.WPF.ViewModel.Index
var mainWindow = App.ServiceProvider.GetService<MainWindowViewModel>();
mainWindow.ControlOnClick("ProductInfo");
}
[RelayCommand]
private void ReadEpcCode(string deviceCode)
{
try
{
string configKey = string.Empty;
if (deviceCode == "050-B" || deviceCode == "I68")
{
configKey = "I68";
}
else
{
configKey = deviceCode;
}
var rfidConfig = _appConfig.rfidConfig.Where(x => x.equipKey == configKey).FirstOrDefault();
if (rfidConfig != null)
{
var session = rfidConfig.session as TcpClient;
if (session != null)
{
var waitClinet = session.CreateWaitingClient(new WaitingOptions()
{
FilterFunc = response =>
{
return true;
}
});
byte[] buffer = null;
if (deviceCode == "I90" || deviceCode == "RFR-RFLY")
{
buffer = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x03, 0x00, 0x10, 0x00, 0x04 };
}
if (deviceCode == "050-B") //站1
{
buffer = new byte[] { 0x00, 0x10, 0x00, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x02, 0x00, 0x04 };
}
if (deviceCode == "I68") //站2
{
buffer = new byte[] { 0x00, 0x10, 0x00, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x06, 0x00, 0x04 };
}
ResponsedData responsedData = waitClinet.SendThenResponse(buffer, 5000);
string str = _stringChange.bytesToHexStr(responsedData.Data, responsedData.Data.Length).Substring(18, 16);
SetEpcBarCode(deviceCode, str);
NoticeManager.NotifiactionShow.AddNotifiaction(new NotifiactionModel()
{
Title = "通知",
Content = $"{deviceCode}设备读取成功:{str}",
NotifiactionType = EnumPromptType.Success
});
}
else
{
NoticeManager.NotifiactionShow.AddNotifiaction(new NotifiactionModel()
{
Title = "通知",
Content = $"{deviceCode}设备未连接",
NotifiactionType = EnumPromptType.Warn
});
}
}
else
{
NoticeManager.NotifiactionShow.AddNotifiaction(new NotifiactionModel()
{
Title = "通知",
Content = $"{deviceCode}设备未获取到配置信息",
NotifiactionType = EnumPromptType.Warn
});
}
}catch (Exception ex)
{
NoticeManager.NotifiactionShow.AddNotifiaction(new NotifiactionModel()
{
Title = "通知",
Content = $"条码读取异常:{ex.Message}",
NotifiactionType = EnumPromptType.Error
});
}
}
[RelayCommand]
private void WriteEpcCode(string deviceCode)
{
try
{
string configKey = string.Empty;
if (deviceCode == "050-B" || deviceCode == "I68")
{
configKey = "I68";
}
else
{
configKey = deviceCode;
}
var rfidConfig = _appConfig.rfidConfig.Where(x => x.equipKey == configKey).FirstOrDefault();
if (rfidConfig != null)
{
var session = rfidConfig.session as TcpClient;
if (session != null)
{
var waitClinet = session.CreateWaitingClient(new WaitingOptions()
{
FilterFunc = response =>
{
return true;
}
});
byte[] buffer = null;
if (deviceCode == "I90" || deviceCode == "RFR-RFLY")
{
byte[] FixedPart = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x10, 0x00, 0x10, 0x00, 0x04};
string epcBarCode = string.Empty;
if (deviceCode == "I90")
{
epcBarCode = FirstBatchEpcBarcode;
}
else
{
epcBarCode = SecondBatchEpcBarcode;
}
int inputByteLength = epcBarCode.Length / 2;
byte[] fixedPartWithLength = new byte[FixedPart.Length + 1];
Array.Copy(FixedPart, fixedPartWithLength, FixedPart.Length);
fixedPartWithLength[fixedPartWithLength.Length - 1] = (byte)inputByteLength;
byte[] inputBytes = Enumerable.Range(0, epcBarCode.Length)
.Where(x => x % 2 == 0)
.Select(x => Convert.ToByte(FirstBatchEpcBarcode.Substring(x, 2), 16))
.ToArray();
buffer = new byte[fixedPartWithLength.Length + inputBytes.Length];
Array.Copy(fixedPartWithLength, buffer, fixedPartWithLength.Length);
Array.Copy(inputBytes, 0, buffer, fixedPartWithLength.Length, inputBytes.Length);
}
if (deviceCode == "050-B")
{
buffer = new byte[] { 0x00, 0x82, 0x00, 0x00, 0x00, 0x1F, 0x01, 0x10, 0x00, 0x00, 0x00, 0x0C, 0x18, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
byte[] inputBytes = Enumerable.Range(0, FourthBatchEpcBarcode.Length)
.Where(x => x % 2 == 0)
.Select(x => Convert.ToByte(FourthBatchEpcBarcode.Substring(x, 2), 16))
.ToArray();
buffer = buffer.Concat(inputBytes).ToArray();
}
if (deviceCode == "I68")
{
buffer = new byte[] { 0x00, 0x89, 0x00, 0x00, 0x00, 0x27, 0x01, 0x10, 0x00, 0x00, 0x00, 0x10, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
byte[] inputBytes = Enumerable.Range(0, ThirdBatchEpcBarcode.Length)
.Where(x => x % 2 == 0)
.Select(x => Convert.ToByte(ThirdBatchEpcBarcode.Substring(x, 2), 16))
.ToArray();
buffer = buffer.Concat(inputBytes).ToArray();
}
ResponsedData responsedData = waitClinet.SendThenResponse(buffer, 5000);
//string str = _stringChange.bytesToHexStr(responsedData.Data, responsedData.Data.Length).Substring(18, 16);
//SetEpcBarCode(deviceCode, str);
NoticeManager.NotifiactionShow.AddNotifiaction(new NotifiactionModel()
{
Title = "通知",
Content = $"{deviceCode}设备写入成功",
NotifiactionType = EnumPromptType.Success
});
}
else
{
NoticeManager.NotifiactionShow.AddNotifiaction(new NotifiactionModel()
{
Title = "通知",
Content = $"{deviceCode}设备未连接",
NotifiactionType = EnumPromptType.Warn
});
}
}
else
{
NoticeManager.NotifiactionShow.AddNotifiaction(new NotifiactionModel()
{
Title = "通知",
Content = $"{deviceCode}设备未获取到配置信息",
NotifiactionType = EnumPromptType.Warn
});
}
}
catch (Exception ex)
{
NoticeManager.NotifiactionShow.AddNotifiaction(new NotifiactionModel()
{
Title = "通知",
Content = $"{deviceCode}设备写入异常:{ex.Message}",
NotifiactionType = EnumPromptType.Error
});
}
}
[RelayCommand]
private void ReadEpcCodeByRtu(string deviceCode)
{
try
{
byte[] buffer = null;
if (deviceCode == "I40") //站1
{
buffer = new byte[] { 0x01, 0x03, 0x00, 0x10, 0x00, 0x04, 0x45, 0xCC, };
}
if (deviceCode == "RFR-050") //站2
{
buffer = new byte[] { 0x02, 0x03, 0x00, 0x10, 0x00, 0x04, 0x45, 0xFF, };
}
byte[] response = _serialBusiness.SendDataAndWaitForResponse(buffer);
if (response.Length == 13)
{
string str = _stringChange.bytesToHexStr(response, response.Length).Substring(6, 16);
SetEpcBarCode(deviceCode, str);
NoticeManager.NotifiactionShow.AddNotifiaction(new NotifiactionModel()
{
Title = "通知",
Content = $"{deviceCode}设备读取成功:{str}",
NotifiactionType = EnumPromptType.Success
});
}
else
{
SetEpcBarCode(deviceCode, string.Empty);
NoticeManager.NotifiactionShow.AddNotifiaction(new NotifiactionModel()
{
Title = "通知",
Content = $"{deviceCode}设备读取失败",
NotifiactionType = EnumPromptType.Success
});
}
}
catch (Exception ex)
{
NoticeManager.NotifiactionShow.AddNotifiaction(new NotifiactionModel()
{
Title = "通知",
Content = $"条码读取异常:{ex.Message}",
NotifiactionType = EnumPromptType.Error
});
}
}
[RelayCommand]
private void WriteEpcCodeByRtu(string deviceCode)
{
try
{
//站1
//01 10 00 10 00 04 08 11 11 22 22 11 11 22 22 85 41
//01 10 00 10 00 04 08 11 11 11 11 11 11 11 11 85 41
//站2 02 10 00 10 00 04 08 11 11 11 11 11 11 11 11 93 62
byte[] buffer = null;
if (deviceCode == "I40")
{
buffer = new byte[] { 0x01, 0x10, 0x00, 0x10, 0x00, 0x04, 0x08, };
byte[] inputBytes = Enumerable.Range(0, SixthBatchEpcBarcode.Length)
.Where(x => x % 2 == 0)
.Select(x => Convert.ToByte(SixthBatchEpcBarcode.Substring(x, 2), 16))
.ToArray();
buffer = buffer.Concat(inputBytes).ToArray();
byte[] crcBytes = CRCCalc(buffer);
buffer = buffer.Concat(crcBytes).ToArray();
}
if (deviceCode == "RFR-050")
{
buffer = new byte[] { 0x02, 0x10, 0x00, 0x10, 0x00, 0x04, 0x08, };
byte[] inputBytes = Enumerable.Range(0, FifthBatchEpcBarcode.Length)
.Where(x => x % 2 == 0)
.Select(x => Convert.ToByte(FifthBatchEpcBarcode.Substring(x, 2), 16))
.ToArray();
buffer = buffer.Concat(inputBytes).ToArray();
byte[] crcBytes = CRCCalc(buffer);
buffer = buffer.Concat(crcBytes).ToArray();
}
_logger.Info($"{deviceCode}发送:{_stringChange.bytesToHexStr(buffer, buffer.Length)}");
var responsedData = _serialBusiness.SendDataAndWaitForResponse(buffer);
NoticeManager.NotifiactionShow.AddNotifiaction(new NotifiactionModel()
{
Title = "通知",
Content = $"{deviceCode}设备写入成功",
NotifiactionType = EnumPromptType.Success
});
}
catch (Exception ex)
{
NoticeManager.NotifiactionShow.AddNotifiaction(new NotifiactionModel()
{
Title = "通知",
Content = $"{deviceCode}设备写入异常:{ex.Message}",
NotifiactionType = EnumPromptType.Error
});
}
}
public static byte[] CRCCalc(byte[] data)
{
int crc = 0xffff;
for (int i = 0; i < data.Length; i++)
{
crc ^= data[i];
for (int j = 0; j < 8; j++)
{
int temp = crc & 1;
crc >>= 1;
crc &= 0x7fff;
if (temp == 1)
{
crc ^= 0xa001;
}
crc &= 0xffff;
}
}
byte[] crc16 = new byte[2];
crc16[1] = (byte)((crc >> 8) & 0xff);
crc16[0] = (byte)(crc & 0xff);
return crc16;
}
private void SetEpcBarCode(string deviceCode,string str)
{
switch (deviceCode)
{
case "I90":
FirstBatchEpcBarcode = str;
break;
case "RFR-RFLY":
SecondBatchEpcBarcode = str;
break;
case "I68":
ThirdBatchEpcBarcode = str;
break;
case "050-B":
FourthBatchEpcBarcode = str;
break;
case "RFR-050":
FifthBatchEpcBarcode = str;
break;
case "I40":
SixthBatchEpcBarcode= str;
break;
default:
break;
}
}
}
}

@ -8,7 +8,7 @@
},
"AllowedHosts": "*",
"AppConfig": {
"logPath": "E:\\桌面\\SlnMesnac\\SlnMesnac.WPF\\bin\\Debug\\net6.0-windows",
"logPath": "F:\\桌面\\RFID 展会软件\\程序设计\\RFID.Exhibition\\SlnMesnac.WPF\\bin\\Debug",
"SqlConfig": [
{
"configId": "iot",
@ -17,40 +17,28 @@
"connStr": "server=1.13.177.47;Port=3306;Database=rfid_exhibition;Uid=root;Pwd=Haiwei123456;"
}
],
"PlcConfig": [
{
"configId": 1,
"plcType": "MelsecBinaryPlc",
"plcIp": "127.0.0.1",
"plcPort": 6000,
"plcKey": "mcs",
"isFlage": true
},
{
"configId": 2,
"plcType": "MelsecBinaryPlc",
"plcIp": "127.0.0.1",
"plcPort": 6001,
"plcKey": "cwss",
"isFlage": true
}
],
"RfidConfig": [
{
"configId": 1,
"equipIp": "127.0.0.1",
"equipPort": 6003,
"equipKey": "test1",
"equipPort": 11,
"equipKey": "I90",
"isFlage": true
},
{
"configId": 2,
"equipIp": "127.0.0.1",
"equipPort": 6004,
"equipKey": "test2",
"equipPort": 11,
"equipKey": "22",
"isFlage": true
},
{
"configId": 3,
"equipIp": "127.0.0.1",
"equipPort": 11,
"equipKey": "I68",
"isFlage": true
}
],
"redisConfig": "175.27.215.92:6379,password=redis@2023"
]
}
}

Loading…
Cancel
Save