语音添加取消及恢复
This commit is contained in:
parent
6b1a640995
commit
e6ffeffc11
|
@ -1,64 +0,0 @@
|
||||||
using DM_Weight.ViewModels;
|
|
||||||
using FluentModbus;
|
|
||||||
using log4net;
|
|
||||||
using Polly;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Net;
|
|
||||||
using System.Speech.Synthesis;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace DM_Weight.Port
|
|
||||||
{
|
|
||||||
public class ModBusTcpClientHelper
|
|
||||||
{
|
|
||||||
public static ModbusTcpClient client;
|
|
||||||
public static bool BoxOperate { get; set; }
|
|
||||||
private readonly ILog logger = LogManager.GetLogger(typeof(CheckOrderNewWindowViewModel));
|
|
||||||
public static ModbusTcpClient GetInstance()
|
|
||||||
{
|
|
||||||
if (client == null)
|
|
||||||
{
|
|
||||||
client = new ModbusTcpClient();
|
|
||||||
client.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 4002), ModbusEndianness.BigEndian);
|
|
||||||
}
|
|
||||||
else if (!client.IsConnected)
|
|
||||||
{
|
|
||||||
client.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 4002), ModbusEndianness.BigEndian);
|
|
||||||
}
|
|
||||||
return client;
|
|
||||||
}
|
|
||||||
public bool OpenBoxDoor(int boxNum)
|
|
||||||
{
|
|
||||||
bool bFlag = false;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
BoxOperate = true;
|
|
||||||
Thread.Sleep(50);
|
|
||||||
client.WriteSingleRegister(1, (ushort)boxNum, 0);
|
|
||||||
logger.Info($"开门指令已发送{(ushort)boxNum}");
|
|
||||||
SpeakAsync("药箱已打开,请及时关闭");
|
|
||||||
bFlag = true;
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
SpeakAsync("药箱已打开,请及时关闭");
|
|
||||||
logger.Info($"药箱已打开异常:{ex.Message}");
|
|
||||||
}
|
|
||||||
return bFlag;
|
|
||||||
}
|
|
||||||
public bool[] GetAllBoxState()
|
|
||||||
{
|
|
||||||
bool[] state = new bool[1];
|
|
||||||
return state;
|
|
||||||
}
|
|
||||||
private static SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer();
|
|
||||||
public static void SpeakAsync(string textinfo)
|
|
||||||
{
|
|
||||||
speechSynthesizer.SpeakAsync(textinfo);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -15,6 +15,7 @@ using System.Collections.Generic;
|
||||||
using System.Configuration;
|
using System.Configuration;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using System.Speech.Synthesis;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
@ -118,5 +119,11 @@ namespace DM_Weight.Port
|
||||||
{
|
{
|
||||||
iConnectFuture.Session.Write(baseMessage);
|
iConnectFuture.Session.Write(baseMessage);
|
||||||
}
|
}
|
||||||
|
public SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer();
|
||||||
|
public void SpeakAsync(string textinfo)
|
||||||
|
{
|
||||||
|
speechSynthesizer.Rate = 2;
|
||||||
|
speechSynthesizer.SpeakAsync(textinfo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -834,7 +834,9 @@ namespace DM_Weight.ViewModels
|
||||||
//bool allFalse = Array.TrueForAll(bools, b => b == false);
|
//bool allFalse = Array.TrueForAll(bools, b => b == false);
|
||||||
if (_socketHelper.OpenStatus)
|
if (_socketHelper.OpenStatus)
|
||||||
{
|
{
|
||||||
ModbusHelper.SpeakAsync("请关闭药箱后再打开");
|
_socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
|
||||||
|
_socketHelper.speechSynthesizer.Resume();
|
||||||
|
_socketHelper.SpeakAsync("请关闭药箱后再打开");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//if (_socketHelper.OpenStatus)
|
//if (_socketHelper.OpenStatus)
|
||||||
|
@ -857,7 +859,9 @@ namespace DM_Weight.ViewModels
|
||||||
DrawerNo -= 1;
|
DrawerNo -= 1;
|
||||||
RequestData();
|
RequestData();
|
||||||
Status = 1;
|
Status = 1;
|
||||||
ModbusHelper.SpeakAsync($"正在打开{DrawerNo + 1}号药箱");
|
_socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
|
||||||
|
_socketHelper.speechSynthesizer.Resume();
|
||||||
|
_socketHelper.SpeakAsync($"正在打开{DrawerNo + 1}号药箱");
|
||||||
//记录开药箱日志
|
//记录开药箱日志
|
||||||
SqlSugarHelper.Db.Insertable(machineRecord).ExecuteCommand();
|
SqlSugarHelper.Db.Insertable(machineRecord).ExecuteCommand();
|
||||||
try
|
try
|
||||||
|
@ -901,7 +905,9 @@ namespace DM_Weight.ViewModels
|
||||||
{
|
{
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
{
|
{
|
||||||
ModbusHelper.SpeakAsync("请及时关闭药箱");
|
_socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
|
||||||
|
_socketHelper.speechSynthesizer.Resume();
|
||||||
|
_socketHelper.SpeakAsync("请及时关闭药箱");
|
||||||
i = 80;
|
i = 80;
|
||||||
}
|
}
|
||||||
next();
|
next();
|
||||||
|
|
|
@ -625,7 +625,9 @@ namespace DM_Weight.ViewModels
|
||||||
//if (!allFalse)
|
//if (!allFalse)
|
||||||
if (_socketHelper.OpenStatus)
|
if (_socketHelper.OpenStatus)
|
||||||
{
|
{
|
||||||
ModbusHelper.SpeakAsync("请关闭药箱后再打开");
|
_socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
|
||||||
|
_socketHelper.speechSynthesizer.Resume();
|
||||||
|
_socketHelper.SpeakAsync("请关闭药箱后再打开");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
iList = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cl => cl.MachineId == "DM5" && cl.DrawerType == this.DrawerType && cl.DrawerNo == DrawerNo)
|
iList = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cl => cl.MachineId == "DM5" && cl.DrawerType == this.DrawerType && cl.DrawerNo == DrawerNo)
|
||||||
|
@ -657,7 +659,10 @@ 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();
|
||||||
|
|
||||||
ModbusHelper.SpeakAsync($"正在打开{DrawerNo}号药箱");
|
//ModbusHelper.SpeakAsync($"正在打开{DrawerNo}号药箱");
|
||||||
|
_socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
|
||||||
|
_socketHelper.speechSynthesizer.Resume();
|
||||||
|
_socketHelper.SpeakAsync($"正在打开{DrawerNo}号药箱");
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -733,7 +738,9 @@ namespace DM_Weight.ViewModels
|
||||||
{
|
{
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
{
|
{
|
||||||
ModbusHelper.SpeakAsync("请及时关闭药箱");
|
_socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
|
||||||
|
_socketHelper.speechSynthesizer.Resume();
|
||||||
|
_socketHelper.SpeakAsync("请及时关闭药箱");
|
||||||
i = 80;
|
i = 80;
|
||||||
}
|
}
|
||||||
next();
|
next();
|
||||||
|
@ -741,7 +748,7 @@ namespace DM_Weight.ViewModels
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_socketHelper.IsMultiThread = false;
|
_socketHelper.IsMultiThread = false;
|
||||||
_socketHelper.dateTime=DateTime.Now;
|
_socketHelper.dateTime = DateTime.Now;
|
||||||
//_socketHelper.OpenStatus = false;
|
//_socketHelper.OpenStatus = false;
|
||||||
stop();
|
stop();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue