一、连接读码器
//实例化一个新读码器
private ReaderAccessor m_reader = new ReaderAccessor();
//IP地址设置
m_reader.IpAddress = "192.168.100.100";
//连接读码器
bool iscon = m_reader.Connect();
二、读码器命令
//开始读命令
string readdate = m_reader.ExecCommand("LON");
//关闭读取命令
string readdate = m_reader.ExecCommand("LOFF");
//还有好多其他命令可以看官方SDK手册
三、整体代码
using Keyence.AutoID.SDK;
private ReaderAccessor m_reader = new ReaderAccessor();
private void Form12_Load(object sender, EventArgs e)
{
m_reader.IpAddress = "192.168.100.100";
Task.Run(() =>
{
readValue();
});
}
bool isOpen = false;
void readValue()
{
while(true)
{
if(isOpen)
{
string readdate = m_reader.ExecCommand("LON");
addlog1(readdate);
}
Thread.Sleep(1000);
}
}
private void button1_Click(object sender, EventArgs e)
{
bool iscon = m_reader.Connect();
}
private void button2_Click(object sender, EventArgs e)
{
isOpen = true;
}
private void button3_Click(object sender, EventArgs e)
{
isOpen = false;
Thread.Sleep(1000);
string readdate = m_reader.ExecCommand("LOFF");
}
public void addlog1(string value)
{
listBox1.Invoke(new Action(() =>
{
listBox1.Items.Add("1" + value);
}));
}
总结
这个目前只会读取Data Matrix码,其它码看官方是支持的但是目前还没找到在哪里设置。如果单纯只是读码操作只需要引用Keyence.AutoID.SDK 这个SDK就可以了。基恩士这个读码请求时发一次,扫码器就开启读取,但是如果要真的获取还是要写一个线程不停的读,如果有更好方法欢迎大家一起讨论。