using Seyounth.Hyosung.Data.Models;
using Seyounth.Hyosung.Data.Models.Plc;
namespace Seyounth.Hyosung.Core.Plc;
public interface IHyosungPlcService
{
Task StartAsync(CancellationToken token);
Task StopAsync();
///
/// 写入品种到PLC
///
///
///
Task WriteVarietyAsync(Variety variety);
///
/// 写入扫码结果
///
/// 结果
/// 品类ID
/// 纱码
///
Task WriteScanYarnResultAsync(bool result, short? varietyId = null, string? yarnCode = null);
///
/// 写入治具扫码结果
///
///
///
///
///
Task WriteScanFixtureResultAsync(int fixtureId, bool result, short? fixtureCode = null);
///
/// 下线完成
///
///
Task LeaveCompletedAsync();
///
/// 写入托盘号
///
///
///
///
Task WriteTrayCodeAsync(int index, string trayCode);
///
/// 写入收到的纱数量
///
///
///
Task WriteReceivedYarnCountAsync(int count);
Task WritePackLineOptionAsync(PackLineOption option);
Task WritePrintLableOptionsAsync(int side);
Task WritePrintLabelResultAsync(int index, bool result);
///
/// Plc请求扫描产品
///
event Func OnPlcRequestScanProduct;
///
/// Plc请求扫描治具
///
event Func OnPlcRequestScanFixture;
///
/// Plc请求下线
///
event Func OnPlcRequestLeavingProductionLine;
///
/// Plc需要新的托盘号
///
event Func OnPlcNeedNewTrayCode;
///
/// Plc放入一次完成
///
event Func OnPlcPutCompleted;
///
/// Plc请求打包线选项
///
event Func OnPlcRequestPackLineOption;
///
/// 贴标站请求贴标
///
event Func OnRequestPrintLabel;
event Func OnRequestGetPrintLableOption;
}