1.调整了标签信息的显示格式

2.修复了时间显示
master
zhangxy 2 weeks ago
parent 6f52dd8a1d
commit c85cf6f0b4

@ -6,7 +6,7 @@
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
xmlns:local="clr-namespace:SocketExample"
mc:Ignorable="d"
Title="RFID读写器多终端监控软件v1.041" Height="450" Width="800">
Title="RFID读写器多终端监控软件v1.05" Height="450" Width="800">
<Window.Resources>
<Style x:Key="SocketButton" TargetType="Button" BasedOn="{StaticResource BaseButtonStyle}">
@ -135,34 +135,34 @@
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Orientation="Horizontal">
<Label Content="标签:"/>
<TextBlock Text="{Binding EPCinfo}" VerticalAlignment="Center"></TextBlock>
<Label Content="接收消息:"/>
<TextBlock Text="{Binding OriginMessage}" VerticalAlignment="Center"></TextBlock>
</StackPanel>
<StackPanel Grid.Row="1" Orientation="Horizontal">
<Label Content="标签:"/>
<TextBlock Text="{Binding EPCinfo}" FontSize="15" FontWeight="Bold" Foreground="Green" VerticalAlignment="Center"></TextBlock>
</StackPanel>
<StackPanel Grid.Row="2" Orientation="Horizontal">
<Label Content="HEX:"/>
<TextBlock Text="{Binding EPCASC}" VerticalAlignment="Center"></TextBlock>
</StackPanel>
<Grid Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Row="3" Orientation="Horizontal">
<StackPanel Grid.Column="0" Orientation="Horizontal">
<Label Content="RSSI:"/>
<TextBlock Text="{Binding RSSIinfo}" VerticalAlignment="Center"/>
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Horizontal">
<Label Content="Count:"/>
<Label Margin="5 0 0 0" Content="Count:"/>
<TextBlock Text="{Binding Countinfo}" VerticalAlignment="Center"/>
</StackPanel>
<StackPanel Grid.Column="2" Orientation="Horizontal">
<Label Content="Time:"/>
<Label Margin="5 0 0 0" Content="Time:"/>
<TextBlock Text="{Binding Timeinfo}" VerticalAlignment="Center"/>
</StackPanel>
</Grid>
</StackPanel>
</Grid>
</ScrollViewer>

@ -20,6 +20,7 @@ using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Shapes;
using System.Xml;
using GalaSoft.MvvmLight.Command;
using Google.Protobuf.WellKnownTypes;
@ -275,7 +276,7 @@ namespace SocketExample
Array.Copy(data, 0, newData, 0, 5); // 复制前半部分 // 插入新值
Array.Copy(data, 5, newData, 5, 4);
Array.Copy(data, 5, newData, 6, data.Length - 5);
Timeinfo = $"{currentTime} {time.Substring(0, 10)}";//获取时间
Timeinfo = $"{time}";//获取时间
string NewDataString = BitConverter.ToString(newData).Replace("-", " ");
int startTemp = 33;
@ -288,12 +289,13 @@ namespace SocketExample
{
int TempLength = taglist[j].EPCstring.Length * 3 - 1;
EPCinfo = NewDataString.Substring(startTemp, TempLength);
items.Add(new TagItem(taglist[j].EPCstring, EPCinfo, taglist[j].RSSI.ToString(), taglist[j].Count.ToString(), Timeinfo));
items.Add(new TagItem(hexString,taglist[j].EPCstring, EPCinfo, taglist[j].RSSI.ToString(), taglist[j].Count.ToString(), Timeinfo));
startTemp += 16 + TempLength;
string year = DateTime.Now.ToString("yyyy-MM-dd");
EnsureFolderExists($"日志文件夹/{year}/{Text}");
path = $"日志文件夹/{year}/{Text}/" + path + Text + ".txt";
writeToTxt(path, $"EPC:{taglist[j].EPCstring}\nHEX:{EPCinfo}\nRSSI:{taglist[j].RSSI.ToString()} Count:{taglist[j].Count.ToString()} Time:{Timeinfo}\n____________________________");
path = $"日志文件夹/{year}/{Text}/" + path + Text +"("+ IPtext+")"+ ".txt";
EnsureTxtExists(path,Text, IPtext, Porttext);
writeToTxt(path, $"接收消息:{hexString}\nEPC:{taglist[j].EPCstring}\nHEX:{EPCinfo}\nRSSI:{taglist[j].RSSI.ToString()} Count:{taglist[j].Count.ToString()} Time:{Timeinfo}\n____________________________");
path = "";
//LogService.Instance.Debug("");
@ -311,7 +313,7 @@ namespace SocketExample
case "02":
try
{
Timeinfo = $"{currentTime} {time.Substring(0, 10)}";//获取时间
Timeinfo = $"{time}";//获取时间
int startTemp = 33;
@ -323,12 +325,13 @@ namespace SocketExample
{
int TempLength = taglist[j].EPCstring.Length * 3 -1;
EPCinfo = hexString.Substring(startTemp, TempLength);
items.Add(new TagItem(taglist[j].EPCstring, EPCinfo, taglist[j].RSSI.ToString(), taglist[j].Count.ToString(), Timeinfo));
items.Add(new TagItem(hexString,taglist[j].EPCstring, EPCinfo, taglist[j].RSSI.ToString(), taglist[j].Count.ToString(), Timeinfo));
startTemp += 16 + TempLength;
string year = DateTime.Now.ToString("yyyy-MM-dd");
EnsureFolderExists($"日志文件夹/{year}/{Text}");
path = $"日志文件夹/{year}/{Text}/" + path + Text + ".txt";
writeToTxt(path, $"EPC:{taglist[j].EPCstring}\nHEX:{EPCinfo}\nRSSI:{taglist[j].RSSI.ToString()} Count:{taglist[j].Count.ToString()} Time:{Timeinfo}\n____________________________");
path = $"日志文件夹/{year}/{Text}/" + path + Text + "(" + IPtext + ")" + ".txt";
EnsureTxtExists(path, Text, IPtext, Porttext);
writeToTxt(path, $"接收消息:{hexString}\nEPC:{taglist[j].EPCstring}\nHEX:{EPCinfo}\nRSSI:{taglist[j].RSSI.ToString()} Count:{taglist[j].Count.ToString()} Time:{Timeinfo}\n____________________________");
path = "";
//LogService.Instance.Debug("");
@ -473,16 +476,23 @@ namespace SocketExample
{
switch (commandState)
{
case "01":
case "02":
Infotext += "未读取到\n";
RSSIinfo = "##";//未读取到数值时清空数据为初始值
RSSIinfo = "No Read";//未读取到数值时清空数据为初始值
Countinfo = "00";
EPCASC = "###";
EPCinfo = "###";
Timeinfo = $" {currentTime}\n{time.Substring(0, 10)}";//获取时间
EPCASC = "No Read";
EPCinfo = "No Read";
Timeinfo = $" {time}";//获取时间
ObservableCollection<TagItem> items = new ObservableCollection<TagItem>();
items.Add(new TagItem(EPCASC, EPCinfo, RSSIinfo, Countinfo, Timeinfo));
items.Add(new TagItem(hexString,EPCASC, EPCinfo, RSSIinfo, Countinfo, Timeinfo));
TagItems = items;
string year = DateTime.Now.ToString("yyyy-MM-dd");
EnsureFolderExists($"日志文件夹/{year}/{Text}");
path = $"日志文件夹/{year}/{Text}/" + path + Text + "(" + IPtext + ")" + ".txt";
EnsureTxtExists(path, Text, IPtext, Porttext);
writeToTxt(path, $"接收消息:{hexString}\nEPC:{EPCASC}\nHEX:{EPCinfo}\nRSSI:{RSSIinfo} Count:{Countinfo} Time:{Timeinfo}\n____________________________");
path = "";
break;
}
}
@ -745,7 +755,7 @@ namespace SocketExample
{
case "单次读取":
ActionType = "单次读取";
data = strToToHexByte("AA 55 02 01 00 64 67 0D");//单次
data = strToToHexByte(CheckForOnce());//单次
break;
/*
case "连续读取":
@ -909,11 +919,24 @@ namespace SocketExample
}
string CheckForOnce()
{
string actionstring = "AA 55 02 01 ";
if(TimeOut!=""&&TimeOut!=null)
actionstring += Convert.ToInt32(TimeOut).ToString("X").PadLeft(4, '0').Insert(2, " ") + " ";
else
actionstring +="00 00 ";
actionstring += Convert.ToString(GetXor(strToToHexByte(actionstring), 2), 16).PadLeft(2,'0').ToUpper() + " 0D";
return actionstring;
}
string CheckDuringTime()
{
string actionstring = "AA 55 02 02 ";
actionstring += Convert.ToInt32(TimeOut).ToString("X").PadLeft(4, '0').Insert(2, " ")+ " ";
actionstring += Convert.ToString(GetXor(strToToHexByte(actionstring), 2), 16) + " 0D";
if (TimeOut != "" && TimeOut != null)
actionstring += Convert.ToInt32(TimeOut).ToString("X").PadLeft(4, '0').Insert(2, " ") + " ";
else
actionstring += "00 00 ";
actionstring += Convert.ToString(GetXor(strToToHexByte(actionstring), 2), 16).PadLeft(2, '0') + " 0D";
return actionstring;
}
void SaveCommand()
@ -940,6 +963,9 @@ namespace SocketExample
public class TagItem : INotifyPropertyChanged
{
private string _originmessage;//原始数据
public string OriginMessage { get => _originmessage;set { _originmessage = value;OnPropertyChanged(); } }
private string _rssiinfo;//RSSI强度
public string RSSIinfo { get => _rssiinfo; set { _rssiinfo = value; OnPropertyChanged(); } }
private string _countinfo;//count数值
@ -951,8 +977,9 @@ namespace SocketExample
public string EPCinfo { get => _epcinfo; set { _epcinfo = value; OnPropertyChanged(); } }
public string EPCASC { get => _epcasc; set { _epcasc = value; OnPropertyChanged(); } }
public TagItem(string infoEPC,string ascEPC,string RSSI,string count,string time)
public TagItem(string originMessage,string infoEPC,string ascEPC,string RSSI,string count,string time)
{
OriginMessage = originMessage;
EPCinfo = infoEPC;
EPCASC = ascEPC;
RSSIinfo = RSSI;
@ -1215,5 +1242,27 @@ namespace SocketExample
}
}
private static void EnsureTxtExists(string txtPath,string MachineName,string IPinfo,string Portinfo)
{
// 检查指定的txt路径对应的txt是否已经存在
if (!File.Exists(txtPath))
{
try
{
StreamWriter streamWriter = new StreamWriter(txtPath, true);
streamWriter.WriteLineAsync($"设备名称:{MachineName}\nIP地址:{IPinfo}\n端口号:{Portinfo}\n____________________________");
streamWriter.Close();
}
catch (IOException ex)
{
// 如果在创建文件夹过程中出现IOException异常比如权限不足、磁盘已满等原因导致无法创建文件夹
// 这里通过消息框向用户展示创建文件夹失败的异常信息,方便用户知晓问题所在
MessageBox.Show($"创建txt {txtPath} 失败,异常信息: {ex.Message}");
// 重新抛出异常,让调用这个方法的上层代码知道创建文件夹出现了问题,以便进行进一步的处理,比如终止程序或者尝试其他恢复操作
throw;
}
}
}
}
}

Loading…
Cancel
Save