Esempio n. 1
0
        /// <summary>
        /// 打开指定的端口
        /// </summary>
        public bool OpenPort()
        {
            int openresult;

            tempport        = UHFReaderConfigurations.UHFReader.COM.Trim();
            portnum         = Convert.ToInt32(tempport.Substring(3, tempport.Length - 3));
            fComAdr         = Convert.ToByte("FF", 16);
            frmcomportindex = portnum;
            for (int i = 6; i >= 0; i--)
            {
                fBaud = Convert.ToByte(i);
                if (fBaud == 3)
                {
                    continue;
                }
                frmcomportindex = portnum;
                openresult      = UHFReader18CSharp.OpenComPort(portnum, ref fComAdr, fBaud, ref frmcomportindex);
                if (openresult == 0)
                {
                    MessageBox.Show("串口打开成功");
                    hasopen = true;
                    break;
                }
            }
            return(hasopen);
        }
Esempio n. 2
0
        /// <summary>
        /// 询查标签
        /// </summary>
        public void Inquiry()
        {
            int CardNum  = 0;
            int Totallen = 0;

            byte[] EPC = new byte[5000];
            string temps;
            byte   AdrTID     = 0;
            byte   LenTID     = 0;
            byte   TIDFlag    = 0;
            bool   TIDInquiry = false;

            if (TIDInquiry == true)
            {
                AdrTID  = Convert.ToByte("0", 16);
                LenTID  = Convert.ToByte("3", 16);
                TIDFlag = 1;
            }
            else
            {
                AdrTID  = 0;
                LenTID  = 0;
                TIDFlag = 0;
            }
            fCmdRet = UHFReader18CSharp.Inventory_G2(ref fComAdr, AdrTID, LenTID, TIDFlag, EPC, ref Totallen, ref CardNum, frmcomportindex);
            if (fCmdRet == 1 | (fCmdRet == 2) | (fCmdRet == 3) | (fCmdRet == 4) | (fCmdRet == 0xFB))//代表查找结束
            {
                byte[] daw = new byte[Totallen];
                Array.Copy(EPC, daw, Totallen);
                temps = ByteArrayToHexString(daw);
                fInventory_EPC_List = temps;//存储标签记录
            }
        }
Esempio n. 3
0
 /// <summary>
 /// 写入读写器地址 设置读写器功率
 /// </summary>
 public void WriteReaderAddress()
 {
     try
     {
         int    a; //记录读写器地址写入返回值
         int    b; //记录读写器功率设置返回值
         int    c; //记录读写器工作频率设置返回值
         int    d; //记录读写器串口波特率设置返回值
         int    e; //记录读写器询查命令最大响应时间设置返回值
         byte   newComAdr;
         byte   powerDbm;
         byte   scantime;
         byte   dminfre;
         byte   dmaxfre;
         byte   band      = 0;
         int    dminIndex = 0;
         int    dmaxIndex = 62;
         string address   = UHFReaderConfigurations.UHFReader.Address.Trim();
         newComAdr = Convert.ToByte(address);
         int power        = Convert.ToInt32(UHFReaderConfigurations.UHFReader.Power.Trim());
         int tempTime     = Convert.ToInt32(UHFReaderConfigurations.UHFReader.MaximumResponseTime);
         int innquirtTime = tempTime / 100;
         scantime = Convert.ToByte(innquirtTime);
         powerDbm = Convert.ToByte(power);
         dminfre  = Convert.ToByte(((band & 3) << 6) | (dminIndex & 0x3F));
         dmaxfre  = Convert.ToByte(((band & 0x0c) << 4) | (dmaxIndex & 0x3F));
         if (hasopen)
         {
             a = UHFReader18CSharp.WriteComAdr(ref fComAdr, ref newComAdr, frmcomportindex);
             if (a == 0)
             {
                 MessageBox.Show("读写器地址写入成功");
             }
             b = UHFReader18CSharp.SetPowerDbm(ref fComAdr, powerDbm, frmcomportindex);
             if (b == 0)
             {
                 MessageBox.Show("功率设置成功");
             }
             c = UHFReader18CSharp.Writedfre(ref fComAdr, ref dmaxfre, ref dminfre, frmcomportindex);
             if (c == 0)
             {
                 MessageBox.Show("读写器工作频率设置成功");
             }
             d = UHFReader18CSharp.Writebaud(ref fComAdr, ref fBaud, frmcomportindex);
             if (d == 0)
             {
                 MessageBox.Show("波特率设置成功");
             }
             e = UHFReader18CSharp.WriteScanTime(ref fComAdr, ref scantime, frmcomportindex);
             if (e == 0)
             {
                 MessageBox.Show("询查命令最大响应时间设置成功");
             }
         }
     }
     catch (Exception)
     {
     }
 }
Esempio n. 4
0
        /// <summary>
        /// 设置工作模式参数
        /// </summary>
        public void SetWorkModelParamter()
        {
            byte Wg_mode = 0;
            byte Wg_Data_Inteval;
            byte Wg_Pulse_Width;
            byte Wg_Pulse_Inteval;

            try
            {
                if (hasopen)
                {
                    string wiegandOupt        = UHFReaderConfigurations.UHFReader.WiegandOutputMode.Trim();
                    string wiegand            = UHFReaderConfigurations.UHFReader.Wiegand.Trim();
                    string dataOutputInterval = UHFReaderConfigurations.UHFReader.DataOutputInterval.Trim();
                    string pulseInterval      = UHFReaderConfigurations.UHFReader.PulseInterval;
                    string pulseWidth         = UHFReaderConfigurations.UHFReader.PulseWidth;
                    int    data_Inteval       = Convert.ToInt32(dataOutputInterval);
                    int    pulse_Width        = Convert.ToInt32(pulseWidth);
                    int    pulse_Inteval      = Convert.ToInt32(pulseInterval);
                    int    dataIntervalIndex  = 30;
                    int    pulseIntervalIndex = 15;
                    int    pulseWidthIndex    = 10;
                    if (wiegand == "韦根26" && wiegandOupt == "韦根输出低字节在前")
                    {
                        Wg_mode = 2;
                    }
                    else
                    {
                        Wg_mode = 0;
                    }
                    if (wiegand == "韦根34" && wiegandOupt == "韦根输出低字节在前")
                    {
                        Wg_mode = 3;
                    }
                    else
                    {
                        Wg_mode = 1;
                    }
                    Wg_Data_Inteval  = Convert.ToByte(dataIntervalIndex);
                    Wg_Pulse_Inteval = Convert.ToByte(pulseIntervalIndex);
                    Wg_Pulse_Width   = Convert.ToByte(pulseWidthIndex);
                    int d = UHFReader18CSharp.SetWGParameter(ref fComAdr, Wg_mode, Wg_Data_Inteval, Wg_Pulse_Width, Wg_Pulse_Inteval, frmcomportindex);
                    if (d == 0)
                    {
                        MessageBox.Show("韦根参数设置成功");
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Esempio n. 5
0
 /// <summary>
 /// 设置工作模式为应答模式
 /// </summary>
 public void SetWorkModus()
 {
     try
     {
         if (hasopen)
         {
             byte[] parameter = new byte[6];
             parameter[0] = Convert.ToByte(0);
             int e = UHFReader18CSharp.SetWorkMode(ref fComAdr, parameter, frmcomportindex);
             if (e == 0)
             {
                 MessageBox.Show("应答模式设置成功");
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
     }
 }
Esempio n. 6
0
 private void buttonConfirm_Click(object sender, EventArgs e)
 {
     try
     {
         string accessPwd   = textBoxAceessCodes.Text.Trim();
         string writeEPCNum = textBoxWriteEPC.Text.Trim();
         byte[] WriteEPC    = new byte[100];
         byte   WriteEPCLen;
         byte   ENum;
         if (accessPwd.Length < 8)
         {
             MessageBox.Show("访问密码小于8位!请重新输入", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         if ((writeEPCNum.Length % 4) != 0)
         {
             MessageBox.Show("请输入以字为单位的16进制数!'+#13+#10+'例如:1234、12345678!", "信息提示");
             return;
         }
         WriteEPCLen = Convert.ToByte(writeEPCNum.Length / 2);
         ENum        = Convert.ToByte(writeEPCNum.Length / 4);
         byte[] EPC = new byte[ENum];
         EPC       = HexStringToByteArray(writeEPCNum);
         fPassWord = HexStringToByteArray(accessPwd);
         fCmdRet   = UHFReader18CSharp.WriteEPC_G2(ref fComAdr, fPassWord, EPC, WriteEPCLen, ref ferrorcode, frmcomportindex);
         if (fCmdRet == 0)
         {
             //StorageMaterials storageMaterials = new StorageMaterials();
             StorageMaterials.storageMaterials.text_Rfid.Text = writeEPCNum;
             //StorageMaterials.storageMaterials.Show();
             MessageBox.Show("写入成功!");
             this.Close();
         }
     }
     catch
     {
     }
 }