/*using Cognex.VisionPro.ToolBlock; using Cognex.VisionPro; using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.RootFinding; using NPOI.SS.Formula.Functions; using NPOI.Util; using OpenCvSharp; using OpenCvSharp.Flann; using Prism.Events; using Prism.Ioc; using Prism.Mvvm; using Prism.Regions; using Prism.Services.Dialogs; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; using System.Linq; using System.Net.Sockets; using System.Security.Cryptography; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows; using System.Windows.Documents; using System.Windows.Interop; using System.Windows.Media; using System.Windows.Media.Media3D; using Team.FFFeederService; using Team.FFFeederService.Interfaces; using TeamAAS_VP.Data; using TeamAAS_VP.Enums; using TeamAAS_VP.Events; using TeamAAS_VP.Models; using TeamAAS_VP.ViewModels.Home; using TouchSocket.Core; using TouchSocket.Sockets; using TeamAAS_VP.Core; using TeamAAS_VP.Interfaces; public class UserScript:IBackgroundScripting { #region 属性 public IRegionManager regionManager{get;set;} public IEventAggregator eventAggregator{get;set;} public IContainerProvider container{get;set;} public Management management{get;set;} public ProductModel CurrentProduct { get; set; } #endregion public async Task Execute() { if(management==null) return;// Task.CompletedTask; foreach (var item in management.DeviceConfig.Robots) { //绑定接收机器人数据事件 _robotService.GetRobot(item.Id).ReceivedEvent += Robot_ReceivedEvent; } //后台服务器接收数据事件绑定 management.BgCommunicate.ReceivedEvent += BgCommunicate_ReceivedEvent; while(true) { await Task.Delay(5000); } //return Task.CompletedTask; } //机器人接收数据 private async void Robot_ReceivedEvent(Guid robotid, object arg2, TouchSocket.Sockets.ReceivedDataEventArgs e) { var robot = await _robotService.GetRobotAsync(robotid); var r = management.DeviceConfig.Robots.FirstOrDefault(ro => ro.Id == robotid); string robotname=r.RobotName; //从服务器收到信息。但是一般byteBlock和requestInfo会根据适配器呈现不同的值。 var buffer = e.ByteBlock.Span.ToString(robot.GetEncoding()); if (robot.ConnectType == TCPConnectType.Client) { //await robot.SendAsync($"123"); //发送数据 } else { var cient = (ITcpSessionClient)arg2; //await robot.SendAsync(cient, $"123"); //发送数据 } } //后台TCP接收数据 private async void BgCommunicate_ReceivedEvent(ITcpSessionClient client, string msg) { //SendTaskMessage($"服务器[{client.ServicePort}]ReceiveFor客户端[{client.Id}:{client.IP}]:{msg}", MessageLevel.Info); //await management.BgCommunicate.SendAsync(client, $"123"); //发送数据 } public void SendTaskMessage(string msg, MessageLevel level) { eventAggregator.GetEvent().Publish(new TeamAAS_VP.Models.MessageStruct() { Message = msg, level = level }); } }*/