namespace luoqicheng.SCAN
{
public class KeyenceScan : SCANBase
{
public string Type => "KEYENCE";
string m_IP="";
int m_port=0;
private ReaderAccessor m_readerAccssor;
public KeyenceScan(string ip, int port)
{
m_IP = ip;
m_port = port;
}
public void Close()
{
try
{
m_readerAccssor.ExecCommand("LOFF");
}
catch (Exception ex)
{
}
}
public bool Init()
{
try
{
m_readerAccssor = new ReaderAccessor();
m_readerAccssor.CommandPort = m_port;
m_readerAccssor.DataPort = m_port;
m_readerAccssor.IpAddress = m_IP;
if (!m_readerAccssor.Connect())
{
return false;
}
return true;
}
catch (Exception ex)
{
return false;
}
}
public Tuple<bool, string> Scan()
{
try
{
Stopwatch sw = new Stopwatch();
sw.Start();
string trayCode = ""; ;
string scan = string.Empty;
// m_readerAccssor.Connect();
trayCode = m_readerAccssor.ExecCommand("LON", 5000);
if (string.IsNullOrEmpty(trayCode))
{
// trayCode = m_readerAccssor.ExecCommand("LOFF", 200);
}
else
{
// m_readerAccssor.ExecCommand("LOFF",100);
}
if (trayCode == null || trayCode == "")
{
return new Tuple<bool, string>(true, "ERROR,ERROR,ERROR,ERROR");
}
int index = trayCode.IndexOf("\r");
scan = trayCode.Substring(0, index);
sw.Reset();
return new Tuple<bool, string>(true, scan.Trim());
}
catch (Exception ex)
{
return new Tuple<bool, string>(false, "ERROR,ERROR,ERROR,ERROR");
}
}
public Tuple<bool, string> Scan(int x)
{
// throw new NotImplementedException();
return new Tuple<bool, string>(false,"");
}
public bool Status()
{
try
{
if (m_readerAccssor != null)
{
return m_readerAccssor.Connect();
}
return false;
}
catch (Exception ex)
{
return false;
}
}
}
}