找传奇、传世资源到传世资源站!

C#与基恩士扫码sr1000通讯实例

8.5玩家评分(1人评分)
下载后可评
介绍 评论 失效链接反馈

基恩士扫码与C#通讯
C#与基恩士扫码sr1000通讯实例 C#语言基础-第1张
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Keyence.AutoID;

namespace SrLiveViewSample
{
    public partial class Form1 : Form
    {
        private readonly Dictionary<string, ReaderType> readerTable = new Dictionary<string, ReaderType>
        {
            {"SR-D100", ReaderType.SR_D100},
            {"SR-750", ReaderType.SR_750},
            {"SR-700", ReaderType.SR_700},
            {"SR-1000", ReaderType.SR_1000},
            {"SR-2000", ReaderType.SR_2000}
        };

        public Form1()
        {
            InitializeComponent();

            comboBoxReader.Items.Clear();
            foreach (var reader in readerTable)
            {
                comboBoxReader.Items.Add(reader.Key);
            }
            comboBoxReader.SelectedIndex = readerTable.Count - 1;

            //
            // Register handler for reading data received event
            //
            this.barcodeReaderControl1.OnDataReceived = barcodeReaderControl1_OnDataReceived;
            //
            // Set the interface to connect the reader
            //
            this.barcodeReaderControl1.Comm.Interface = Interface.Ethernet;
            //
            // Set the IP address of the reader to connect
            //
            this.barcodeReaderControl1.IpAddress = "192.168.100.100";
            //
            // Set the TCP port number of the reader to connect
            //
            // Comannd port number must be different from Data port number
            //
            this.barcodeReaderControl1.Ether.CommandPort = 9003;
            this.barcodeReaderControl1.Ether.DataPort = 9004;
        }

        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                //
                // Connect to the Reader
                //
                this.barcodeReaderControl1.Connect();
                this.textBox1.Text = "Connected successfully";
                if (this.barcodeReaderControl1.Comm.Interface == Interface.USB)
                {
                    //
                    // Send "SKCLOSE" in order to occupy the data port connection
                    //
                    this.barcodeReaderControl1.SKCLOSE();
                }
                else
                {
                    //
                    // Make sure that command response character string is specified.
                    //
                    string val = this.barcodeReaderControl1.RP("610");
                    switch (this.barcodeReaderControl1.ReaderType)
                    {
                        case ReaderType.SR_2000:
                        case ReaderType.SR_1000:
                        case ReaderType.SR_700:
                            if (!val.Equals("1"))
                            {
                                this.textBox1.Text = "Set Baseic command response string to Detailed response.";
                            }
                            break;
                        case ReaderType.SR_D100:
                        case ReaderType.SR_750:
                            if (!val.Equals("0"))
                            {
                                this.textBox1.Text = "Disable the setting of Specify response character.";
                            }
                            break;
                        default:
                            break;
                    }
                }
            }
            catch (Exception ex)
            {
                this.textBox1.Text = ex.Message;
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.textBox1.Text = "";
            try
            {
                //
                // Send LON command
                //
                this.barcodeReaderControl1.LON();
            }
            catch (CommandException cex)
            {
                //
                // ExtErrCode shows the number of command error
                //
                this.textBox1.Text = "Command err," cex.ExtErrCode;
            }
            catch (Exception ex)
            {
                this.textBox1.Text = ex.Message;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.textBox1.Text = "";
            try
            {
                //
                // Send LOFF command
                //
                this.barcodeReaderControl1.LOFF();
            }
            catch (Exception ex)
            {
                this.textBox1.Text = ex.Message;
            }
        }

        private void barcodeReaderControl1_OnDataReceived(object sender, OnDataReceivedEventArgs e)
        {
            //
            // Delegate display processing of the received data to the textBox
            //
            this.textBox2.Invoke(new updateTextBoxDelegate(updateTextBox), e.data);
        }

        //
        // Delegated function of the textBox
        //
        private delegate void updateTextBoxDelegate(byte[] data);
        private void updateTextBox(byte[] data)
        {
            //
            // Display the received data to the textBox 
            //
            this.textBox2.Text = Encoding.GetEncoding("Shift_JIS").GetString(data);

            //
            // Image file saving process
            //
            bool saveImage;
            if (this.textBox2.Text.StartsWith("ERROR"))
            {
                saveImage = radioButtonImageErrSave.Checked;

            }
            else
            {
                saveImage = radioButtonImageOkSave.Checked;
            }
            if (saveImage)
            {
                try
                {
                    //
                    // Get file path of saved file
                    //
                    string srcFile = this.barcodeReaderControl1.LSIMG();
                    string dstFile = srcFile.Split('\\')[2];
                    //
                    // Get image file
                    //
                    this.barcodeReaderControl1.GetFile(srcFile, dstFile);
                    MessageBox.Show(dstFile, "Image file");
                }
                catch (Exception ex)
                {
                    this.textBox1.Text = ex.Message;
                }
            }
        }

        private void button6_Click(object sender, EventArgs e)
        {
            this.textBox1.Text = "";
            try
            {
                //
                // Start processing of LiveView
                //
                this.barcodeReaderControl1.StartLiveView();
            }
            catch (Exception ex)
            {
                this.textBox1.Text = ex.Message;
            }
        }

        private void radioButton5_CheckedChanged(object sender, EventArgs e)
        {
            if (this.radioButton5.Checked)
            {
                this.barcodeReaderControl1.StopLiveView();
                this.barcodeReaderControl1.Comm.Interface = Interface.USB;
            }
        }

        private void radioButton4_CheckedChanged(object sender, EventArgs e)
        {
            if (this.radioButton4.Checked)
            {
                this.barcodeReaderControl1.StopLiveView();
                this.barcodeReaderControl1.Comm.Interface = Interface.Ethernet;
            }
        }

        private void comboBoxReader_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.barcodeReaderControl1.StopLiveView();

            ReaderType readerType = readerTable[comboBoxReader.Text];

            //
            // Set the type of reader to connect
            //
            this.barcodeReaderControl1.ReaderType = readerType;

            groupBox3.Enabled = ((readerType != ReaderType.SR_D100) && (readerType != ReaderType.SR_750));
        }
    }
}

评论

发表评论必须先登陆, 您可以 登陆 或者 注册新账号 !


在线咨询: 问题反馈
客服QQ:174666394

有问题请留言,看到后及时答复