public void ShowEPC(object sender, Command.ShowEPCEventArgs e)
 {
     try
     {
         _epc_t MultiID = e.MultiEPC;
         bool   isexit  = false;
         for (int index = 0; index < epcs_list.Count; index++)
         {
             if ((epcs_list[index].epc == MultiID.epc) && (epcs_list[index].dev == MultiID.dev))
             {
                 MultiID.count    = epcs_list[index].count + 1;
                 epcs_list[index] = MultiID;
                 isexit           = true;
                 break;
             }
         }
         if (!isexit)
         {
             epcs_list.Add(MultiID);
         }
     }
     catch (Exception ex)
     {
         new LogWriter(ex);
     }
 }
Esempio n. 2
0
        public void ShowEPC(object sender, Command.ShowEPCEventArgs e)
        {
            //  UpdateLog(e.CommandRespond);
            //  string[] result = e.CommandRespond.Split(',');
            string[] result = (e.CommandRespond + "," + flag).Split(',');           //每条命令后面加一个flag  用于循环盘存EPC显示
            byte     type   = Convert.ToByte(result[1], 16);

            switch (type)
            {
            case Types.GET_MAC_ADD_RESPOND:

                COM_DevID = PrivateStringFormat.shortTolongNum(result[4]);

                string bz_str = "";
                if (COM_DevID.Length < 15)
                {
                    int bz_len = 15 - COM_DevID.Length;

                    for (int i = 0; i < bz_len; i++)
                    {
                        bz_str += "0";
                    }

                    COM_DevID = COM_DevID.Substring(0, 2) + bz_str + COM_DevID.Substring(2, 11);
                }


                //  UpdateLBM(result); // 乔佳 2018-7-27 网络参数页面获取长编码
                //  UpdateMac(result);

                break;

            default:
                break;
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 读取数据参数回调
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ShowEPC(object sender, Command.ShowEPCEventArgs e)
        {
            try
            {
                string[] result = e.CommandRespond.Split(',');
                byte     type   = Convert.ToByte(result[1], 16);
                switch (type)
                {
                //读取标签
                case Types.READ_TAGS_RESPOND:
                    if (result[2] == "1" && result[3] == "000000000000000000000000")
                    {
                        string resultEPC = ReaderControllor.WriteTags(ReaderControllor.GetClientInfo()[0], "", 0x00, "", 0, 0, 4, txtKillPassword.Text + txtEPCpassWord.Text);
                        RFIDWriteState.Operate = RFIDWriteState.WritePassword;
                    }
                    else if (result[2] == "1" && result[3] != "000000000000000000000000")
                    {
                        //检测二维码标签是否与RFID标签相同
                        if (result[3] == ComReciveData[0])
                        {
                            //发送给PLC
                            Access.UpdataOneCheck(result[3], Access.Havewrite);
                            this.Invoke(UpDataTableWrite, new object[] { txtWriteData.Text, Access.Havewrite });
                            //发送写标成功信号,500毫秒的低电平,PLC电平触发任务
                            Sleep(500, 2);
                        }
                        else
                        {
                            Access.UpdataOneCheck(txtWriteData.Text, Access.FailCheck);
                            this.Invoke(UpDataTableCheck, new object[] { result[3], Access.FailCheck });
                        }
                    }
                    //标签损坏
                    else if (result[2] != "1")
                    {
                        Access.UpdataOneWirte(txtWriteData.Text, Access.WriteFail);
                        this.Invoke(UpDataTableWrite, new object[] { txtWriteData.Text, Access.WriteFail });
                    }
                    break;

                //写标签
                case Types.WRITE_TAGS_RESPOND:
                    if (result[2] == "1" && RFIDWriteState.Operate == RFIDWriteState.WritePassword)
                    {
                        AsyncSocketState WorkingReader = ReaderControllor.GetClientInfo()[0];
                        //判断数据长度是否为24位,若不是24位自动补够24位
                        String Writedata = txtWriteData.Text;
                        if (txtWriteData.Text.Length < 24)
                        {
                            Writedata = Writedata.PadRight(24, '0');
                        }
                        string resultRPC = ReaderControllor.WriteTags(ReaderControllor.GetClientInfo()[0], "", 0x00, "", 1, 2, 6, Writedata);
                        RFIDWriteState.Operate = RFIDWriteState.WriteEPC;
                    }
                    else if (result[2] == "1" && RFIDWriteState.Operate == RFIDWriteState.WriteEPC)
                    {
                        string resultEPCLock = ReaderControllor.LockTags(ReaderControllor.GetClientInfo()[0], txtEPCpassWord.Text, 254, "", new byte[] { 3, 192, 160 });
                        RFIDWriteState.Operate = RFIDWriteState.LockTags;
                    }
                    break;

                //锁标签
                case Types.LOCK_TAGS_RESPOND:
                    //锁RFID标签成功
                    if (result[2] == "1" && RFIDWriteState.Operate == RFIDWriteState.LockTags)
                    {
                        //跟新数据状态
                        Access.UpdataOneWirte(txtWriteData.Text, Access.Havewrite);
                        this.Invoke(UpDataTableWrite, new object[] { txtWriteData.Text, Access.Havewrite });
                        //发送写标成功信号,500毫秒的低电平,PLC电平触发任务
                        Sleep(500, 1);
                        //给激光喷码机发送数据
                        MarkingPort.Write(txtWriteData.Text);
                    }
                    break;
                }
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
            }
        }
Esempio n. 4
0
        private void ShowData(object sender, Command.ShowEPCEventArgs e)
        {
            string[] result = (e.CommandRespond + "," + flag).Split(',');           //每条命令后面加一个flag  用于循环盘存EPC显示
            byte     type   = Convert.ToByte(result[1], 16);

            readDataTimer.Tick    += new EventHandler(timeCycle);
            readDataTimer.Interval = new TimeSpan(0, 0, 0, 1);
            switch (type)
            {
            case Types.START_MULTI_EPC_RESPOND:
            case Types.START_SINGLE_EPC_RESPOND:

                string ants   = "天线:" + result[4].ToString() + "/",
                       srfid  = "卡号:" + result[5].ToString().Replace("-", "") + "/",
                       times  = "相对时间:" + result[8].ToString() + "/",
                       ips    = "端口:" + result[10].ToString() + "/",
                       counts = "次数:" + result[11].ToString() + "/",
                       stimes = "接收时间:" + result[12].ToString();
                read_rfid = ants + srfid + counts + stimes + "\n";
                isstate   = 2;
                //this.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
                //    (System.Threading.ThreadStart) delegate()
                //    {
                //        listinfo.DataContext = "";
                //      Thread.Sleep(TimeSpan.FromSeconds(1));

                //        listinfo.AppendText(read_rfid );
                //    });
                //readDataTimer.Start();
                //if (isSourceDataSave)
                //{
                //    GetSourceData(result);
                //    UpdateMultiEPC(result); // 开始保存原始数据
                //    NNNum = NNNum + 1;     // 记录每秒读标速度
                //    if (IsTagDoor == true)
                //    {
                //        updatedoor();
                //    }
                //}
                //else
                //{
                //    UpdateMultiEPC(result);
                //    NNNum = NNNum + 1;
                //    if (IsTagDoor == true)
                //    {
                //        updatedoor();
                //    }
                //}
                // dev_version = "97";
                break;

            case Types.GET_MAC_ADD_RESPOND:

                COM_DevID = PrivateStringFormat.shortTolongNum(result[4]);

                string bz_str = "";
                if (COM_DevID.Length < 15)
                {
                    int bz_len = 15 - COM_DevID.Length;

                    for (int i = 0; i < bz_len; i++)
                    {
                        bz_str += "0";
                    }

                    COM_DevID = COM_DevID.Substring(0, 2) + bz_str + COM_DevID.Substring(2, 11);
                }
                isstate = 1;

                readDataTimer.Start();

                //  UpdateLBM(result); // 乔佳 2018-7-27 网络参数页面获取长编码
                //  UpdateMac(result);

                break;

            default:
                break;
            }
        }