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

122
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")
{
@ -104,23 +106,23 @@ namespace DyeingComputer.UserClass
Dictionary<string, object> WorkOrder_dat;
WorkOrder_dat = SerializeConvert.JsonDeserializeFromString<Dictionary<string, object>>(SYSDAT);
//WorkOrder_dat.GetValue("WorkOrder");
bool dat_w= SQLDATA.WorkOrder(
WorkOrder_dat.GetValue("WorkOrder").ToString(),
bool dat_w = SQLDATA.WorkOrder(
WorkOrder_dat.GetValue("WorkOrder").ToString(),
WorkOrder_dat.GetValue("ProcessName").ToString(),
WorkOrder_dat.GetValue("StartTime").ToString(),
WorkOrder_dat.GetValue("EndTime").ToString(),
WorkOrder_dat.GetValue("Time").ToString(),
WorkOrder_dat.GetValue("EndTime").ToString(),
WorkOrder_dat.GetValue("Time").ToString(),
WorkOrder_dat.GetValue("Remark").ToString(),
WorkOrder_dat.GetValue("lock").ToString(),
WorkOrder_dat.GetValue("lock").ToString(),
WorkOrder_dat.GetValue("State").ToString(),
WorkOrder_dat.GetValue("ProcessID").ToString());
if (!dat_w) { client.SendAsync("SC910"); }
else { client.SendAsync("SC810" + SYSKEY +SYSDAT); }
WorkOrder_dat.GetValue("ProcessID").ToString());
if (!dat_w) { client.SendAsync("SC910"); }
else { client.SendAsync("SC810" + SYSKEY + SYSDAT); MainWindowViewModel.TX++; }
}
catch
catch
{
client.SendAsync("SC990");
}
}
}
else { client.SendAsync("SC999"); }
}//WorkOrder表信息检查写入
@ -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,12 +255,13 @@ namespace DyeingComputer.UserClass
SQLiteHelpers.Close(); //关闭连接
client.SendAsync("SC831" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_TP.ToJsonString());
MainWindowViewModel.TX++;
}//插入
else if (dat_821.GetValue("INSTRUCTION").ToString() == "EDIT")
{
int n = Convert.ToInt16(dat_821.GetValue("ID").ToString());
/**编辑行信息**/
DataRow dr =MainWindowViewModel.dt_TP.Rows[n - 1];
DataRow dr = MainWindowViewModel.dt_TP.Rows[n - 1];
dr.BeginEdit();
dr["StepID"] = dat_821.GetValue("StepID").ToString();
dr["StepName"] = dat_821.GetValue("StepName").ToString();
@ -270,7 +274,7 @@ namespace DyeingComputer.UserClass
dr.EndEdit();
var _TechnologicalProcessView = Application.Current.Windows.Cast<UserControl>().FirstOrDefault(window => window is TechnologicalProcessView) as TechnologicalProcessView;//跨页面
// _TechnologicalProcessView.Grid.ItemsSource = TechnologicalProcessView.sql.Tables[0].DefaultView;
// _TechnologicalProcessView.Grid.ItemsSource = TechnologicalProcessView.sql.Tables[0].DefaultView;
_TechnologicalProcessView.Grid.SelectedIndex = -1;
/**存入信息**/
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
@ -294,16 +298,17 @@ namespace DyeingComputer.UserClass
SQLiteHelpers.Close(); //关闭连接
client.SendAsync("SC831" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_TP.ToJsonString());
MainWindowViewModel.TX++;
}//编辑
else if (dat_821.GetValue("INSTRUCTION").ToString() == "DELETE")
{
int d = Convert.ToInt16(dat_821.GetValue("ID"));
MainWindowViewModel.dt_TP.Rows.RemoveAt(d - 1);
TechnologicalProcessView.Dat();
/**存入信息**/
TechnologicalProcessView.Dat();
/**存入信息**/
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
SQLiteHelpers.Delete("RUN", null, null);
SQLiteHelpers.Delete("RUN", null, null);
DataTable data_t = MainWindowViewModel.dt_TP.Clone();
for (int i = 0; i < MainWindowViewModel.dt_TP.Rows.Count; i++)
{
@ -318,10 +323,11 @@ namespace DyeingComputer.UserClass
drT.EndEdit();
SQLiteHelpers.InsertData("RUN", SQLiteHelpers.DataTableToDictionary(data_t));//行插入
}
}
SQLiteHelpers.Close(); //关闭连接
client.SendAsync("SC831" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_TP.ToJsonString());
MainWindowViewModel.TX++;
}
else
{
@ -336,25 +342,29 @@ namespace DyeingComputer.UserClass
{
if (SYSKEY == MainWindowViewModel.SYSKEY)
{
Dictionary<string, object> Chart_new = new Dictionary<string, object>();//缓存函数
Chart_new.Add("Status", MainWindowViewModel.StatusStr);
Chart_new.Add("Machine", MainWindowViewModel.S01);
Chart_new.Add("WorkNumder", MainWindowViewModel.WorkNumder);
Chart_new.Add("Time", MainWindowViewModel.SYSTime);
Chart_new.Add("Process", MainWindowViewModel.ProgramName);
Chart_new.Add("Step", MainWindowViewModel.Process_step);
Chart_new.Add("MST", MainWindowViewModel.TEMP_co);
Chart_new.Add("MTT", MainWindowViewModel.Selet_dtm("1010"));
Chart_new.Add("MTL", MainWindowViewModel.Selet_dtm("1015"));
Chart_new.Add("MTH", MainWindowViewModel.Selet_dtm("1009"));
Chart_new.Add("MUT", MainWindowViewModel.Selet_dtm("1011"));
Chart_new.Add("STTA", MainWindowViewModel.Selet_dtm("1012"));
Chart_new.Add("STLA", MainWindowViewModel.Selet_dtm("1017"));
Chart_new.Add("STTB", MainWindowViewModel.Selet_dtm("1013"));
Chart_new.Add("STLB", MainWindowViewModel.Selet_dtm("1018"));
Chart_new.Add("STTC", MainWindowViewModel.Selet_dtm("1014"));
Chart_new.Add("STLC", MainWindowViewModel.Selet_dtm("1019"));
client.SendAsync("SC830" + "[" + MainWindowViewModel.S01 + "]" + Chart_new.ToJsonString());
try {
Dictionary<string, object> Chart_new = new Dictionary<string, object>();//缓存函数
Chart_new.Add("Status", MainWindowViewModel.StatusStr);
Chart_new.Add("Machine", MainWindowViewModel.S01);
Chart_new.Add("WorkNumder", MainWindowViewModel.WorkNumder);
Chart_new.Add("Time", MainWindowViewModel.SYSTime);
Chart_new.Add("Process", MainWindowViewModel.ProgramName);
Chart_new.Add("Step", MainWindowViewModel.Process_step);
Chart_new.Add("MST", MainWindowViewModel.TEMP_co);
Chart_new.Add("MTT", MainWindowViewModel.Selet_dtm("1010"));
Chart_new.Add("MTL", MainWindowViewModel.Selet_dtm("1015"));
Chart_new.Add("MTH", MainWindowViewModel.Selet_dtm("1009"));
Chart_new.Add("MUT", MainWindowViewModel.Selet_dtm("1011"));
Chart_new.Add("STTA", MainWindowViewModel.Selet_dtm("1012"));
Chart_new.Add("STLA", MainWindowViewModel.Selet_dtm("1017"));
Chart_new.Add("STTB", MainWindowViewModel.Selet_dtm("1013"));
Chart_new.Add("STLB", MainWindowViewModel.Selet_dtm("1018"));
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"); }
}//当前信息
@ -362,7 +372,12 @@ namespace DyeingComputer.UserClass
{
if (SYSKEY == MainWindowViewModel.SYSKEY)
{
client.SendAsync("SC831" + "[" + MainWindowViewModel.S01 + "]" +MainWindowViewModel.dt_TP.ToJsonString());
try
{
client.SendAsync("SC831" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_TP.ToJsonString());
MainWindowViewModel.TX++;
}
catch { client.SendAsync("SC931"); }
}
else { client.SendAsync("SC999"); }
}//当前工作表
@ -372,15 +387,22 @@ 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)
{
client.SendAsync("SC832" + "[" + MainWindowViewModel.S01 + "]" + "sc833");
try
{
client.SendAsync("SC832" + "[" + MainWindowViewModel.S01 + "]" + "sc833");
MainWindowViewModel.TX++;
}
catch { client.SendAsync("SC933"); }
}
else { client.SendAsync("SC999"); }
}//当前领料单
@ -388,7 +410,11 @@ namespace DyeingComputer.UserClass
{
if (SYSKEY == MainWindowViewModel.SYSKEY)
{
client.SendAsync("SC851" + "[" + MainWindowViewModel.S01 + "]" + JsonConvert.SerializeObject(MainWindowViewModel.dt_d));//数字开关信息
try
{
client.SendAsync("SC851" + "[" + MainWindowViewModel.S01 + "]" + JsonConvert.SerializeObject(MainWindowViewModel.dt_d));//数字开关信息
}
catch { client.SendAsync("SC951"); }
}
else { client.SendAsync("SC999"); }
}//数字开关表
@ -396,7 +422,11 @@ namespace DyeingComputer.UserClass
{
if (SYSKEY == MainWindowViewModel.SYSKEY)
{
client.SendAsync("SC852" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_a.ToJsonString());//寄存器信息
try
{
client.SendAsync("SC852" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_a.ToJsonString());//寄存器信息
}
catch { client.SendAsync("SC952"); }
}
else { client.SendAsync("SC999"); }
}//寄存器表
@ -404,7 +434,11 @@ namespace DyeingComputer.UserClass
{
if (SYSKEY == MainWindowViewModel.SYSKEY)
{
client.SendAsync("SC853" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_m.ToJsonString());//缓存信息
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>

26
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,12 +25,13 @@ namespace DyeingComputer.View
public EngineerSetView()
{
InitializeComponent();
CountDown();
// 获取所有可用串口端口,并添加到comboBoxCOM
string[] ports = System.IO.Ports.SerialPort.GetPortNames();
comboBoxCOM.ItemsSource = ports;
comboBoxCOM.Text = Configini.IniReadvalue("SYS", "COM");
string[] Language = {"en-US","zh-CN","zh -TW" };
string[] Language = { "en-US", "zh-CN", "zh -TW" };
comboBoxLanguage.ItemsSource = Language;
comboBoxLanguage.Text = Configini.IniReadvalue("SYS", "Language");
}
@ -37,12 +40,29 @@ namespace DyeingComputer.View
private void comboBoxCOM_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Configini.IniWritevalue("SYS","COM",comboBoxCOM.SelectedValue.ToString());
Configini.IniWritevalue("SYS", "COM", comboBoxCOM.SelectedValue.ToString());
}
private void comboBoxLanguage_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
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