using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Entity.DomainModels;
namespace WIDESEA_WCS.WCSClient
{
public class DBExtension
{
///
///
///
/// 设备信息地址
///
///
///
public static object Read(dt_plcinfodetail detail, PLCClient client)
{
if (detail.plcdetail_valtype == typeof(int).Name.ToLower())//4字节,有符号类型
{
return (client.Read(detail.plcdetail_db + "." + detail.plcdetail_value));
}
else if (detail.plcdetail_valtype == typeof(uint).Name.ToLower())//4字节,无符号类型
{
return (client.Read(detail.plcdetail_db + "." + detail.plcdetail_value));
}
else if (detail.plcdetail_valtype == typeof(short).Name.ToLower())//2字节,有符号类型,最常用
{
return (client.Read(detail.plcdetail_db + "." + detail.plcdetail_value));
}
else if (detail.plcdetail_valtype == typeof(ushort).Name.ToLower())//2字节,无符号类型
{
return (client.Read(detail.plcdetail_db + "." + detail.plcdetail_value));
}
else if (detail.plcdetail_valtype == typeof(float).Name.ToLower())//浮点型
{
return (client.Read(detail.plcdetail_db + "." + detail.plcdetail_value));
}
else if (detail.plcdetail_valtype == typeof(bool).Name.ToLower())
{
return (client.Read(detail.plcdetail_db + "." + detail.plcdetail_value));
}
else if (detail.plcdetail_valtype == typeof(byte).Name.ToLower())//字节
{
return (client.Read(detail.plcdetail_db + "." + detail.plcdetail_value));
}
else if (detail.plcdetail_valtype == typeof(string).Name.ToLower())//字符串
{
return (client.Read(detail.plcdetail_db + "." + detail.plcdetail_value, detail.plcdetail_len.GetValueOrDefault()));
}
else
{
throw new Exception($"【{detail.plcdetail_remark}】,DB地址{detail.plcdetail_db + "." + detail.plcdetail_value},未定义数据类型{detail.plcdetail_valtype}");
}
}
///
///
///
///
///
///
///
public static object Write(dt_plcinfodetail detail, PLCClient client, object value)
{
try
{
return (client.Write(detail.plcdetail_db + "." + detail.plcdetail_value, value));
}
catch (Exception ex)
{
throw;
}
}
}
}