开药箱添加日志及客户端提示
This commit is contained in:
parent
ee624a7c0d
commit
74da88a362
|
@ -3,7 +3,7 @@
|
||||||
<connectionStrings>
|
<connectionStrings>
|
||||||
<!-- 数据库连接字符串 -->
|
<!-- 数据库连接字符串 -->
|
||||||
<!--<add name="database" connectionString="server=127.0.0.1;database=wpf_dm_program;userid=root;password=qq1223" />-->
|
<!--<add name="database" connectionString="server=127.0.0.1;database=wpf_dm_program;userid=root;password=qq1223" />-->
|
||||||
<add name="database" connectionString="server=127.0.0.1;port=3306;database=xx_xiangchang2;userid=root;password=root" />
|
<add name="database" connectionString="server=127.0.0.1;port=3306;database=xiangxiang_xianchang;userid=root;password=root" />
|
||||||
</connectionStrings>
|
</connectionStrings>
|
||||||
<!--<runtime>
|
<!--<runtime>
|
||||||
--><!--配置之后,Appdomain.CurrentDomain.UnhandledException 事件的 IsTerminating 就变成了 false 啦!也就是说,程序并不会因为这次的异常而崩溃退出。--><!--
|
--><!--配置之后,Appdomain.CurrentDomain.UnhandledException 事件的 IsTerminating 就变成了 false 啦!也就是说,程序并不会因为这次的异常而崩溃退出。--><!--
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
<!-- 按处方还药或者按取药记录还药 1:处方(ReturnDrugWindow2)2:药品(ReturnDrugWindow)-->
|
<!-- 按处方还药或者按取药记录还药 1:处方(ReturnDrugWindow2)2:药品(ReturnDrugWindow)-->
|
||||||
<add key="returnDrugMode" value="2" />
|
<add key="returnDrugMode" value="2" />
|
||||||
<!-- 自动退出时间,单位秒,为0时不自动退出 -->
|
<!-- 自动退出时间,单位秒,为0时不自动退出 -->
|
||||||
<add key="autoExit" value="0"/>
|
<add key="autoExit" value="80"/>
|
||||||
|
|
||||||
<!-- 无操作退出录像时间,单位秒,为0时不退出录像 -->
|
<!-- 无操作退出录像时间,单位秒,为0时不退出录像 -->
|
||||||
<add key="stopRecord" value="180"/>
|
<add key="stopRecord" value="180"/>
|
||||||
|
@ -99,7 +99,7 @@
|
||||||
<!-- 指纹机号码 -->
|
<!-- 指纹机号码 -->
|
||||||
<add key="machineNumber" value="1"/>
|
<add key="machineNumber" value="1"/>
|
||||||
<!-- 指纹机ip -->
|
<!-- 指纹机ip -->
|
||||||
<add key="fingerIp" value="192.168.50.201"/>
|
<add key="fingerIp" value="10.1.100.11"/>
|
||||||
|
|
||||||
<!-- 多处方取药 0:不启用 1:启用-->
|
<!-- 多处方取药 0:不启用 1:启用-->
|
||||||
<add key="MultiOrder" value="1"/>
|
<add key="MultiOrder" value="1"/>
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
<add key="MultiBatch" value="0"/>
|
<add key="MultiBatch" value="0"/>
|
||||||
|
|
||||||
<!--海康威视IP-->
|
<!--海康威视IP-->
|
||||||
<add key="HIKIP" value="192.168.1.15"/>
|
<add key="HIKIP" value="10.1.100.15"/>
|
||||||
<!--海康威视端口-->
|
<!--海康威视端口-->
|
||||||
<add key="HIKPort" value="8000"/>
|
<add key="HIKPort" value="8000"/>
|
||||||
<!--海康威视用户名-->
|
<!--海康威视用户名-->
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
using DM_Weight.Finger;
|
using DM_Weight.Finger;
|
||||||
using DM_Weight.msg;
|
using DM_Weight.msg;
|
||||||
|
using DM_Weight.util;
|
||||||
using DM_Weight.ViewModels;
|
using DM_Weight.ViewModels;
|
||||||
|
using DM_Weight.Views;
|
||||||
using log4net;
|
using log4net;
|
||||||
using log4net.Repository.Hierarchy;
|
using log4net.Repository.Hierarchy;
|
||||||
using Modbus.Device;
|
using Modbus.Device;
|
||||||
|
@ -29,17 +31,11 @@ namespace DM_Weight.Port
|
||||||
private Socket socket;
|
private Socket socket;
|
||||||
private TcpClient client;
|
private TcpClient client;
|
||||||
private readonly ILog logger = LogManager.GetLogger(typeof(CheckOrderNewWindowViewModel));
|
private readonly ILog logger = LogManager.GetLogger(typeof(CheckOrderNewWindowViewModel));
|
||||||
string ip = ConfigurationManager.AppSettings["modbusIp"].ToString();
|
|
||||||
int port = Convert.ToInt32(ConfigurationManager.AppSettings["modbusPort"]);
|
|
||||||
private static object _lock = new object();
|
private static object _lock = new object();
|
||||||
public static bool BoxOperate { get; set; }
|
public static bool BoxOperate { get; set; }
|
||||||
private ModbusHelper()
|
public ModbusHelper()
|
||||||
{
|
{
|
||||||
logger.Info("ModbusHelper");
|
socket = MakeKeepALiveSocket();
|
||||||
|
|
||||||
socket = KeepALiveSocket.MakeKeepALiveSocket(ip, port);
|
|
||||||
|
|
||||||
//socket = CreateSocket();
|
|
||||||
client = new TcpClient();
|
client = new TcpClient();
|
||||||
client.Client = socket;
|
client.Client = socket;
|
||||||
master = ModbusIpMaster.CreateIp(client);
|
master = ModbusIpMaster.CreateIp(client);
|
||||||
|
@ -51,105 +47,62 @@ namespace DM_Weight.Port
|
||||||
{
|
{
|
||||||
if (instance == null)
|
if (instance == null)
|
||||||
{
|
{
|
||||||
|
//lock (objLock)
|
||||||
|
//{
|
||||||
|
// if (instance == null)
|
||||||
instance = new ModbusHelper();
|
instance = new ModbusHelper();
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void SetModusIpMaster()
|
private void SetModusIpMaster()
|
||||||
{
|
{
|
||||||
logger.Info("SetModusIpMaster");
|
logger.Info("SetModusIpMaster");
|
||||||
socket = KeepALiveSocket.MakeKeepALiveSocket(ip, port);
|
socket = MakeKeepALiveSocket();
|
||||||
client = new TcpClient();
|
client = new TcpClient();
|
||||||
client.Client = socket;
|
client.Client = socket;
|
||||||
master = ModbusIpMaster.CreateIp(client);
|
master = ModbusIpMaster.CreateIp(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public bool[] GetAllBoxState()
|
public bool[] GetAllBoxState()
|
||||||
{
|
{
|
||||||
//bool[] bools = Policy.Handle<Exception>()
|
|
||||||
// .Retry(3, (exception, retryCount) =>
|
|
||||||
// {
|
|
||||||
// this.Dispose();
|
|
||||||
// //Debug.WriteLine($"获取所有箱子门状态出错,第{retryCount}次重试", exception);
|
|
||||||
// logger.Info($"获取所有箱子门状态出错,第{retryCount}次重试, 异常信息{exception}");
|
|
||||||
// Thread.Sleep(50);
|
|
||||||
// this.SetModusIpMaster();
|
|
||||||
// BoxOperate = false;
|
|
||||||
// // return TimeSpan.FromSeconds (1);
|
|
||||||
// }).Execute<bool[]>(() =>
|
|
||||||
// {
|
|
||||||
// bool[] flags = new bool[18];
|
|
||||||
// try
|
|
||||||
// {
|
|
||||||
// if (master == null)
|
|
||||||
// {
|
|
||||||
// this.SetModusIpMaster();
|
|
||||||
// }
|
|
||||||
// var result = master.ReadInputRegisters(1, 0x0033, 2);
|
|
||||||
// var r1 = Convert.ToString(((int)result[0] >> 14) | ((int)result[1] << 2), 2).PadLeft(18, '0');
|
|
||||||
// var r2 = r1.ToCharArray();
|
|
||||||
// logger.Info("r2=>" + string.Join(", ", r2));
|
|
||||||
// //var r2=new char[18] { '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0' };
|
|
||||||
// for (int i = 0; i < 18; i++)
|
|
||||||
// {
|
|
||||||
// flags[i] = r2[17 - i] == '1' ? true : false;
|
|
||||||
// }
|
|
||||||
// logger.Info($"获取所有箱子门状态返回:{string.Join(',', flags)};");
|
|
||||||
// }
|
|
||||||
// catch (Exception)
|
|
||||||
// {
|
|
||||||
// this.Dispose();
|
|
||||||
// //Debug.WriteLine($"获取所有箱子门状态出错,第{retryCount}次重试", exception);
|
|
||||||
// logger.Info($"获取所有箱子门状态出错,第{retryCount}次重试, 异常信息{exception}");
|
|
||||||
// Thread.Sleep(50);
|
|
||||||
// this.SetModusIpMaster();
|
|
||||||
// BoxOperate = false;
|
|
||||||
// }
|
|
||||||
// return flags;
|
|
||||||
// });
|
|
||||||
lock (_lock)
|
lock (_lock)
|
||||||
{
|
{
|
||||||
bool successFlag = true;
|
bool[] bools = Policy.Handle<Exception>()
|
||||||
bool[] bools = new bool[18];
|
.Retry(3, (exception, retryCount) =>
|
||||||
int iCount = 0;
|
|
||||||
do
|
|
||||||
{
|
{
|
||||||
try
|
this.Dispose();
|
||||||
|
//Debug.WriteLine($"获取所有箱子门状态出错,第{retryCount}次重试", exception);
|
||||||
|
logger.Info($"获取所有箱子门状态出错,第{retryCount}次重试, 异常信息{exception}");
|
||||||
|
|
||||||
|
Thread.Sleep(50);
|
||||||
|
BoxOperate = false;
|
||||||
|
this.SetModusIpMaster();
|
||||||
|
// return TimeSpan.FromSeconds (1);
|
||||||
|
Task.Factory.StartNew(() =>
|
||||||
{
|
{
|
||||||
bool[] flags = new bool[18];
|
|
||||||
if (master == null)
|
|
||||||
{
|
|
||||||
this.SetModusIpMaster();
|
|
||||||
}
|
|
||||||
var result = master.ReadInputRegisters(1, 0x0033, 2);
|
|
||||||
var r1 = Convert.ToString(((int)result[0] >> 14) | ((int)result[1] << 2), 2).PadLeft(18, '0');
|
|
||||||
var r2 = r1.ToCharArray();
|
|
||||||
logger.Info("r2=>" + string.Join(", ", r2));
|
|
||||||
//var r2=new char[18] { '0','0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0' };
|
|
||||||
for (int i = 0; i < 18; i++)
|
|
||||||
{
|
|
||||||
bools[i] = r2[17 - i] == '1' ? true : false;
|
|
||||||
}
|
|
||||||
logger.Info($"获取所有箱子门状态返回:{string.Join(',', bools)};");
|
|
||||||
successFlag = true;
|
|
||||||
}
|
|
||||||
catch (Exception exception)
|
|
||||||
{
|
|
||||||
if (iCount >= 3)
|
|
||||||
break;
|
|
||||||
iCount++;
|
|
||||||
successFlag = false;
|
|
||||||
this.Dispose();
|
|
||||||
//Debug.WriteLine($"获取所有箱子门状态出错,第{retryCount}次重试", exception);
|
|
||||||
logger.Info($"获取所有箱子门状态出错,第{iCount}次重试,异常信息{exception}");
|
|
||||||
Thread.Sleep(500);
|
|
||||||
this.SetModusIpMaster();
|
|
||||||
BoxOperate = false;
|
|
||||||
FingerprintUtil.FingerDisconnect();
|
FingerprintUtil.FingerDisconnect();
|
||||||
|
});
|
||||||
|
}).Execute<bool[]>(() =>
|
||||||
|
{
|
||||||
|
bool[] flags = new bool[18];
|
||||||
|
if (master == null)
|
||||||
|
{
|
||||||
|
this.SetModusIpMaster();
|
||||||
}
|
}
|
||||||
} while (!successFlag);
|
var result = master.ReadInputRegisters(1, 0x0033, 2);
|
||||||
|
var r1 = Convert.ToString(((int)result[0] >> 14) | ((int)result[1] << 2), 2).PadLeft(18, '0');
|
||||||
|
var r2 = r1.ToCharArray();
|
||||||
|
logger.Info("r2=>" + string.Join(", ", r2));
|
||||||
|
for (int i = 0; i < 18; i++)
|
||||||
|
{
|
||||||
|
flags[i] = r2[17 - i] == '1' ? true : false;
|
||||||
|
}
|
||||||
|
logger.Info($"获取所有箱子门状态返回:{string.Join(',', flags)}");
|
||||||
|
return flags;
|
||||||
|
});
|
||||||
return bools;
|
return bools;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -158,10 +111,6 @@ namespace DM_Weight.Port
|
||||||
lock (_lock)
|
lock (_lock)
|
||||||
{
|
{
|
||||||
BoxOperate = true;
|
BoxOperate = true;
|
||||||
//if (ConfigurationManager.AppSettings["test"]!=null&& ConfigurationManager.AppSettings["test"].ToString()=="Y")
|
|
||||||
//{
|
|
||||||
// return true;
|
|
||||||
//}
|
|
||||||
bool bFlag = false;
|
bool bFlag = false;
|
||||||
Thread.Sleep(50);
|
Thread.Sleep(50);
|
||||||
Policy.Handle<Exception>().Retry(3, ((exception, retryCount) =>
|
Policy.Handle<Exception>().Retry(3, ((exception, retryCount) =>
|
||||||
|
@ -169,19 +118,20 @@ namespace DM_Weight.Port
|
||||||
this.Dispose();
|
this.Dispose();
|
||||||
//Debug.WriteLine($"打开箱子出错,第{retryCount}次重试", exception);
|
//Debug.WriteLine($"打开箱子出错,第{retryCount}次重试", exception);
|
||||||
logger.Info($"打开箱子出错,第{retryCount}次重试,异常信息{exception}");
|
logger.Info($"打开箱子出错,第{retryCount}次重试,异常信息{exception}");
|
||||||
//SpeakAsync("药箱连接失败,正在尝试重新打开");
|
Thread.Sleep(50);
|
||||||
Thread.Sleep(500);
|
|
||||||
this.SetModusIpMaster();
|
this.SetModusIpMaster();
|
||||||
|
Task.Factory.StartNew(() =>
|
||||||
|
{
|
||||||
|
FingerprintUtil.FingerDisconnect();
|
||||||
|
});
|
||||||
//return TimeSpan.FromSeconds (1);
|
//return TimeSpan.FromSeconds (1);
|
||||||
})).Execute(() =>
|
})).Execute(() =>
|
||||||
{
|
{
|
||||||
logger.Info($"正在打开{boxNum}号药箱");
|
logger.Info($"正在打开{boxNum}号药箱");
|
||||||
master.WriteSingleRegister(1, (ushort)boxNum, 20);
|
master.WriteSingleRegister(1, (ushort)boxNum, 20);
|
||||||
logger.Info($"开门指令已发送{(ushort)boxNum}");
|
logger.Info($"开门指令已发送{(ushort)boxNum}");
|
||||||
SpeakAsync("请及时关闭药箱");
|
|
||||||
//Console.WriteLine($"开门指令已发送{(ushort)boxNum}");
|
//Console.WriteLine($"开门指令已发送{(ushort)boxNum}");
|
||||||
bFlag = true;
|
bFlag = true;
|
||||||
FingerprintUtil.FingerDisconnect();
|
|
||||||
});
|
});
|
||||||
return bFlag;
|
return bFlag;
|
||||||
}
|
}
|
||||||
|
@ -193,36 +143,37 @@ namespace DM_Weight.Port
|
||||||
client.Close();
|
client.Close();
|
||||||
master.Dispose();
|
master.Dispose();
|
||||||
}
|
}
|
||||||
|
public static Socket MakeKeepALiveSocket()
|
||||||
|
{
|
||||||
|
uint dummy = 0;
|
||||||
|
byte[] inOptionValues = new byte[Marshal.SizeOf(dummy) * 3];
|
||||||
|
BitConverter.GetBytes((uint)1).CopyTo(inOptionValues, 0);//启用Keep-Alive
|
||||||
|
BitConverter.GetBytes((uint)10000).CopyTo(inOptionValues, Marshal.SizeOf(dummy));//在这个时间间隔内没有数据交互,则发送探测包
|
||||||
|
BitConverter.GetBytes((uint)10000).CopyTo(inOptionValues, Marshal.SizeOf(dummy) * 2);//发探测包时间间隔
|
||||||
|
//IPEndPoint iep = new IPEndPoint(IPAddress.Parse("192.168.1.13"), 502);
|
||||||
|
string modbusIp = ConfigurationManager.AppSettings["modbusIp"].ToString();
|
||||||
|
int modbusPort = Convert.ToInt32(ConfigurationManager.AppSettings["modbusPort"]);
|
||||||
|
IPEndPoint iep = new IPEndPoint(IPAddress.Parse(modbusIp), modbusPort);
|
||||||
|
Socket _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
||||||
|
_socket = Policy.Handle<Exception>()
|
||||||
|
.Retry(3, (exception, retryCount) =>
|
||||||
|
{
|
||||||
|
Console.WriteLine($"建立Socket,第{retryCount}次重试", exception);
|
||||||
|
// return TimeSpan.FromSeconds (1);
|
||||||
|
})
|
||||||
|
.Execute<Socket>(() =>
|
||||||
|
{
|
||||||
|
_socket.IOControl(IOControlCode.KeepAliveValues, inOptionValues, null);
|
||||||
|
_socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
|
||||||
|
_socket.Connect(iep);
|
||||||
|
return _socket;
|
||||||
|
});
|
||||||
|
return _socket;
|
||||||
|
}
|
||||||
private static SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer();
|
private static SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer();
|
||||||
public static void SpeakAsync(string textinfo)
|
public static void SpeakAsync(string textinfo)
|
||||||
{
|
{
|
||||||
speechSynthesizer.Rate = 2;
|
|
||||||
speechSynthesizer.SpeakAsync(textinfo);
|
speechSynthesizer.SpeakAsync(textinfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private Socket CreateSocket()
|
|
||||||
{
|
|
||||||
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
|
||||||
string serverIp = "127.0.0.1"; // 服务器IP地址
|
|
||||||
int port = 4002; // 服务器端口
|
|
||||||
IPAddress serverAddress = IPAddress.Parse(serverIp);
|
|
||||||
IPEndPoint remoteEP = new IPEndPoint(serverAddress, port);
|
|
||||||
|
|
||||||
clientSocket.Connect(remoteEP);
|
|
||||||
|
|
||||||
if (clientSocket.Connected)
|
|
||||||
{
|
|
||||||
|
|
||||||
// 发送数据
|
|
||||||
//byte[] msg = Encoding.ASCII.GetBytes("This is a test<EOF>");
|
|
||||||
//clientSocket.Send(msg);
|
|
||||||
|
|
||||||
// 关闭socket
|
|
||||||
//clientSocket.Shutdown(SocketShutdown.Both);
|
|
||||||
//clientSocket.Close();
|
|
||||||
}
|
|
||||||
return clientSocket;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,14 +28,16 @@ namespace DM_Weight.Port
|
||||||
byte functionCode = input.Get(7);
|
byte functionCode = input.Get(7);
|
||||||
if (functionCode == 4)
|
if (functionCode == 4)
|
||||||
{
|
{
|
||||||
|
|
||||||
int a = input.Get(length - 2);
|
int a = input.Get(length - 2);
|
||||||
int b = input.Get(length - 1);
|
int b = input.Get(length - 1);
|
||||||
Console.WriteLine("a");
|
int c = input.Get(length - 3);
|
||||||
Console.WriteLine(a);
|
int d = input.Get(length - 4); logger.Info($"查状态收到返回a:{a};b:{b};c:{c};d:{d}");
|
||||||
Console.WriteLine("b");
|
bool f = false;
|
||||||
Console.WriteLine(b);
|
if (a > 0 || b > 0 || c > 0 || d > 0)
|
||||||
var r = Convert.ToString((a >> 14) | (b << 2), 2).PadLeft(18, '0').ToCharArray();
|
{
|
||||||
bool f = r.Any(c => c == '1');
|
f = true;
|
||||||
|
}
|
||||||
output.Write(f);
|
output.Write(f);
|
||||||
}
|
}
|
||||||
input.Position = length;
|
input.Position = length;
|
||||||
|
|
|
@ -1,9 +1,14 @@
|
||||||
using DM_Weight.ViewModels;
|
using DM_Weight.Models;
|
||||||
|
using DM_Weight.msg;
|
||||||
|
using DM_Weight.util;
|
||||||
|
using DM_Weight.ViewModels;
|
||||||
|
using DM_Weight.Views;
|
||||||
using log4net;
|
using log4net;
|
||||||
using Mina.Core.Future;
|
using Mina.Core.Future;
|
||||||
using Mina.Filter.Codec;
|
using Mina.Filter.Codec;
|
||||||
using Mina.Filter.Logging;
|
using Mina.Filter.Logging;
|
||||||
using Mina.Transport.Socket;
|
using Mina.Transport.Socket;
|
||||||
|
using Prism.Events;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Configuration;
|
using System.Configuration;
|
||||||
|
@ -21,11 +26,24 @@ namespace DM_Weight.Port
|
||||||
AsyncSocketConnector acceptor = new AsyncSocketConnector();
|
AsyncSocketConnector acceptor = new AsyncSocketConnector();
|
||||||
IConnectFuture iConnectFuture;
|
IConnectFuture iConnectFuture;
|
||||||
public bool OpenStatus=false;
|
public bool OpenStatus=false;
|
||||||
|
//多线程退出标识
|
||||||
|
public bool IsMultiThread = false;
|
||||||
string ip = ConfigurationManager.AppSettings["modbusIp"].ToString();
|
string ip = ConfigurationManager.AppSettings["modbusIp"].ToString();
|
||||||
int port =Convert.ToInt32(ConfigurationManager.AppSettings["modbusPort"]);
|
int port =Convert.ToInt32(ConfigurationManager.AppSettings["modbusPort"]);
|
||||||
public SocketHelper()
|
IEventAggregator _eventAggregator;
|
||||||
|
public SocketHelper(IEventAggregator eventAggregator)
|
||||||
{
|
{
|
||||||
acceptor.ExceptionCaught += (o, e) => logger.Error(e.Exception);
|
_eventAggregator=eventAggregator;
|
||||||
|
acceptor.ExceptionCaught += (o, e) =>
|
||||||
|
{
|
||||||
|
logger.Error($"网口通信超时:{e.Exception}");
|
||||||
|
AlertMsg alertMsg = new AlertMsg
|
||||||
|
{
|
||||||
|
Message = $"网口通信超时,正在重试!",
|
||||||
|
Type = MsgType.ERROR
|
||||||
|
};
|
||||||
|
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||||
|
};
|
||||||
|
|
||||||
//acceptor.FilterChain.AddLast("logger", new LoggingFilter());
|
//acceptor.FilterChain.AddLast("logger", new LoggingFilter());
|
||||||
acceptor.FilterChain.AddLast("encoding", new ProtocolCodecFilter(new MyMinaCodecFactory()));
|
acceptor.FilterChain.AddLast("encoding", new ProtocolCodecFilter(new MyMinaCodecFactory()));
|
||||||
|
@ -36,13 +54,24 @@ namespace DM_Weight.Port
|
||||||
{
|
{
|
||||||
OpenStatus = (bool)e.Message;
|
OpenStatus = (bool)e.Message;
|
||||||
logger.Info("MessageReceived>>>>>>>>>>>>>>>>" + OpenStatus);
|
logger.Info("MessageReceived>>>>>>>>>>>>>>>>" + OpenStatus);
|
||||||
|
if(OpenStatus)
|
||||||
|
{
|
||||||
|
HomeWindow.idleTimer.Stop();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
HomeWindow.idleTimer.AutoReset = true;
|
||||||
|
HomeWindow.idleTimer.Interval = Convert.ToInt32(ConfigurationManager.AppSettings["autoExit"] ?? "0") * 1000;
|
||||||
|
HomeWindow.idleTimer.Start();
|
||||||
|
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
acceptor.SessionClosed += (o, e) =>
|
acceptor.SessionClosed += (o, e) =>
|
||||||
{
|
{
|
||||||
logger.Info("SessionClosed");
|
logger.Info("SessionClosed");
|
||||||
Task.Delay(50).Wait();
|
//Task.Delay(50).Wait();
|
||||||
SocketConnect();
|
SocketConnect();
|
||||||
};
|
};
|
||||||
this.SocketConnect();
|
this.SocketConnect();
|
||||||
|
|
|
@ -11,14 +11,17 @@ using Prism.Mvvm;
|
||||||
using Prism.Regions;
|
using Prism.Regions;
|
||||||
using Prism.Services.Dialogs;
|
using Prism.Services.Dialogs;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Configuration;
|
using System.Configuration;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
|
using System.Xml;
|
||||||
|
|
||||||
namespace DM_Weight.ViewModels
|
namespace DM_Weight.ViewModels
|
||||||
{
|
{
|
||||||
|
@ -393,7 +396,7 @@ namespace DM_Weight.ViewModels
|
||||||
|
|
||||||
//TotalCount = totalCount;
|
//TotalCount = totalCount;
|
||||||
PageCount = (int)Math.Ceiling((double)TotalCount / PageSize);
|
PageCount = (int)Math.Ceiling((double)TotalCount / PageSize);
|
||||||
if (Convert.ToDateTime(currentList.EffDate).ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd"))
|
if (currentList != null && currentList.EffDate != null && Convert.ToDateTime(currentList.EffDate).ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd"))
|
||||||
{
|
{
|
||||||
switch (DrawerNo)
|
switch (DrawerNo)
|
||||||
{
|
{
|
||||||
|
@ -464,7 +467,7 @@ namespace DM_Weight.ViewModels
|
||||||
for (int i = 0; i < chlList.Count; i++)
|
for (int i = 0; i < chlList.Count; i++)
|
||||||
{
|
{
|
||||||
ChannelList chl = chlList[i];
|
ChannelList chl = chlList[i];
|
||||||
if (Convert.ToDateTime(chl.EffDate).ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd"))
|
if (chl != null && chl.EffDate != null)
|
||||||
{
|
{
|
||||||
switch (chl.DrawerNo)
|
switch (chl.DrawerNo)
|
||||||
{
|
{
|
||||||
|
@ -828,16 +831,16 @@ namespace DM_Weight.ViewModels
|
||||||
{
|
{
|
||||||
//bool[] bools = ModbusHelper.GetInstance().GetAllBoxState();
|
//bool[] bools = ModbusHelper.GetInstance().GetAllBoxState();
|
||||||
//bool allFalse = Array.TrueForAll(bools, b => b == false);
|
//bool allFalse = Array.TrueForAll(bools, b => b == false);
|
||||||
//if (!allFalse)
|
|
||||||
//{
|
|
||||||
// Task.Factory.StartNew(() => { ModbusHelper.SpeakAsync("请关闭药箱后再打开"); });
|
|
||||||
// return;
|
|
||||||
//}
|
|
||||||
if (_socketHelper.OpenStatus)
|
if (_socketHelper.OpenStatus)
|
||||||
{
|
{
|
||||||
ModbusHelper.SpeakAsync("请关闭药箱后再打开");
|
ModbusHelper.SpeakAsync("请关闭药箱后再打开");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//if (_socketHelper.OpenStatus)
|
||||||
|
//{
|
||||||
|
// ModbusHelper.SpeakAsync("请关闭药箱后再打开");
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
DrawerNo = Convert.ToInt32(strDrawerNo);
|
DrawerNo = Convert.ToInt32(strDrawerNo);
|
||||||
MachineRecord machineRecord = new MachineRecord();
|
MachineRecord machineRecord = new MachineRecord();
|
||||||
machineRecord.MachineId = "DM5";
|
machineRecord.MachineId = "DM5";
|
||||||
|
@ -856,62 +859,99 @@ namespace DM_Weight.ViewModels
|
||||||
ModbusHelper.SpeakAsync($"正在打开{DrawerNo + 1}号药箱");
|
ModbusHelper.SpeakAsync($"正在打开{DrawerNo + 1}号药箱");
|
||||||
//记录开药箱日志
|
//记录开药箱日志
|
||||||
SqlSugarHelper.Db.Insertable(machineRecord).ExecuteCommand();
|
SqlSugarHelper.Db.Insertable(machineRecord).ExecuteCommand();
|
||||||
|
try
|
||||||
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = (short)(DrawerNo - 1) });
|
{
|
||||||
|
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = (short)(DrawerNo) });
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
AlertMsg alertMsg = new AlertMsg
|
||||||
|
{
|
||||||
|
Message = $"网口连接异常,正在重试{ex.Message}",
|
||||||
|
Type = MsgType.ERROR,
|
||||||
|
};
|
||||||
|
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||||
|
}
|
||||||
_socketHelper.OpenStatus = true;
|
_socketHelper.OpenStatus = true;
|
||||||
|
Thread.Sleep(200);
|
||||||
int i = 10;
|
int i = 10;
|
||||||
new PromiseUtil<int>().taskAsyncLoop(500, 0, async (options, next, stop) =>
|
new PromiseUtil<int>().taskAsyncLoop(500, 0, async (options, next, stop) =>
|
||||||
{
|
{
|
||||||
i--;
|
|
||||||
if (_socketHelper.OpenStatus)
|
_socketHelper.IsMultiThread = true;
|
||||||
|
try
|
||||||
{
|
{
|
||||||
|
i--;
|
||||||
//bool[] boolsl = ModbusHelper.GetInstance().GetAllBoxState();
|
|
||||||
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = 0x33, functionCode = 4, delay = 2 });
|
|
||||||
|
|
||||||
//ModbusHelper.SpeakAsync($"i为{i};状态为:{_socketHelper.OpenStatus}");
|
|
||||||
//bool state = Array.TrueForAll(boolsl, b => b == false);
|
|
||||||
if (_socketHelper.OpenStatus)
|
if (_socketHelper.OpenStatus)
|
||||||
{
|
{
|
||||||
if (i == 0)
|
|
||||||
|
//bool[] boolsl = ModbusHelper.GetInstance().GetAllBoxState();
|
||||||
|
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = 0x33, functionCode = 4, delay = 2 });
|
||||||
|
|
||||||
|
//ModbusHelper.SpeakAsync($"i为{i};状态为:{_socketHelper.OpenStatus}");
|
||||||
|
//bool state = Array.TrueForAll(boolsl, b => b == false);
|
||||||
|
if (_socketHelper.OpenStatus)
|
||||||
{
|
{
|
||||||
ModbusHelper.SpeakAsync("请及时关闭药箱");
|
if (i == 0)
|
||||||
i = 10;
|
{
|
||||||
|
ModbusHelper.SpeakAsync("请及时关闭药箱");
|
||||||
|
i = 10;
|
||||||
|
}
|
||||||
|
next();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
stop();
|
||||||
}
|
}
|
||||||
next();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
_socketHelper.IsMultiThread = false;
|
||||||
stop();
|
stop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
stop();
|
_socketHelper.OpenStatus = false;
|
||||||
|
AlertMsg alertMsg = new AlertMsg
|
||||||
|
{
|
||||||
|
Message = $"网口连接异常,正在重试{ex.Message}",
|
||||||
|
Type = MsgType.ERROR,
|
||||||
|
};
|
||||||
|
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//ModbusHelper.GetInstance().OpenBoxDoor(DrawerNo);
|
//ModbusHelper.GetInstance().OpenBoxDoor(DrawerNo);
|
||||||
//Task.Factory.StartNew(async () =>
|
//ModbusHelper.BoxOperate = false;
|
||||||
|
//int i = 10;
|
||||||
|
//Task.Factory.StartNew(() =>
|
||||||
//{
|
//{
|
||||||
// bool loop = true;
|
// while (!ModbusHelper.BoxOperate)
|
||||||
// while (loop)
|
|
||||||
// {
|
// {
|
||||||
// await Task.Delay(5000);
|
// Thread.Sleep(500);
|
||||||
// bool[] boolsl = ModbusHelper.GetInstance().GetAllBoxState();
|
// ModbusHelper.BoxOperate = ModbusHelper.GetInstance().GetAllBoxState();
|
||||||
// bool state = Array.TrueForAll(boolsl, b => b == false);
|
// if (!ModbusHelper.BoxOperate)
|
||||||
// if (state)
|
|
||||||
// {
|
// {
|
||||||
// loop = false;
|
// if (i == 0)
|
||||||
// ModbusHelper.BoxOperate = false;
|
// {
|
||||||
|
// ModbusHelper.SpeakAsync("请及时关闭药箱");
|
||||||
|
// }
|
||||||
// }
|
// }
|
||||||
// else
|
// i--;
|
||||||
|
// if (i == 5)
|
||||||
// {
|
// {
|
||||||
// ModbusHelper.BoxOperate = true;
|
// i = 0;
|
||||||
// ModbusHelper.SpeakAsync("药箱已打开,请及时关闭");
|
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
//});
|
//});
|
||||||
|
//管理员开对应药师的药箱后颜色消失
|
||||||
|
ChannelList iList = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cl => cl.MachineId == "DM5" && cl.DrawerNo == DrawerNo + 1).First();
|
||||||
|
if (iList != null)
|
||||||
|
{
|
||||||
|
iList.EffDate = null;
|
||||||
|
SqlSugarHelper.Db.Updateable(iList).UpdateColumns(it => new { it.EffDate }).ExecuteCommand();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -921,9 +961,9 @@ namespace DM_Weight.ViewModels
|
||||||
List<ChannelList> listCls = SqlSugarHelper.Db.Queryable<ChannelList>()
|
List<ChannelList> listCls = SqlSugarHelper.Db.Queryable<ChannelList>()
|
||||||
.LeftJoin<UserList>((cl, ul) => ul.UserBarcode == cl.BelongUser)
|
.LeftJoin<UserList>((cl, ul) => ul.UserBarcode == cl.BelongUser)
|
||||||
.Where(cl => cl.MachineId == "DM5")
|
.Where(cl => cl.MachineId == "DM5")
|
||||||
.GroupBy(cl=>cl.DrawerNo)
|
.GroupBy(cl => cl.DrawerNo)
|
||||||
.Select((cl, ul) => new ChannelList { DrawerNo = cl.DrawerNo, BelongUserName = ul.Nickname }).ToList();
|
.Select((cl, ul) => new ChannelList { DrawerNo = cl.DrawerNo, BelongUserName = ul.Nickname }).ToList();
|
||||||
if (listCls != null && listCls.Count>0)
|
if (listCls != null && listCls.Count > 0)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < listCls.Count; i++)
|
for (int i = 0; i < listCls.Count; i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -156,83 +156,83 @@ namespace DM_Weight.ViewModels
|
||||||
{
|
{
|
||||||
//if (!_portUtil.Operate)
|
//if (!_portUtil.Operate)
|
||||||
//{
|
//{
|
||||||
if (SelectedChildMenu != null)
|
if (SelectedChildMenu != null)
|
||||||
|
{
|
||||||
|
if (SelectedChildMenu.PremissionPath.Equals("TakeRecordWindow"))
|
||||||
{
|
{
|
||||||
if (SelectedChildMenu.PremissionPath.Equals("TakeRecordWindow"))
|
//定义传参变量
|
||||||
{
|
NavigationParameters keys = new NavigationParameters();
|
||||||
//定义传参变量
|
|
||||||
NavigationParameters keys = new NavigationParameters();
|
|
||||||
|
|
||||||
//添加参数,键值对格式
|
//添加参数,键值对格式
|
||||||
keys.Add("Type", 2);
|
keys.Add("Type", 2);
|
||||||
_regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
|
_regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
|
||||||
}
|
}
|
||||||
else if (SelectedChildMenu.PremissionPath.Equals("AddRecordWindow"))
|
else if (SelectedChildMenu.PremissionPath.Equals("AddRecordWindow"))
|
||||||
{
|
{
|
||||||
//定义传参变量
|
//定义传参变量
|
||||||
NavigationParameters keys = new NavigationParameters();
|
NavigationParameters keys = new NavigationParameters();
|
||||||
|
|
||||||
//添加参数,键值对格式
|
//添加参数,键值对格式
|
||||||
keys.Add("Type", 1);
|
keys.Add("Type", 1);
|
||||||
_regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
|
_regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
|
||||||
}
|
}
|
||||||
else if (SelectedChildMenu.PremissionPath.Equals("ReturnRecordWindow"))
|
else if (SelectedChildMenu.PremissionPath.Equals("ReturnRecordWindow"))
|
||||||
{
|
{
|
||||||
//定义传参变量
|
//定义传参变量
|
||||||
NavigationParameters keys = new NavigationParameters();
|
NavigationParameters keys = new NavigationParameters();
|
||||||
|
|
||||||
//添加参数,键值对格式
|
//添加参数,键值对格式
|
||||||
keys.Add("Type", 3);
|
keys.Add("Type", 3);
|
||||||
_regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
|
_regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
|
||||||
}
|
}
|
||||||
else if (SelectedChildMenu.PremissionPath.Equals("RetrunEmptyRecordWindow"))
|
else if (SelectedChildMenu.PremissionPath.Equals("RetrunEmptyRecordWindow"))
|
||||||
{
|
{
|
||||||
//定义传参变量
|
//定义传参变量
|
||||||
NavigationParameters keys = new NavigationParameters();
|
NavigationParameters keys = new NavigationParameters();
|
||||||
|
|
||||||
//添加参数,键值对格式
|
//添加参数,键值对格式
|
||||||
keys.Add("Type", 3);
|
keys.Add("Type", 3);
|
||||||
_regionManager.RequestNavigate("ContentRegion", SelectedChildMenu.PremissionPath, keys);
|
_regionManager.RequestNavigate("ContentRegion", SelectedChildMenu.PremissionPath, keys);
|
||||||
}
|
}
|
||||||
else if (SelectedChildMenu.PremissionPath.Equals("CheckRecordWindow"))
|
else if (SelectedChildMenu.PremissionPath.Equals("CheckRecordWindow"))
|
||||||
{
|
{
|
||||||
//定义传参变量
|
//定义传参变量
|
||||||
NavigationParameters keys = new NavigationParameters();
|
NavigationParameters keys = new NavigationParameters();
|
||||||
|
|
||||||
//添加参数,键值对格式
|
//添加参数,键值对格式
|
||||||
keys.Add("Type", 4);
|
keys.Add("Type", 4);
|
||||||
_regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
|
_regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
if (SelectedChildMenu.PremissionPath.Equals("ReturnDrugWindow") || SelectedChildMenu.PremissionPath.Equals("ReturnDrugWindow2"))
|
||||||
{
|
{
|
||||||
if (SelectedChildMenu.PremissionPath.Equals("ReturnDrugWindow") || SelectedChildMenu.PremissionPath.Equals("ReturnDrugWindow2"))
|
if (ConfigurationManager.AppSettings["returnDrugMode"].ToString().Equals("1"))
|
||||||
{
|
{
|
||||||
if (ConfigurationManager.AppSettings["returnDrugMode"].ToString().Equals("1"))
|
_regionManager.RequestNavigate("ContentRegion", "ReturnDrugWindow2");
|
||||||
{
|
|
||||||
_regionManager.RequestNavigate("ContentRegion", "ReturnDrugWindow2");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_regionManager.RequestNavigate("ContentRegion", "ReturnDrugWindow");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (SelectedChildMenu.PremissionPath.Equals("SettingMainWindow") || SelectedChildMenu.PremissionPath.Equals("SettingWindow"))
|
|
||||||
{
|
|
||||||
if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"]) > 0)
|
|
||||||
{
|
|
||||||
_regionManager.RequestNavigate("ContentRegion", "SettingMainWindow");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_regionManager.RequestNavigate("ContentRegion", "SettingWindow");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_regionManager.RequestNavigate("ContentRegion", SelectedChildMenu.PremissionPath);
|
_regionManager.RequestNavigate("ContentRegion", "ReturnDrugWindow");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (SelectedChildMenu.PremissionPath.Equals("SettingMainWindow") || SelectedChildMenu.PremissionPath.Equals("SettingWindow"))
|
||||||
|
{
|
||||||
|
if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"]) > 0)
|
||||||
|
{
|
||||||
|
_regionManager.RequestNavigate("ContentRegion", "SettingMainWindow");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_regionManager.RequestNavigate("ContentRegion", "SettingWindow");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_regionManager.RequestNavigate("ContentRegion", SelectedChildMenu.PremissionPath);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -291,6 +291,7 @@ namespace DM_Weight.ViewModels
|
||||||
//bool allTrue = Array.TrueForAll(boolArrs, b => b);
|
//bool allTrue = Array.TrueForAll(boolArrs, b => b);
|
||||||
//false是关着,true是开着
|
//false是关着,true是开着
|
||||||
if (!_socketHelper.OpenStatus)
|
if (!_socketHelper.OpenStatus)
|
||||||
|
//if (ModbusHelper.BoxOperate)
|
||||||
{
|
{
|
||||||
logger.Info($"用户【{Operator?.Nickname}】退出登录");
|
logger.Info($"用户【{Operator?.Nickname}】退出登录");
|
||||||
Operator = null;
|
Operator = null;
|
||||||
|
@ -300,7 +301,7 @@ namespace DM_Weight.ViewModels
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//还有药箱开着不能退出
|
//还有药箱开着不能退出
|
||||||
_portUtil.SpeakAsync("请关闭药箱后再退出");
|
ModbusHelper.SpeakAsync("请关闭药箱后再退出");
|
||||||
SelectedMenu = _premissionDmList[0];
|
SelectedMenu = _premissionDmList[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -311,7 +312,7 @@ namespace DM_Weight.ViewModels
|
||||||
//SelectedChildMenu = SelectedMenu.Children[0];
|
//SelectedChildMenu = SelectedMenu.Children[0];
|
||||||
//if (!_portUtil.Operate)
|
//if (!_portUtil.Operate)
|
||||||
//{
|
//{
|
||||||
_regionManager.RequestNavigate("ContentRegion", SelectedMenu.Children[0].PremissionPath);
|
_regionManager.RequestNavigate("ContentRegion", SelectedMenu.Children[0].PremissionPath);
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -685,10 +686,29 @@ namespace DM_Weight.ViewModels
|
||||||
//_chkFunction.HIKStopDVRRecord();
|
//_chkFunction.HIKStopDVRRecord();
|
||||||
Operator = null;
|
Operator = null;
|
||||||
Reviewer = null;
|
Reviewer = null;
|
||||||
//Application.Current.Dispatcher.Invoke(() =>
|
try
|
||||||
//{
|
{
|
||||||
_regionManager.RequestNavigate("MainRegion", "LoginWindow");
|
if (_socketHelper.IsMultiThread)
|
||||||
//});
|
{
|
||||||
|
Application.Current.Dispatcher.BeginInvoke(() =>
|
||||||
|
{
|
||||||
|
_regionManager.RequestNavigate("MainRegion", "LoginWindow");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
Application.Current.Dispatcher.Invoke(() =>
|
||||||
|
{
|
||||||
|
_regionManager.RequestNavigate("MainRegion", "LoginWindow");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
logger.Info($"自动退出异常:{ex.Message}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ using Unity;
|
||||||
using DM_Weight.HIKVISION;
|
using DM_Weight.HIKVISION;
|
||||||
using log4net.Repository.Hierarchy;
|
using log4net.Repository.Hierarchy;
|
||||||
using log4net;
|
using log4net;
|
||||||
|
using System.Windows;
|
||||||
|
|
||||||
namespace DM_Weight.ViewModels
|
namespace DM_Weight.ViewModels
|
||||||
{
|
{
|
||||||
|
@ -67,7 +68,8 @@ namespace DM_Weight.ViewModels
|
||||||
IUnityContainer _container;
|
IUnityContainer _container;
|
||||||
//private CHKFunction _cHKFunction;
|
//private CHKFunction _cHKFunction;
|
||||||
private readonly ILog logger = LogManager.GetLogger(typeof(PortUtil));
|
private readonly ILog logger = LogManager.GetLogger(typeof(PortUtil));
|
||||||
public MainWindowViewModel(IRegionManager regionManager, IUnityContainer container, IEventAggregator eventAggregator, FingerprintUtil fingerprintUtil)
|
SocketHelper _socketHelper;
|
||||||
|
public MainWindowViewModel(IRegionManager regionManager, IUnityContainer container, IEventAggregator eventAggregator, FingerprintUtil fingerprintUtil, SocketHelper socketHelper)
|
||||||
{
|
{
|
||||||
//_portUtil = portUtil;
|
//_portUtil = portUtil;
|
||||||
this.eventAggregator = eventAggregator;
|
this.eventAggregator = eventAggregator;
|
||||||
|
@ -80,8 +82,9 @@ namespace DM_Weight.ViewModels
|
||||||
//System.Windows.Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
|
//System.Windows.Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
|
||||||
//{
|
//{
|
||||||
|
|
||||||
_container.RegisterType<object, LoginWindow>("LoginWindow");
|
_container.RegisterType<object, LoginWindow>("LoginWindow");
|
||||||
_regionManager.RegisterViewWithRegion("MainRegion", "LoginWindow");
|
_regionManager.RegisterViewWithRegion("MainRegion", "LoginWindow");
|
||||||
|
_socketHelper = socketHelper;
|
||||||
|
|
||||||
//}));
|
//}));
|
||||||
|
|
||||||
|
@ -101,7 +104,19 @@ namespace DM_Weight.ViewModels
|
||||||
this.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#00e676"));
|
this.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#00e676"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
SnackbarMessageQueue.Enqueue(msg.Message);
|
if (_socketHelper.IsMultiThread)
|
||||||
|
{
|
||||||
|
Application.Current.Dispatcher.Invoke(new Action(() => {
|
||||||
|
this.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c"));
|
||||||
|
SnackbarMessageQueue.Enqueue(msg.Message);
|
||||||
|
}));
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SnackbarMessageQueue.Enqueue(msg.Message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ using System.Windows.Media;
|
||||||
|
|
||||||
namespace DM_Weight.ViewModels
|
namespace DM_Weight.ViewModels
|
||||||
{
|
{
|
||||||
public class OpenBoxNewWindowViewModel : BindableBase, IRegionMemberLifetime//, INavigationAware
|
public class OpenBoxNewWindowViewModel : BindableBase, IRegionMemberLifetime, INavigationAware
|
||||||
{
|
{
|
||||||
//定时查询药箱状态
|
//定时查询药箱状态
|
||||||
//System.Timers.Timer StateTimer = new System.Timers.Timer(5000);
|
//System.Timers.Timer StateTimer = new System.Timers.Timer(5000);
|
||||||
|
@ -538,7 +538,7 @@ namespace DM_Weight.ViewModels
|
||||||
for (int i = 0; i < chlList.Count; i++)
|
for (int i = 0; i < chlList.Count; i++)
|
||||||
{
|
{
|
||||||
ChannelList chl = chlList[i];
|
ChannelList chl = chlList[i];
|
||||||
if (Convert.ToDateTime(chl.EffDate).ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd"))
|
if (chl != null && chl.EffDate != null)
|
||||||
{
|
{
|
||||||
SetBtnColor(chl.DrawerNo);
|
SetBtnColor(chl.DrawerNo);
|
||||||
}
|
}
|
||||||
|
@ -657,81 +657,110 @@ namespace DM_Weight.ViewModels
|
||||||
channelList.DrawerState = SelfContent.Substring(0, 1) == "取" ? 0 : 1;
|
channelList.DrawerState = SelfContent.Substring(0, 1) == "取" ? 0 : 1;
|
||||||
SqlSugarHelper.Db.Updateable(channelList).UpdateColumns(it => new { it.EffDate, it.DrawerState }).ExecuteCommand();
|
SqlSugarHelper.Db.Updateable(channelList).UpdateColumns(it => new { it.EffDate, it.DrawerState }).ExecuteCommand();
|
||||||
|
|
||||||
//StateTimer.Elapsed += OnTimerElapsed;
|
ModbusHelper.SpeakAsync($"正在打开{DrawerNo}号药箱");
|
||||||
//if (StateTimer.Enabled)
|
|
||||||
//{
|
try
|
||||||
// StateTimer.Stop();
|
|
||||||
// logger.Info($"停止定时查询状态方法");
|
|
||||||
// Thread.Sleep(100);
|
|
||||||
//}
|
|
||||||
//else
|
|
||||||
{
|
{
|
||||||
ModbusHelper.SpeakAsync($"正在打开{DrawerNo}号药箱");
|
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = (short)(DrawerNo - 1) });
|
||||||
}
|
}
|
||||||
//ModbusHelper.GetInstance().OpenBoxDoor(DrawerNo - 1);
|
catch (Exception ex)
|
||||||
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = (short)(DrawerNo - 1) });
|
|
||||||
_socketHelper.OpenStatus = true;
|
|
||||||
|
|
||||||
int i = 10;
|
|
||||||
new PromiseUtil<int>().taskAsyncLoop(500, 0, async (options, next, stop) =>
|
|
||||||
{
|
{
|
||||||
i--;
|
AlertMsg alertMsg = new AlertMsg
|
||||||
if (_socketHelper.OpenStatus)
|
|
||||||
{
|
{
|
||||||
|
Message = $"网口连接异常,正在重试{ex.Message}",
|
||||||
|
Type = MsgType.ERROR,
|
||||||
|
};
|
||||||
|
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
_socketHelper.OpenStatus = true;
|
||||||
|
//_socketHelper.SendMessage(new MyBaseMessage() { lockNo = (short)(DrawerNo - 1) });
|
||||||
|
//_socketHelper.OpenStatus = true;
|
||||||
|
|
||||||
//bool[] boolsl = ModbusHelper.GetInstance().GetAllBoxState();
|
//int i = 10;
|
||||||
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = 0x33, functionCode = 4, delay = 2 });
|
//new PromiseUtil<int>().taskAsyncLoop(500, 0, async (options, next, stop) =>
|
||||||
|
|
||||||
//ModbusHelper.SpeakAsync($"i为{i};状态为:{_socketHelper.OpenStatus}");
|
|
||||||
//bool state = Array.TrueForAll(boolsl, b => b == false);
|
|
||||||
if (_socketHelper.OpenStatus)
|
|
||||||
{
|
|
||||||
if (i == 0)
|
|
||||||
{
|
|
||||||
ModbusHelper.SpeakAsync("请及时关闭药箱");
|
|
||||||
i = 10;
|
|
||||||
}
|
|
||||||
next();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
stop();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
stop();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
//Task.Factory.StartNew(async() =>
|
|
||||||
//{
|
//{
|
||||||
// int i = 0;
|
// i--;
|
||||||
// while (_socketHelper.OpenStatus)
|
// if (_socketHelper.OpenStatus)
|
||||||
// {
|
// {
|
||||||
// await Task.Delay(5000);
|
|
||||||
// //bool[] boolsl = ModbusHelper.GetInstance().GetAllBoxState();
|
// //bool[] boolsl = ModbusHelper.GetInstance().GetAllBoxState();
|
||||||
// _socketHelper.SendMessage(new MyBaseMessage() { lockNo = 0x33, functionCode = 4, delay = 2 });
|
// _socketHelper.SendMessage(new MyBaseMessage() { lockNo = 0x33, functionCode = 4, delay = 2 });
|
||||||
|
|
||||||
|
// //ModbusHelper.SpeakAsync($"i为{i};状态为:{_socketHelper.OpenStatus}");
|
||||||
// //bool state = Array.TrueForAll(boolsl, b => b == false);
|
// //bool state = Array.TrueForAll(boolsl, b => b == false);
|
||||||
// if(_socketHelper.OpenStatus&&i==0)
|
// if (_socketHelper.OpenStatus)
|
||||||
// {
|
// {
|
||||||
// ModbusHelper.SpeakAsync("请及时关闭药箱");
|
// if (i == 0)
|
||||||
|
// {
|
||||||
|
// ModbusHelper.SpeakAsync("请及时关闭药箱");
|
||||||
|
// i = 10;
|
||||||
|
// }
|
||||||
|
// next();
|
||||||
// }
|
// }
|
||||||
// i++;
|
// else
|
||||||
// if(i==5)
|
|
||||||
// {
|
// {
|
||||||
// i = 0;
|
// stop();
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// stop();
|
||||||
|
// }
|
||||||
//});
|
//});
|
||||||
|
Thread.Sleep(200);
|
||||||
|
int i = 10;
|
||||||
|
new PromiseUtil<int>().taskAsyncLoop(500, 0, async (options, next, stop) =>
|
||||||
|
{
|
||||||
|
_socketHelper.IsMultiThread = true;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
|
||||||
|
i--;
|
||||||
|
if (_socketHelper.OpenStatus)
|
||||||
|
{
|
||||||
|
|
||||||
|
//bool[] boolsl = ModbusHelper.GetInstance().GetAllBoxState();
|
||||||
|
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = 0x33, functionCode = 4, delay = 2 });
|
||||||
|
|
||||||
|
//ModbusHelper.SpeakAsync($"i为{i};状态为:{_socketHelper.OpenStatus}");
|
||||||
|
//bool state = Array.TrueForAll(boolsl, b => b == false);
|
||||||
|
if (_socketHelper.OpenStatus)
|
||||||
|
{
|
||||||
|
if (i == 0)
|
||||||
|
{
|
||||||
|
ModbusHelper.SpeakAsync("请及时关闭药箱");
|
||||||
|
i = 10;
|
||||||
|
}
|
||||||
|
next();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
stop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_socketHelper.IsMultiThread = false;
|
||||||
|
stop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_socketHelper.OpenStatus = false;
|
||||||
|
AlertMsg alertMsg = new AlertMsg
|
||||||
|
{
|
||||||
|
Message = $"网口连接异常,正在重试{ex.Message}",
|
||||||
|
Type = MsgType.ERROR,
|
||||||
|
};
|
||||||
|
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||||
|
}
|
||||||
|
});
|
||||||
//StateTimer.Start();
|
//StateTimer.Start();
|
||||||
SelfStatus = 0;
|
SelfStatus = 0;
|
||||||
//PublicEnable = true;
|
//PublicEnable = true;
|
||||||
//SelfEnable = true;
|
//SelfEnable = true;
|
||||||
DrawerType = -1;
|
//DrawerType = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//private void OnTimerElapsed(object sender, ElapsedEventArgs e)
|
//private void OnTimerElapsed(object sender, ElapsedEventArgs e)
|
||||||
|
@ -759,20 +788,20 @@ namespace DM_Weight.ViewModels
|
||||||
// break;
|
// break;
|
||||||
// }
|
// }
|
||||||
//}
|
//}
|
||||||
//public void OnNavigatedTo(NavigationContext navigationContext)
|
public void OnNavigatedTo(NavigationContext navigationContext)
|
||||||
//{
|
{
|
||||||
// _eventAggregator.GetEvent<PortUtilEvent>().Subscribe(DoMyPrismEvent);
|
// _eventAggregator.GetEvent<PortUtilEvent>().Subscribe(DoMyPrismEvent);
|
||||||
// RequestData();
|
RequestData();
|
||||||
//}
|
}
|
||||||
|
|
||||||
//public bool IsNavigationTarget(NavigationContext navigationContext)
|
public bool IsNavigationTarget(NavigationContext navigationContext)
|
||||||
//{
|
{
|
||||||
// return true;
|
return true;
|
||||||
//}
|
}
|
||||||
|
|
||||||
//public void OnNavigatedFrom(NavigationContext navigationContext)
|
public void OnNavigatedFrom(NavigationContext navigationContext)
|
||||||
//{
|
{
|
||||||
// _eventAggregator.GetEvent<PortUtilEvent>().Unsubscribe(DoMyPrismEvent);
|
//_eventAggregator.GetEvent<PortUtilEvent>().Unsubscribe(DoMyPrismEvent);
|
||||||
//}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -194,101 +194,102 @@ namespace DM_Weight.ViewModels
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
//打开药箱
|
//打开药箱
|
||||||
public DelegateCommand OpenBox
|
//public DelegateCommand OpenBox
|
||||||
{
|
//{
|
||||||
get => new DelegateCommand(() =>
|
// get => new DelegateCommand(() =>
|
||||||
{
|
// {
|
||||||
if (DrawerNo > 0)
|
// if (DrawerNo > 0)
|
||||||
{
|
// {
|
||||||
//bool[] bools = ModbusHelper.GetInstance().GetAllBoxState();
|
// //bool[] bools = ModbusHelper.GetInstance().GetAllBoxState();
|
||||||
//bool allFalse = Array.TrueForAll(bools, b => b == false);
|
// //bool allFalse = Array.TrueForAll(bools, b => b == false);
|
||||||
//if (!allFalse)
|
// //if (!allFalse)
|
||||||
if (_socketHelper.OpenStatus)
|
// if (ModbusHelper.BoxOperate)
|
||||||
{
|
// {
|
||||||
Task.Factory.StartNew(() => { ModbusHelper.SpeakAsync("请关闭药箱后再打开"); });
|
// Task.Factory.StartNew(() => { ModbusHelper.SpeakAsync("请关闭药箱后再打开"); });
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
IsEnable = false;
|
// IsEnable = false;
|
||||||
Status = 1;
|
// Status = 1;
|
||||||
//_portUtil.SpeakAsync("正在打开药箱");
|
// //_portUtil.SpeakAsync("正在打开药箱");
|
||||||
//_portUtil.DrawerNo = DrawerNo;
|
// //_portUtil.DrawerNo = DrawerNo;
|
||||||
//_portUtil.OpenBox();
|
// //_portUtil.OpenBox();
|
||||||
_portUtil.SpeakAsync($"正在打开{DrawerNo}号药箱");//记录开药箱日志
|
// _portUtil.SpeakAsync($"正在打开{DrawerNo}号药箱");//记录开药箱日志
|
||||||
SqlSugarHelper.Db.Insertable(new MachineRecord()
|
// SqlSugarHelper.Db.Insertable(new MachineRecord()
|
||||||
{
|
// {
|
||||||
MachineId = "DM5",
|
// MachineId = "DM5",
|
||||||
DrawerNo = DrawerNo,
|
// DrawerNo = DrawerNo,
|
||||||
Operator = HomeWindowViewModel.Operator?.Id,
|
// Operator = HomeWindowViewModel.Operator?.Id,
|
||||||
OperationTime = DateTime.Now,
|
// OperationTime = DateTime.Now,
|
||||||
Type = 55,
|
// Type = 55,
|
||||||
InvoiceId = $"打开{DrawerNo}号药箱",
|
// InvoiceId = $"打开{DrawerNo}号药箱",
|
||||||
}).ExecuteCommand();
|
// }).ExecuteCommand();
|
||||||
|
|
||||||
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = (short)(DrawerNo - 1) });
|
// //_socketHelper.SendMessage(new MyBaseMessage() { lockNo = (short)(DrawerNo - 1) });
|
||||||
_socketHelper.OpenStatus = true;
|
// //_socketHelper.OpenStatus = true;
|
||||||
|
|
||||||
int i = 10;
|
// //int i = 10;
|
||||||
new PromiseUtil<int>().taskAsyncLoop(500, 0, async (options, next, stop) =>
|
// //new PromiseUtil<int>().taskAsyncLoop(500, 0, async (options, next, stop) =>
|
||||||
{
|
// //{
|
||||||
i--;
|
// // i--;
|
||||||
if (_socketHelper.OpenStatus)
|
// // if (_socketHelper.OpenStatus)
|
||||||
{
|
// // {
|
||||||
|
|
||||||
//bool[] boolsl = ModbusHelper.GetInstance().GetAllBoxState();
|
// // //bool[] boolsl = ModbusHelper.GetInstance().GetAllBoxState();
|
||||||
_socketHelper.SendMessage(new MyBaseMessage() { lockNo = 0x33, functionCode = 4, delay = 2 });
|
// // _socketHelper.SendMessage(new MyBaseMessage() { lockNo = 0x33, functionCode = 4, delay = 2 });
|
||||||
|
|
||||||
//ModbusHelper.SpeakAsync($"i为{i};状态为:{_socketHelper.OpenStatus}");
|
// // //ModbusHelper.SpeakAsync($"i为{i};状态为:{_socketHelper.OpenStatus}");
|
||||||
//bool state = Array.TrueForAll(boolsl, b => b == false);
|
// // //bool state = Array.TrueForAll(boolsl, b => b == false);
|
||||||
if (_socketHelper.OpenStatus)
|
// // if (_socketHelper.OpenStatus)
|
||||||
{
|
// // {
|
||||||
IsEnable = true;
|
// // IsEnable = true;
|
||||||
Status = 0;
|
// // Status = 0;
|
||||||
if (i == 0)
|
// // if (i == 0)
|
||||||
{
|
// // {
|
||||||
ModbusHelper.SpeakAsync("请及时关闭药箱");
|
// // ModbusHelper.SpeakAsync("请及时关闭药箱");
|
||||||
i = 10;
|
// // i = 10;
|
||||||
}
|
// // }
|
||||||
next();
|
// // next();
|
||||||
}
|
// // }
|
||||||
else
|
// // else
|
||||||
{
|
// // {
|
||||||
stop();
|
// // stop();
|
||||||
}
|
// // }
|
||||||
}
|
// // }
|
||||||
else
|
// // else
|
||||||
{
|
// // {
|
||||||
stop();
|
// // stop();
|
||||||
}
|
// // }
|
||||||
});
|
// //});
|
||||||
//ModbusHelper.GetInstance().OpenBoxDoor(DrawerNo - 1);
|
// ModbusHelper.GetInstance().OpenBoxDoor(DrawerNo - 1);
|
||||||
////if (bFlag)
|
// //if (bFlag)
|
||||||
//{
|
// {
|
||||||
// IsEnable = true;
|
// IsEnable = true;
|
||||||
// Status = 0;
|
// Status = 0;
|
||||||
//}
|
// }
|
||||||
//Task.Factory.StartNew(async () =>
|
// int i = 10;
|
||||||
//{
|
// Task.Factory.StartNew(async () =>
|
||||||
// bool loop = true;
|
// {
|
||||||
// while (loop)
|
// while (ModbusHelper.BoxOperate)
|
||||||
// {
|
// {
|
||||||
// await Task.Delay(5000);
|
// await Task.Delay(500);
|
||||||
// bool[] boolsl = ModbusHelper.GetInstance().GetAllBoxState();
|
// ModbusHelper.BoxOperate = ModbusHelper.GetInstance().GetAllBoxState();
|
||||||
// bool state = Array.TrueForAll(boolsl, b => b == false);
|
// if(ModbusHelper.BoxOperate)
|
||||||
// if (state)
|
// {
|
||||||
// {
|
// if (i == 0)
|
||||||
// loop = false;
|
// {
|
||||||
// ModbusHelper.BoxOperate = false;
|
// ModbusHelper.SpeakAsync("药箱已打开,请及时关闭");
|
||||||
// }
|
// }
|
||||||
// else
|
// i--;
|
||||||
// {
|
// }
|
||||||
// ModbusHelper.BoxOperate = true;
|
// else
|
||||||
// ModbusHelper.SpeakAsync("药箱已打开,请及时关闭");
|
// {
|
||||||
// }
|
// ModbusHelper.BoxOperate = false;
|
||||||
// }
|
// }
|
||||||
//});
|
// }
|
||||||
}
|
// });
|
||||||
});
|
// }
|
||||||
}
|
// });
|
||||||
|
//}
|
||||||
|
|
||||||
public DelegateCommand SaveSetting
|
public DelegateCommand SaveSetting
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,10 +10,6 @@
|
||||||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||||
xmlns:convert="clr-namespace:DM_Weight.Converter"
|
xmlns:convert="clr-namespace:DM_Weight.Converter"
|
||||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||||
MinWidth="880"
|
|
||||||
MinHeight="615"
|
|
||||||
Width="Auto"
|
|
||||||
Height="Auto"
|
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
<UserControl.Resources>
|
<UserControl.Resources>
|
||||||
<convert:DrawerSelectConverter x:Key="DrawerSelectConverter" />
|
<convert:DrawerSelectConverter x:Key="DrawerSelectConverter" />
|
||||||
|
@ -44,7 +40,7 @@
|
||||||
</Grid.RowDefinitions>-->
|
</Grid.RowDefinitions>-->
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="Auto" />
|
<ColumnDefinition Width="Auto" />
|
||||||
<ColumnDefinition Width="Auto" />
|
<ColumnDefinition Width="15*" />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
@ -74,7 +70,7 @@
|
||||||
Content="{materialDesign:PackIcon Refresh}"/>
|
Content="{materialDesign:PackIcon Refresh}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>-->
|
</Grid>-->
|
||||||
<Grid Margin="6" Grid.Column="0" Width="300" Height="570">
|
<Grid Margin="6" Grid.Column="0">
|
||||||
<Grid.Resources>
|
<Grid.Resources>
|
||||||
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource MaterialDesignPaperLightButton}">
|
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource MaterialDesignPaperLightButton}">
|
||||||
<Setter Property="Foreground" Value="#00a0ea" />
|
<Setter Property="Foreground" Value="#00a0ea" />
|
||||||
|
@ -119,36 +115,36 @@
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Row="0" Grid.Column="0" Width="120" Content="1号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="1" />
|
<Button Margin="0 0 3 0" Grid.Row="0" Grid.Column="0" Width="120" Content="1号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="1" />
|
||||||
<Button Grid.Row="1" Grid.Column="0" Width="120" Content="2号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="2" />
|
<Button Margin="0 0 3 0" Grid.Row="1" Grid.Column="0" Width="120" Content="2号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="2" />
|
||||||
<Button Grid.Row="2" Grid.Column="0" Width="120" Content="3号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="3" />
|
<Button Margin="0 0 3 0" Grid.Row="2" Grid.Column="0" Width="120" Content="3号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="3" />
|
||||||
<Button Grid.Row="3" Grid.Column="0" Width="120" Content="4号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="4" />
|
<Button Margin="0 0 3 0" Grid.Row="3" Grid.Column="0" Width="120" Content="4号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="4" />
|
||||||
<Button Grid.Row="4" Grid.Column="0" Width="120" Content="5号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="5" />
|
<Button Margin="0 0 3 0" Grid.Row="4" Grid.Column="0" Width="120" Content="5号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="5" />
|
||||||
<Button Grid.Row="5" Grid.Column="0" Width="120" Content="6号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="6" />
|
<Button Margin="0 0 3 0" Grid.Row="5" Grid.Column="0" Width="120" Content="6号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="6" />
|
||||||
<Button Grid.Row="6" Grid.Column="0" Width="120" Content="7号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="7" />
|
<Button Margin="0 0 3 0" Grid.Row="6" Grid.Column="0" Width="120" Content="7号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="7" />
|
||||||
<Button Grid.Row="7" Grid.Column="0" Width="120" Content="8号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="8" />
|
<Button Margin="0 0 3 0" Grid.Row="7" Grid.Column="0" Width="120" Content="8号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="8" />
|
||||||
|
|
||||||
<Button Grid.Row="8" Grid.Column="0" Width="120" Content="9号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="9" />
|
<Button Margin="0 0 3 0" Grid.Row="8" Grid.Column="0" Width="120" Content="9号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="9" />
|
||||||
<Button Grid.Row="0" Grid.Column="1" Width="120" Content="10号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="10" />
|
<Button Margin="0 0 3 0" Grid.Row="0" Grid.Column="1" Width="120" Content="10号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="10" />
|
||||||
<Button Grid.Row="1" Grid.Column="1" Width="120" Content="11号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="11" />
|
<Button Margin="0 0 3 0" Grid.Row="1" Grid.Column="1" Width="120" Content="11号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="11" />
|
||||||
<Button Grid.Row="2" Grid.Column="1" Width="120" Content="12号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="12" />
|
<Button Margin="0 0 3 0" Grid.Row="2" Grid.Column="1" Width="120" Content="12号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="12" />
|
||||||
<Button Grid.Row="3" Grid.Column="1" Width="120" Content="13号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="13" />
|
<Button Margin="0 0 3 0" Grid.Row="3" Grid.Column="1" Width="120" Content="13号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="13" />
|
||||||
<Button Grid.Row="4" Grid.Column="1" Width="120" Content="14号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="14" />
|
<Button Margin="0 0 3 0" Grid.Row="4" Grid.Column="1" Width="120" Content="14号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="14" />
|
||||||
<Button Grid.Row="5" Grid.Column="1" Width="120" Content="15号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="15" />
|
<Button Margin="0 0 3 0" Grid.Row="5" Grid.Column="1" Width="120" Content="15号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="15" />
|
||||||
<Button Grid.Row="6" Grid.Column="1" Width="120" Content="16号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="16" />
|
<Button Margin="0 0 3 0" Grid.Row="6" Grid.Column="1" Width="120" Content="16号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="16" />
|
||||||
<Button Grid.Row="7" Grid.Column="1" Width="120" Content="17号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="17" />
|
<Button Margin="0 0 3 0" Grid.Row="7" Grid.Column="1" Width="120" Content="17号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="17" />
|
||||||
<Button Grid.Row="8" Grid.Column="1" Width="120" Content="18号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="18" />
|
<Button Margin="0 0 3 0" Grid.Row="8" Grid.Column="1" Width="120" Content="18号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="18" />
|
||||||
<!--<Button Grid.Row="8" Grid.Column="1" Width="120" Content="19号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="19" />
|
<!--<Button Grid.Row="8" Grid.Column="1" Width="120" Content="19号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="19" />
|
||||||
<Button Grid.Row="9" Grid.Column="1" Width="120" Content="20号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="20" />-->
|
<Button Grid.Row="9" Grid.Column="1" Width="120" Content="20号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="20" />-->
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Grid Grid.Column="2" Margin="6">
|
<Grid Grid.Column="1" Margin="6">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition />
|
<RowDefinition Height="Auto"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal">
|
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal" Grid.ColumnSpan="2">
|
||||||
<ComboBox
|
<ComboBox
|
||||||
Margin="0 0 6 0"
|
Margin="0 0 6 0"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
|
@ -213,6 +209,12 @@
|
||||||
<GridViewColumn Width="200"
|
<GridViewColumn Width="200"
|
||||||
DisplayMemberBinding="{Binding DrugInfo.DrugName}"
|
DisplayMemberBinding="{Binding DrugInfo.DrugName}"
|
||||||
Header="药品名称"/>
|
Header="药品名称"/>
|
||||||
|
<GridViewColumn Width="200"
|
||||||
|
DisplayMemberBinding="{Binding DrugInfo.Manufactory}"
|
||||||
|
Header="厂家"/>
|
||||||
|
<GridViewColumn Width="200"
|
||||||
|
DisplayMemberBinding="{Binding DrugInfo.DrugSpec}"
|
||||||
|
Header="规格"/>
|
||||||
<GridViewColumn Width="100"
|
<GridViewColumn Width="100"
|
||||||
DisplayMemberBinding="{Binding BaseQuantity}"
|
DisplayMemberBinding="{Binding BaseQuantity}"
|
||||||
Header="药品基数"/>
|
Header="药品基数"/>
|
||||||
|
@ -220,8 +222,8 @@
|
||||||
DisplayMemberBinding="{Binding Quantity}"
|
DisplayMemberBinding="{Binding Quantity}"
|
||||||
Header="药品库存"/>
|
Header="药品库存"/>
|
||||||
|
|
||||||
</GridView>
|
</GridView>
|
||||||
</ListView.View>
|
</ListView.View>
|
||||||
</ListView>
|
</ListView>
|
||||||
<materialDesign:Snackbar
|
<materialDesign:Snackbar
|
||||||
Background="{Binding SnackbarBackground}"
|
Background="{Binding SnackbarBackground}"
|
||||||
|
|
|
@ -3,6 +3,7 @@ using DM_Weight.Port;
|
||||||
using DM_Weight.ViewModels;
|
using DM_Weight.ViewModels;
|
||||||
using log4net;
|
using log4net;
|
||||||
using log4net.Repository.Hierarchy;
|
using log4net.Repository.Hierarchy;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
using Prism.Events;
|
using Prism.Events;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
@ -29,9 +30,9 @@ namespace DM_Weight.Views
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class HomeWindow : UserControl
|
public partial class HomeWindow : UserControl
|
||||||
{
|
{
|
||||||
private readonly ILog logger = LogManager.GetLogger(typeof(CheckOrderNewWindowViewModel));
|
private readonly ILog logger = LogManager.GetLogger(typeof(HomeWindow));
|
||||||
int autoExit = Convert.ToInt32(ConfigurationManager.AppSettings["autoExit"] ?? "0");
|
int autoExit = Convert.ToInt32(ConfigurationManager.AppSettings["autoExit"] ?? "0");
|
||||||
System.Timers.Timer idleTimer;//= new System.Timers.Timer(60000);
|
public static System.Timers.Timer idleTimer;//= new System.Timers.Timer(60000);
|
||||||
IEventAggregator _eventAggregator;
|
IEventAggregator _eventAggregator;
|
||||||
SocketHelper _socketHelper;
|
SocketHelper _socketHelper;
|
||||||
public HomeWindow(IEventAggregator eventAggregator, SocketHelper socketHelper)
|
public HomeWindow(IEventAggregator eventAggregator, SocketHelper socketHelper)
|
||||||
|
@ -52,6 +53,9 @@ namespace DM_Weight.Views
|
||||||
private void OnUserActivity(object sender, EventArgs e)
|
private void OnUserActivity(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
idleTimer.Stop();
|
idleTimer.Stop();
|
||||||
|
|
||||||
|
idleTimer.AutoReset = true;
|
||||||
|
idleTimer.Interval =autoExit * 1000;
|
||||||
idleTimer.Start();
|
idleTimer.Start();
|
||||||
}
|
}
|
||||||
private void OnTimerElapsed(object sender, ElapsedEventArgs e)
|
private void OnTimerElapsed(object sender, ElapsedEventArgs e)
|
||||||
|
@ -59,13 +63,22 @@ namespace DM_Weight.Views
|
||||||
// 串口无人操作
|
// 串口无人操作
|
||||||
//bool[] boolArrs = ModbusHelper.GetInstance().GetAllBoxState();
|
//bool[] boolArrs = ModbusHelper.GetInstance().GetAllBoxState();
|
||||||
//bool allTrue = Array.TrueForAll(boolArrs, b => b == false);
|
//bool allTrue = Array.TrueForAll(boolArrs, b => b == false);
|
||||||
logger.Info($"进入自动退出定时方法{_socketHelper.OpenStatus}");
|
logger.Info($"进入自动退出定时方法{ModbusHelper.BoxOperate}");
|
||||||
if (_socketHelper.OpenStatus && idleTimer.Enabled)
|
//if (ModbusHelper.BoxOperate)
|
||||||
|
if (!_socketHelper.OpenStatus)
|
||||||
{
|
{
|
||||||
idleTimer.Stop();
|
if (idleTimer.Enabled)
|
||||||
//无人操作,自动退出
|
{
|
||||||
_eventAggregator.GetEvent<LoginOutEvent>().Publish();
|
idleTimer.Stop();
|
||||||
|
//无人操作,自动退出
|
||||||
|
_eventAggregator.GetEvent<LoginOutEvent>().Publish();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
//else
|
||||||
|
//{
|
||||||
|
// idleTimer.Interval = autoExit * 1000;
|
||||||
|
// idleTimer.AutoReset = true;
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,10 +9,6 @@
|
||||||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||||
xmlns:convert="clr-namespace:DM_Weight.Converter"
|
xmlns:convert="clr-namespace:DM_Weight.Converter"
|
||||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||||
MinWidth="880"
|
|
||||||
MinHeight="615"
|
|
||||||
Width="Auto"
|
|
||||||
Height="Auto"
|
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
<UserControl.Resources>
|
<UserControl.Resources>
|
||||||
<convert:StatusConverter x:Key="StatusConverter" />
|
<convert:StatusConverter x:Key="StatusConverter" />
|
||||||
|
@ -24,7 +20,7 @@
|
||||||
<ColumnDefinition Width="Auto" />
|
<ColumnDefinition Width="Auto" />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid Margin="6" Grid.Column="0" Width="300" Height="570">
|
<Grid Margin="6" Grid.Column="0">
|
||||||
<Grid.Resources>
|
<Grid.Resources>
|
||||||
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource MaterialDesignPaperLightButton}">
|
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource MaterialDesignPaperLightButton}">
|
||||||
<Setter Property="Foreground" Value="#00a0ea" />
|
<Setter Property="Foreground" Value="#00a0ea" />
|
||||||
|
@ -69,25 +65,25 @@
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Row="0" Grid.Column="0" Width="120" Content="1号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="1" />
|
<Button Margin="0 0 3 0" Grid.Row="0" Grid.Column="0" Width="120" Content="1号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="1" />
|
||||||
<Button Grid.Row="1" Grid.Column="0" Width="120" Content="2号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="2" />
|
<Button Margin="0 0 3 0" Grid.Row="1" Grid.Column="0" Width="120" Content="2号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="2" />
|
||||||
<Button Grid.Row="2" Grid.Column="0" Width="120" Content="3号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="3" />
|
<Button Margin="0 0 3 0" Grid.Row="2" Grid.Column="0" Width="120" Content="3号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="3" />
|
||||||
<Button Grid.Row="3" Grid.Column="0" Width="120" Content="4号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="4" />
|
<Button Margin="0 0 3 0" Grid.Row="3" Grid.Column="0" Width="120" Content="4号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="4" />
|
||||||
<Button Grid.Row="4" Grid.Column="0" Width="120" Content="5号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="5" />
|
<Button Margin="0 0 3 0" Grid.Row="4" Grid.Column="0" Width="120" Content="5号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="5" />
|
||||||
<Button Grid.Row="5" Grid.Column="0" Width="120" Content="6号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="6" />
|
<Button Margin="0 0 3 0" Grid.Row="5" Grid.Column="0" Width="120" Content="6号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="6" />
|
||||||
<Button Grid.Row="6" Grid.Column="0" Width="120" Content="7号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="7" />
|
<Button Margin="0 0 3 0" Grid.Row="6" Grid.Column="0" Width="120" Content="7号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="7" />
|
||||||
<Button Grid.Row="7" Grid.Column="0" Width="120" Content="8号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="8" />
|
<Button Margin="0 0 3 0" Grid.Row="7" Grid.Column="0" Width="120" Content="8号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="8" />
|
||||||
|
|
||||||
<Button Grid.Row="8" Grid.Column="0" Width="120" Content="9号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="9" />
|
<Button Margin="0 0 3 0" Grid.Row="8" Grid.Column="0" Width="120" Content="9号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="9" />
|
||||||
<Button Grid.Row="0" Grid.Column="1" Width="120" Content="10号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="10" />
|
<Button Margin="0 0 3 0" Grid.Row="0" Grid.Column="1" Width="120" Content="10号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="10" />
|
||||||
<Button Grid.Row="1" Grid.Column="1" Width="120" Content="11号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="11" />
|
<Button Margin="0 0 3 0" Grid.Row="1" Grid.Column="1" Width="120" Content="11号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="11" />
|
||||||
<Button Grid.Row="2" Grid.Column="1" Width="120" Content="12号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="12" />
|
<Button Margin="0 0 3 0" Grid.Row="2" Grid.Column="1" Width="120" Content="12号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="12" />
|
||||||
<Button Grid.Row="3" Grid.Column="1" Width="120" Content="13号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="13" />
|
<Button Margin="0 0 3 0" Grid.Row="3" Grid.Column="1" Width="120" Content="13号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="13" />
|
||||||
<Button Grid.Row="4" Grid.Column="1" Width="120" Content="14号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="14" />
|
<Button Margin="0 0 3 0" Grid.Row="4" Grid.Column="1" Width="120" Content="14号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="14" />
|
||||||
<Button Grid.Row="5" Grid.Column="1" Width="120" Content="15号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="15" />
|
<Button Margin="0 0 3 0" Grid.Row="5" Grid.Column="1" Width="120" Content="15号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="15" />
|
||||||
<Button Grid.Row="6" Grid.Column="1" Width="120" Content="16号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="16" />
|
<Button Margin="0 0 3 0" Grid.Row="6" Grid.Column="1" Width="120" Content="16号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="16" />
|
||||||
<Button Grid.Row="7" Grid.Column="1" Width="120" Content="17号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="17" />
|
<Button Margin="0 0 3 0" Grid.Row="7" Grid.Column="1" Width="120" Content="17号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="17" />
|
||||||
<Button Grid.Row="8" Grid.Column="1" Width="120" Content="18号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="18" />
|
<Button Margin="0 0 3 0" Grid.Row="8" Grid.Column="1" Width="120" Content="18号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="18" />
|
||||||
<!--<Button Grid.Row="8" Grid.Column="1" Width="120" Content="19号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="19" />
|
<!--<Button Grid.Row="8" Grid.Column="1" Width="120" Content="19号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="19" />
|
||||||
<Button Grid.Row="9" Grid.Column="1" Width="120" Content="20号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="20" />-->
|
<Button Grid.Row="9" Grid.Column="1" Width="120" Content="20号药箱" Command="{Binding UpdateDrawerNo}" CommandParameter="20" />-->
|
||||||
|
|
||||||
|
@ -99,7 +95,7 @@
|
||||||
<RowDefinition />
|
<RowDefinition />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal">
|
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal">
|
||||||
<Button
|
<!--<Button
|
||||||
Margin="6 0 6 6"
|
Margin="6 0 6 6"
|
||||||
ToolTip="打开药箱"
|
ToolTip="打开药箱"
|
||||||
Content="打开药箱"
|
Content="打开药箱"
|
||||||
|
@ -107,7 +103,7 @@
|
||||||
Command="{Binding OpenBox}"
|
Command="{Binding OpenBox}"
|
||||||
materialDesign:ButtonProgressAssist.IsIndicatorVisible="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnLoading}"
|
materialDesign:ButtonProgressAssist.IsIndicatorVisible="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnLoading}"
|
||||||
materialDesign:ButtonProgressAssist.IsIndeterminate="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnLoading}"
|
materialDesign:ButtonProgressAssist.IsIndeterminate="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnLoading}"
|
||||||
Style="{StaticResource MaterialDesignOutlinedLightButton}" />
|
Style="{StaticResource MaterialDesignOutlinedLightButton}" />-->
|
||||||
<Button
|
<Button
|
||||||
Margin="6 0 6 6"
|
Margin="6 0 6 6"
|
||||||
ToolTip="保存设置"
|
ToolTip="保存设置"
|
||||||
|
|
Loading…
Reference in New Issue