using Entity.Constant;
using log4net;
using Service.Charger.Client;
using Service.Mgr;
using Service.Padar.Client;
namespace Service.Execute.Api;
public class PlcApi
{
private const int TimeSpan = 60;
private static readonly ILog Log = LogManager.GetLogger("PlcApi");
///
/// 数据有效时间。单位秒
///
static int DataTimeSeconds = 2;
///
/// 是否远程模式
///
///
public static bool IsRemote()
{
return ClientMgr.PlcClient!.Remote;
}
///
/// 是否初始化完成
///
///
public static bool IsInit()
{
return ClientMgr.PlcClient!.Init;
}
///
/// 是否自动
///
///
public static bool IsAuto()
{
if (ClientMgr.PlcClient!=null)
{
return ClientMgr.PlcClient.Auto;
}
return false;
}
///
/// 下发启动换电
///
///
public static bool StartSwapping(string inBinNo, string outBinNo)
{
StationSoftMgr.PutDeviceLog((int)StationConstant.DeviceCode.Plc,SwapConstant.PlcProtocol.StartSwap,
$"出仓位:{outBinNo},入仓位:{inBinNo}" ,(int)SwapConstant.CommunicationType.Send);
Log.Info($"PlcApi StartSwapping param= inBinNo={inBinNo}, outBinNo={outBinNo}");
ClientMgr.PlcClient?.SendStartBatterySwapReq(Convert.ToByte(outBinNo), Convert.ToByte(inBinNo));
Log.Info($"PlcApi StartSwapping done");
return ClientMgr.PlcClient.SwapStart;
}
///
/// 电池搬运
///
///
public static bool StartBatteryMove(string inBinNo, string outBinNo)
{
StationSoftMgr.PutDeviceLog((int)StationConstant.DeviceCode.Plc,SwapConstant.PlcProtocol.StartBatteryMove,
$"出仓位:{inBinNo},入仓位:{outBinNo}" ,(int)SwapConstant.CommunicationType.Send);
Log.Info($"PlcApi StartBatteryMove param= inBinNo={inBinNo}, outBinNo={outBinNo}");
ClientMgr.PlcClient?.SendMoveCommandReq(Convert.ToByte(inBinNo), Convert.ToByte(outBinNo));
Log.Info($"PlcApi StartBatteryMove done");
return ClientMgr.PlcClient.SwapStart;
}
///
/// 发送初始化命令
///
///
public static bool Init()
{
Log.Info($"PlcApi Init ");
ClientMgr.PlcClient?.SendInitializeCommandReq();
Log.Info($"PlcApi Init done");
return true;
}
///
/// 发送红绿灯
///
///
public static bool Traffic(byte Light)
{
Log.Info($"PlcApi Init ");
ClientMgr.PlcClient?.SendTrafficLightReq(Light);
Log.Info($"PlcApi Init done");
return true;
}
}