sc 11 months ago
parent
commit
f094a2fb6e
  1. 44
      UserClass/AsyncTcpServer.cs
  2. 4
      View/EngineerSetView.xaml
  3. 22
      View/EngineerSetView.xaml.cs
  4. 3
      ViewModel/MainWindowViewModel.cs

44
UserClass/AsyncTcpServer.cs

@ -79,6 +79,7 @@ namespace DyeingComputer.UserClass
service.Closed = (client, e) => { return EasyTask.CompletedTask; };//有客户端断开连接
service.Received = (client, e) =>
{
MainWindowViewModel.RX++;
string SYSAPI = e.ByteBlock.Span.ToString(Encoding.ASCII).Substring(0,5);
string DAT = e.ByteBlock.Span.ToString(Encoding.UTF8).Substring(5);
string SYSDAT ="";// = e.ByteBlock.Span.ToString(Encoding.ASCII).Substring(5);
@ -94,6 +95,7 @@ namespace DyeingComputer.UserClass
Chart_new.Add("SYSKEY", MainWindowViewModel.SYSKEY);
Chart_new.Add("TIME", MainWindowViewModel.SYSTime);
client.SendAsync("SC800" + "[" + MainWindowViewModel.S01 + "]" + Chart_new.ToJsonString());
MainWindowViewModel.TX++;
}
else if (SYSAPI == "SC810")
{
@ -115,7 +117,7 @@ namespace DyeingComputer.UserClass
WorkOrder_dat.GetValue("State").ToString(),
WorkOrder_dat.GetValue("ProcessID").ToString());
if (!dat_w) { client.SendAsync("SC910"); }
else { client.SendAsync("SC810" + SYSKEY +SYSDAT); }
else { client.SendAsync("SC810" + SYSKEY + SYSDAT); MainWindowViewModel.TX++; }
}
catch
{
@ -134,7 +136,7 @@ namespace DyeingComputer.UserClass
WorkOrder_dat = SerializeConvert.JsonDeserializeFromString<DataTable>(SYSDAT);
bool dat_w = SQLDATA.WorkOderStep(WorkOrder_dat);
if (!dat_w) { client.SendAsync("SC911"); }
else { client.SendAsync("SC811" + SYSKEY + SYSDAT); }
else { client.SendAsync("SC811" + SYSKEY + SYSDAT); MainWindowViewModel.TX++; }
}
catch
{
@ -157,6 +159,7 @@ namespace DyeingComputer.UserClass
SetLocalDateTime(dt);
}
client.SendAsync("SC820" + "[" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "]");
MainWindowViewModel.TX++;
}
catch { client.SendAsync("SC920"); }
}
@ -185,7 +188,7 @@ namespace DyeingComputer.UserClass
}
else if (dat_821.GetValue("INSTRUCTION").ToString() == "CONTINUE")
{
MainWindowViewModel.WORK_RUN = 2;//暂停
MainWindowViewModel.WORK_RUN = 2;//
}
else if (dat_821.GetValue("INSTRUCTION").ToString() == "JUMP")
{
@ -252,6 +255,7 @@ namespace DyeingComputer.UserClass
SQLiteHelpers.Close(); //关闭连接
client.SendAsync("SC831" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_TP.ToJsonString());
MainWindowViewModel.TX++;
}//插入
else if (dat_821.GetValue("INSTRUCTION").ToString() == "EDIT")
{
@ -294,6 +298,7 @@ namespace DyeingComputer.UserClass
SQLiteHelpers.Close(); //关闭连接
client.SendAsync("SC831" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_TP.ToJsonString());
MainWindowViewModel.TX++;
}//编辑
else if (dat_821.GetValue("INSTRUCTION").ToString() == "DELETE")
{
@ -322,6 +327,7 @@ namespace DyeingComputer.UserClass
SQLiteHelpers.Close(); //关闭连接
client.SendAsync("SC831" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_TP.ToJsonString());
MainWindowViewModel.TX++;
}
else
{
@ -336,6 +342,7 @@ namespace DyeingComputer.UserClass
{
if (SYSKEY == MainWindowViewModel.SYSKEY)
{
try {
Dictionary<string, object> Chart_new = new Dictionary<string, object>();//缓存函数
Chart_new.Add("Status", MainWindowViewModel.StatusStr);
Chart_new.Add("Machine", MainWindowViewModel.S01);
@ -355,14 +362,22 @@ namespace DyeingComputer.UserClass
Chart_new.Add("STTC", MainWindowViewModel.Selet_dtm("1014"));
Chart_new.Add("STLC", MainWindowViewModel.Selet_dtm("1019"));
client.SendAsync("SC830" + "[" + MainWindowViewModel.S01 + "]" + Chart_new.ToJsonString());
MainWindowViewModel.TX++;
}
catch { client.SendAsync("SC931"); }
}
else { client.SendAsync("SC999"); }
}//当前信息
else if (SYSAPI == "SC831")
{
if (SYSKEY == MainWindowViewModel.SYSKEY)
{
try
{
client.SendAsync("SC831" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_TP.ToJsonString());
MainWindowViewModel.TX++;
}
catch { client.SendAsync("SC931"); }
}
else { client.SendAsync("SC999"); }
}//当前工作表
@ -372,40 +387,59 @@ namespace DyeingComputer.UserClass
{
try
{ client.SendAsync("SC832" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.SYSlog);
} catch (Exception) { } }
MainWindowViewModel.TX++;
}
catch { client.SendAsync("SC932"); }
}
else { client.SendAsync("SC999"); }
}//当前细节信息
else if (SYSAPI == "SC833")
{
if (SYSKEY == MainWindowViewModel.SYSKEY)
{
try
{
client.SendAsync("SC832" + "[" + MainWindowViewModel.S01 + "]" + "sc833");
MainWindowViewModel.TX++;
}
catch { client.SendAsync("SC933"); }
}
else { client.SendAsync("SC999"); }
}//当前领料单
else if (SYSAPI == "SC851")
{
if (SYSKEY == MainWindowViewModel.SYSKEY)
{
try
{
client.SendAsync("SC851" + "[" + MainWindowViewModel.S01 + "]" + JsonConvert.SerializeObject(MainWindowViewModel.dt_d));//数字开关信息
}
catch { client.SendAsync("SC951"); }
}
else { client.SendAsync("SC999"); }
}//数字开关表
else if (SYSAPI == "SC852")
{
if (SYSKEY == MainWindowViewModel.SYSKEY)
{
try
{
client.SendAsync("SC852" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_a.ToJsonString());//寄存器信息
}
catch { client.SendAsync("SC952"); }
}
else { client.SendAsync("SC999"); }
}//寄存器表
else if (SYSAPI == "SC853")
{
if (SYSKEY == MainWindowViewModel.SYSKEY)
{
try
{
client.SendAsync("SC853" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_m.ToJsonString());//缓存信息
}
catch { client.SendAsync("SC953"); }
}
else { client.SendAsync("SC999"); }
}//缓存表

4
View/EngineerSetView.xaml

@ -6,12 +6,14 @@
xmlns:local="clr-namespace:DyeingComputer.View"
xmlns:lang="clr-namespace:DyeingComputer.Properties"
mc:Ignorable="d"
d:DesignHeight="630" d:DesignWidth="1280" VerticalAlignment="Top">
d:DesignHeight="500" d:DesignWidth="800">
<Grid>
<ComboBox HorizontalAlignment="Left" Height="30" Margin="150,10,0,0" x:Name="comboBoxCOM" VerticalAlignment="Top" Width="200" SelectionChanged="comboBoxCOM_SelectionChanged" FontSize="20" IsEditable="True" IsReadOnly="True"/>
<TextBlock HorizontalAlignment="Left" Height="40" Margin="10,10,0,0" TextWrapping="Wrap" Text="{x:Static lang:Resources.Port}" VerticalAlignment="Top" Width="120" FontSize="25"/>
<ComboBox HorizontalAlignment="Left" Height="30" Margin="150,50,0,0" x:Name="comboBoxLanguage" VerticalAlignment="Top" Width="200" SelectionChanged="comboBoxLanguage_SelectionChanged" FontSize="20" IsEditable="True" IsReadOnly="True"/>
<TextBlock HorizontalAlignment="Left" Height="40" Margin="10,50,0,0" TextWrapping="Wrap" Text="{x:Static lang:Resources.Language}" VerticalAlignment="Top" Width="120" FontSize="25"/>
<TextBlock Name="RX" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Bottom" Height="30" Width="100" Margin="5,0,0,0"/>
<TextBlock Name="TX" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Bottom" Height="30" Width="100" Margin="200,0,0,0"/>
</Grid>
</UserControl>

22
View/EngineerSetView.xaml.cs

@ -1,4 +1,5 @@
using System;
using DyeingComputer.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@ -12,6 +13,7 @@ using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;
namespace DyeingComputer.View
{
@ -23,6 +25,7 @@ namespace DyeingComputer.View
public EngineerSetView()
{
InitializeComponent();
CountDown();
// 获取所有可用串口端口,并添加到comboBoxCOM
string[] ports = System.IO.Ports.SerialPort.GetPortNames();
comboBoxCOM.ItemsSource = ports;
@ -44,5 +47,22 @@ namespace DyeingComputer.View
{
Configini.IniWritevalue("SYS", "Language", comboBoxLanguage.SelectedValue.ToString());
}
public void CountDown()
{
DispatcherTimer timer1s = new DispatcherTimer//初始化循环,每1秒调用一次Tick
{
Interval = TimeSpan.FromSeconds(1)//秒
};
timer1s.Tick += Tick_Event_1S;
timer1s.Start();
}
void Tick_Event_1S(object sender, EventArgs e)//Tick_Event周期执行事件1S
{
RX.Text = MainWindowViewModel.RX.ToString();
TX.Text = MainWindowViewModel.TX.ToString();
}
}
}

3
ViewModel/MainWindowViewModel.cs

@ -64,7 +64,8 @@ namespace DyeingComputer.ViewModel
public static int RUN_STEPID;//当前步骤
public static int SYS_REDYE=0;//当前重燃步
public static string SYSKEY;
public static UInt32 RX = 0;
public static UInt32 TX = 0;
public MainWindowViewModel()
{
SYSKEY = MD5check.MD5Encrypt16(HardwareSN.GetCPUSerialNumber()+HardwareSN.GetBIOSSerialNumber());

Loading…
Cancel
Save