using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel.Design;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
using Team.FFFeederService.Enums;
using Team.FFFeederService.Interfaces;
using Team.FFFeederService.Models;
using TouchSocket.Core;
using TouchSocket.Sockets;
namespace Team.FFFeederService
{
///
/// Feeder 参数读写控制
///
public class TeamFeeder : IVoiceCoilMotorFeeder
{
#region 字段
///
/// 背光打开命令
///
private const string LightOpenCommand = "{K1}";
///
/// 背光关闭命令
///
private const string LightCloseCommand = "{K0}";
///
/// 查询背光状态命令
///
private const string QueryLightStateCommand = "{K?}";
///
/// 平台振动参数起始地址
///
private const int ShakeParamStartAddress = 300;
///
/// 料斗振动参数起始地址
///
private const int HopperParamStartAddress = 742;
///
/// 序列参数起始地址
///
private const int SequenceParamStartAddress = 950;
private IWaitingClient WaitClient;
//private bool isFirstConnect = true;
private Task bgConnectTask;
#endregion
#region 属性
public FeederBrand FeederBrand { get => FeederBrand.TEAM; }
public FeederModel FeederModel { get; private set; } = FeederModel.Unknown;
public Guid Id { get; set; }
public int FeederNo { get; set; }
public string Name { get; set; }
///
/// Feeder连接状态
///
public bool IsConnected => TcpClient.Online;
///
/// Feeder是否首次连接成功
///
public bool IsInit { get; private set; }
///
/// Feeder IP地址
///
public string FeederIp => TcpClient.IP;
///
/// Feeder 端口
///
public int FeederPort => TcpClient.Port;
///
/// 接收数据的超时时间
///
public int MillisecondsTimeout = 5000; //接收数据超时时间
///
/// TCP客户端通讯
///
public TcpClient TcpClient { get; }
#endregion
// private const string SelectOneShakeCommand = "{UV1}\r\n";
#region 事件
///
/// Feeder连接状态更改事件
///
public event Action