1.修改了部分界面

2.添加一个直接读取的按钮
3.新增GPI部分
4.修改日志记录
master
zhangxy 2 months ago
parent 9f26c7576b
commit 118b9f7cff

Binary file not shown.

@ -66,6 +66,9 @@
<Reference Include="K4os.Hash.xxHash, Version=1.0.8.0, Culture=neutral, PublicKeyToken=32cd54395057cec3, processorArchitecture=MSIL">
<HintPath>..\packages\K4os.Hash.xxHash.1.0.8\lib\net462\K4os.Hash.xxHash.dll</HintPath>
</Reference>
<Reference Include="Mesnac.Log">
<HintPath>.\Mesnac.Log.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.5.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>

@ -5,7 +5,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:SocketExample"
mc:Ignorable="d"
Title="MultiClientsWindow" Height="450" Width="800">
Title="RFID读写器多终端监控软件v1.01" Height="450" Width="800">
<Window.Resources>
<Style x:Key="SocketButton" TargetType="Button" BasedOn="{StaticResource BaseButtonStyle}">
@ -56,7 +56,7 @@
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Orientation="Horizontal" Margin="10" Height="30">
<TextBlock Text="Panel生成数量:" VerticalAlignment="Center" Margin="0,0,10,0"/>
<TextBlock Text="监控终端生成数量:" VerticalAlignment="Center" Margin="0,0,10,0"/>
<TextBox x:Name="CountTextBox" Width="100" Margin="0,0,10,0" VerticalAlignment="Center"/>
<Button Content="生成" Click="GenerateButton_Click" Width="50" Margin="10 0 0 0" Style="{StaticResource SocketButton}"/>
<Button Content="清空" Click="ClearButton_Click" Width="50" Margin="10 0 0 0" Style="{StaticResource SocketButton}"/>
@ -80,14 +80,15 @@
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<Label Content="IP地址" Height="30" Margin="10 8 0 0"/>
<TextBox TextWrapping="Wrap" x:Name="IPtextbox" Text="{Binding IPtext}" Width="75" Height="30" Margin="5 8 0 0"/>
<TextBox TextWrapping="Wrap" x:Name="IPtextbox" Text="{Binding IPtext}" Width="100" Height="20" Margin="5 8 0 0"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<Label Content="端口号" Height="30" Margin="10 8 0 0"/>
<TextBox TextWrapping="Wrap" Text="{Binding Porttext}" x:Name="Porttextbox" Width="45" Height="30" Margin="5 8 0 0"/>
<TextBox TextWrapping="Wrap" Text="{Binding Porttext}" x:Name="Porttextbox" Width="45" Height="20" Margin="5 8 0 0"/>
<Button Content="读取" Height="20" Width="40" Margin="10 8 0 0" Command="{Binding _readcomn}" Style="{StaticResource SocketButton}"/>
</StackPanel>
</StackPanel>
<Ellipse Width="20" Height="20" Fill="{Binding StateColour}" Margin="30 8 0 0"/>
<Ellipse Width="20" Height="20" Fill="{Binding StateColour}" Margin="20 8 0 0"/>
<Label Height="30" Content="{Binding LinkState}" Margin="2 8 0 0"></Label>
<Button Content="连接" Height="30" Margin="10 8 0 0" Command="{Binding _linkcomn}" Style="{StaticResource SocketButton}"/>
<Button Content="清空" Height="30" Margin="10 8 0 0" Command="{Binding _clearcomn}" Style="{StaticResource SocketButton}"/>
@ -165,9 +166,10 @@
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Label Grid.Row="0" HorizontalAlignment="Center" Content="GPIO状态"></Label>
<Grid Grid.Row="1">
<Grid Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
@ -177,25 +179,57 @@
<StackPanel Grid.Column="0" Orientation="Horizontal">
<Label Content="GPO1" HorizontalAlignment="Left"/>
<Border BorderBrush="Black" BorderThickness="0.5">
<Label Content="{Binding GPIO1}"></Label>
<Label Content="{Binding GPO1}"></Label>
</Border>
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Horizontal">
<Label Content="GPO2" HorizontalAlignment="Left"/>
<Border BorderBrush="Black" BorderThickness="0.5">
<Label Content="{Binding GPIO2}"></Label>
<Label Content="{Binding GPO2}"></Label>
</Border>
</StackPanel>
<StackPanel Grid.Column="2" Orientation="Horizontal">
<Label Content="GPO3" HorizontalAlignment="Left"/>
<Border BorderBrush="Black" BorderThickness="0.5">
<Label Content="{Binding GPIO3}"></Label>
<Label Content="{Binding GPO3}"></Label>
</Border>
</StackPanel>
<StackPanel Grid.Column="3" Orientation="Horizontal">
<Label Content="GPO4" HorizontalAlignment="Left"/>
<Border BorderBrush="Black" BorderThickness="0.5">
<Label Content="{Binding GPIO4}"></Label>
<Label Content="{Binding GPO4}"></Label>
</Border>
</StackPanel>
</Grid>
<Grid Grid.Row="1" Margin="0 0 0 5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Orientation="Horizontal">
<Label Content="GPI1" HorizontalAlignment="Left" Margin="0 0 6 0"/>
<Border BorderBrush="Black" BorderThickness="0.5">
<Label Content="{Binding GPI1}"></Label>
</Border>
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Horizontal">
<Label Content="GPI2" HorizontalAlignment="Left" Margin="0 0 6 0"/>
<Border BorderBrush="Black" BorderThickness="0.5">
<Label Content="{Binding GPI2}"></Label>
</Border>
</StackPanel>
<StackPanel Grid.Column="2" Orientation="Horizontal">
<Label Content="GPI3" HorizontalAlignment="Left" Margin="0 0 6 0"/>
<Border BorderBrush="Black" BorderThickness="0.5">
<Label Content="{Binding GPI3}"></Label>
</Border>
</StackPanel>
<StackPanel Grid.Column="3" Orientation="Horizontal">
<Label Content="GPI4" HorizontalAlignment="Left" Margin="0 0 6 0"/>
<Border BorderBrush="Black" BorderThickness="0.5">
<Label Content="{Binding GPI4}"></Label>
</Border>
</StackPanel>
</Grid>
@ -210,18 +244,19 @@
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Label Grid.Row="0" Content="版本信息" HorizontalAlignment="Center"/>
<StackPanel Grid.Row="1" Orientation="Horizontal">
<Label Content="模块型号:" HorizontalAlignment="Left"/>
<Label Content="{Binding moduleInfo}"></Label>
</StackPanel>
<StackPanel Grid.Row="2" Orientation="Horizontal">
<Label Content="主板硬件号:" HorizontalAlignment="Left"/>
<Label Content="{Binding motherboardHardware}"></Label>
</StackPanel>
<StackPanel Grid.Row="3" Orientation="Horizontal">
<Label Content="主板固件号:" HorizontalAlignment="Left"/>
<Label Content="{Binding motherboardFirmware}"></Label>
</StackPanel>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Content="模块型号:" HorizontalAlignment="Left"/>
<Label Grid.Column="1" Content="{Binding moduleInfo}"></Label>
<Label Grid.Column="2" Content="主板固件号:" HorizontalAlignment="Left"/>
<Label Grid.Column="3" Content="{Binding motherboardFirmware}"></Label>
</Grid>
</Grid>
</Border>
</StackPanel>

@ -16,6 +16,7 @@ using System.Windows;
using System.Windows.Input;
using System.Xml;
using K4os.Compression.LZ4.Streams.Abstractions;
using Mesnac.Log;
using Org.BouncyCastle.Utilities.Encoders;
using TouchSocket.Core;
using TouchSocket.Sockets;
@ -63,14 +64,24 @@ namespace SocketExample
private string _epcasc;//ASC2码 EPC信息
public string EPCinfo { get => _epcinfo; set { _epcinfo = value; OnPropertyChanged(); } }
public string EPCASC { get => _epcasc; set { _epcasc = value; OnPropertyChanged(); } }
private string _gpio1;
private string _gpio2;
private string _gpio3;
private string _gpio4;//GPIO1-4状态
public string GPIO1 { get => _gpio1; set { _gpio1 = value; OnPropertyChanged(); } }
public string GPIO2 { get => _gpio2; set { _gpio2 = value; OnPropertyChanged(); } }
public string GPIO3 { get => _gpio3; set { _gpio3 = value; OnPropertyChanged(); } }
public string GPIO4 { get => _gpio4; set { _gpio4 = value; OnPropertyChanged(); } }
private string _gpo1;
private string _gpo2;
private string _gpo3;
private string _gpo4;//GPO1-4状态
private string _gpi1;
private string _gpi2;
private string _gpi3;
private string _gpi4;//GPIO1-4状态
public string GPO1 { get => _gpo1; set { _gpo1 = value; OnPropertyChanged(); } }
public string GPO2 { get => _gpo2; set { _gpo2 = value; OnPropertyChanged(); } }
public string GPO3 { get => _gpo3; set { _gpo3 = value; OnPropertyChanged(); } }
public string GPO4 { get => _gpo4; set { _gpo4 = value; OnPropertyChanged(); } }
public string GPI1 { get => _gpi1; set { _gpi1 = value; OnPropertyChanged(); } }
public string GPI2 { get => _gpi2; set { _gpi2 = value; OnPropertyChanged(); } }
public string GPI3 { get => _gpi3; set { _gpi3 = value; OnPropertyChanged(); } }
public string GPI4 { get => _gpi4; set { _gpi4 = value; OnPropertyChanged(); } }
private string _moduleinfo;
private string _motherboardhardware;
@ -85,6 +96,8 @@ namespace SocketExample
public LinkCommand linkcomn;//链接命令
public LinkCommand readcomn;//读取命令
public LinkCommand sendcomn;//发送命令
public LinkCommand disconnectcomn;//断连命令
@ -96,6 +109,7 @@ namespace SocketExample
{
Text = $"客户端{index + 1}";
linkcomn = new LinkCommand(Button_Link);//绑定按钮的链接事件
readcomn = new LinkCommand(Button_Read);
sendcomn = new LinkCommand(Button_Click_Send);//绑定发送按钮的事件
disconnectcomn = new LinkCommand(Button_disconnect);//绑定断连按钮的事件
clearcomn = new LinkCommand(Button_clear);//绑定清空按钮的事件
@ -121,14 +135,20 @@ namespace SocketExample
Countinfo = "00";
EPCASC = "###";
EPCinfo = "###";
GPIO1 = "低";
GPIO2 = "低";
GPIO3 = "低";
GPIO4 = "低";
GPO1 = "低";
GPO2 = "低";
GPO3 = "低";
GPO4 = "低";
GPI1 = "低";
GPI2 = "低";
GPI3 = "低";
GPI4 = "低";
}
public LinkCommand _linkcomn { get { return linkcomn; } }
public LinkCommand _readcomn { get { return readcomn; } }
public LinkCommand _sendcomn { get { return sendcomn; } }
public LinkCommand _disconnectcomn { get { return disconnectcomn; } }
@ -182,6 +202,7 @@ namespace SocketExample
items.Add(new TagItem(taglist[j].EPCstring, EPCinfo, taglist[j].RSSI.ToString(), taglist[j].Count.ToString(), Timeinfo));
startTemp += 16 + TempLength;
writeToTxt(path, $"EPC:{taglist[j].EPCstring}\nHEX:{EPCinfo}\nRSSI:{taglist[j].RSSI.ToString()} Count:{taglist[j].Count.ToString()} Time:{Timeinfo}\n____________________________");
//LogService.Instance.Debug("");
}
TagItems = items;
@ -195,35 +216,57 @@ namespace SocketExample
case "81":
//获取GPIO状态16进制转二进制
string GPIOBinInfo = Convert.ToString(Convert.ToInt32(readStateString.Substring(12, 2), 16), 2).PadLeft(4, '0');
for (int j = 0; j < GPIOBinInfo.Length; j++)
string GPIBinInfo = Convert.ToString(Convert.ToInt32(readStateString.Substring(8, 2), 16), 2).PadLeft(8, '0');
string GPOBinInfo = Convert.ToString(Convert.ToInt32(readStateString.Substring(10, 2), 16), 2).PadLeft(8, '0');
for (int j = 4; j < GPOBinInfo.Length; j++)
{
//按位判断GPIO状态
switch (j)
{
case 0:
if (GPIOBinInfo.Substring(j, 1) == "1")
GPIO4 = "高";
case 4:
if (GPOBinInfo.Substring(j, 1) == "1")
GPO4 = "高";
else
GPIO4 = "低";
GPO4 = "低";
if (GPIBinInfo.Substring(j, 1) == "1")
GPI4 = "高";
else
GPI4 = "低";
break;
case 1:
if (GPIOBinInfo.Substring(j, 1) == "1")
GPIO3 = "高";
case 5:
if (GPOBinInfo.Substring(j, 1) == "1")
GPO3 = "高";
else
GPIO3 = "低";
GPO3 = "低";
if (GPIBinInfo.Substring(j, 1) == "1")
GPI3 = "高";
else
GPI3 = "低";
break;
case 2:
if (GPIOBinInfo.Substring(j, 1) == "1")
GPIO2 = "高";
case 6:
if (GPOBinInfo.Substring(j, 1) == "1")
GPO2 = "高";
else
GPIO2 = "低";
GPO2 = "低";
if (GPIBinInfo.Substring(j, 1) == "1")
GPI2 = "高";
else
GPI2 = "低";
break;
case 3:
if (GPIOBinInfo.Substring(j, 1) == "1")
GPIO1 = "高";
case 7:
if (GPOBinInfo.Substring(j, 1) == "1")
GPO1 = "高";
else
GPIO1 = "低";
GPO1 = "低";
if (GPIBinInfo.Substring(j, 1) == "1")
GPI1 = "高";
else
GPI1 = "低";
break;
default:
break;
@ -377,6 +420,12 @@ namespace SocketExample
}
}
void Button_Read()
{
byte[] data = strToToHexByte("AA 55 02 02 03 E8 EB 0D");//获取1000ms内标签信息
client.Send(data);
}
void Button_Click_Send()//发送按钮的事件
{
try

Loading…
Cancel
Save