using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TeamAAS_VP.Enums;
using TeamAAS_VP.Models;
using TouchSocket.Sockets;
namespace TeamAAS_VP.Interfaces
{
public interface IScanner : IDisposable
{
#region 基础信息
///
/// 客户端
///
TcpClient TcpClient { get; }
///
/// 服务器
///
TcpService TcpService { get; }
///
/// 扫码枪ID
///
Guid Id { get; set; }
string Name { get; set; }
///
/// 扫码枪编号
///
int ScannerNo { get; set; }
///
/// 扫码枪端口
///
int ScannerPort { get; }
///
/// 扫码枪IP地址
///
string ScannerIp { get; }
///
/// 扫码枪通讯方式
///
TCPConnectType ConnectType { get; }
///
/// 结束符
///
Terminator Terminator { get; }
///
/// 通讯数据编码
///
DataEncoding DataEncoding { get; }
//RobotBrand Brand { get; }
event Action ConnectedEvent;
event Action DisconnectedEvent;
event Action ReceivedEvent;
event Action SendEvent;
bool CanExecute { get; }
int SelectedTool { get; }
///
/// 进入调试模式
///
///
bool EnterDebugMode { get; set; }
//当前位置
RPoint CurrentPosition { get; }
#endregion
#region 连接通讯
///
/// 扫码枪连接状态
///
bool IsConnected { get; }
///
/// 超时时间
///
int Timeout { get; set; }
///
/// 连接扫码枪
///
void Connect();
///
/// 连接扫码枪
///
///
Task ConnectAsync();
///
/// 断开连接
///
void Disconnect();
#endregion
#region 数据发送接收
///
/// 发送并接收数据
///
///
///
string SendAndReceive(string send);
///
/// 发送并接收数据
///
///
///
Task SendAndReceiveAsync(string send);
///
/// 发送并接收数据
///
///
///
string SendAndReceive(ITcpSessionClient client, string send);
///
/// 发送并接收数据
///
///
///
Task SendAndReceiveAsync(ITcpSessionClient client, string send);
///
/// 发送数据
///
///
void Send(string send);
///
/// 发送数据
///
///
///
Task SendAsync(string send);
///
/// 发送数据
///
///
void Send(ITcpSessionClient client, string send);
///
/// 发送数据
///
///
///
Task SendAsync(ITcpSessionClient client, string send);
Encoding GetEncoding();
#endregion
}
}