Пример #1
0
        void test_实时互动1()
        {
            //接收到一个标签数据
            MiddleWareCore.set_mode(MiddleWareMode.实时互动);
            string cmd1 = "[select,master_node,equip000001,stu000001,01,A]";

            MiddleWareCore.Set_new_data(ProtocolHelper.getProtocolHelper(cmd1));
            IntelligentEvent evt1 = MiddleWareCore.get_a_event();

            if (evt1.epcID == "stu000001" &&
                evt1.localDeviceID == "master_node" &&
                evt1.remoteDeviceID == "equip000001" &&
                evt1.questionID == "01" &&
                evt1.questionValue == "A" &&
                evt1.event_unit_list[0] == IntelligentEventUnit.new_epc)
            {
                Debug.WriteLine("True");
            }
            else
            {
                Debug.WriteLine("False");
            }
            //找到该学生的信息,包括学生姓名、位置、选择
            //查找学生信息
            Person person = MemoryTable.getPersonByEpc(evt1.epcID);

            if (person.id_num == "CE4D9397871")
            {
                Debug.WriteLine("True");
            }
            else
            {
                Debug.WriteLine("False");
            }
        }
        public static void OnReceive(IAsyncResult ar)
        {
            try
            {
                IPEndPoint ipeSender = new IPEndPoint(IPAddress.Any, 0);
                EndPoint   epSender  = (EndPoint)ipeSender;

                serverSocket.EndReceiveFrom(ar, ref epSender);

                string strReceived = Encoding.UTF8.GetString(byteData);

                Array.Clear(byteData, 0, byteData.Length);
                //int i = strReceived.IndexOf("\0");
                //todo here should deal with the received string
                sbuilder.Append(strReceived);
                string temp = string.Empty;
                while (true)
                {
                    temp = sbuilder.ToString();
                    if (temp == null || temp == string.Empty)
                    {
                        break;
                    }

                    int indexLeft  = temp.IndexOf("[");
                    int indexRight = temp.IndexOf("]");
                    if (indexRight == -1 || indexLeft == -1)
                    {
                        break;
                    }
                    if (indexLeft >= indexRight)
                    {
                        //前面有数据错误
                        sbuilder.Remove(0, indexLeft);
                    }
                    else
                    {
                        string data = temp.Substring(indexLeft, indexRight - indexLeft + 1);
                        sbuilder.Remove(0, indexRight + 1);
                        ProtocolHelper   p = ProtocolHelper.getProtocolHelper(data);
                        BackgroundWorker backgroundWorker1 = new BackgroundWorker();
                        backgroundWorker1.DoWork += new DoWorkEventHandler(BackgroundThreadWork);
                        backgroundWorker1.RunWorkerAsync(p);
                    }
                }
                //Start listening to the message send by the user
                serverSocket.BeginReceiveFrom(byteData, 0, byteData.Length, SocketFlags.None, ref epSender,
                                              new AsyncCallback(OnReceive), epSender);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(
                    string.Format("UDPServer.OnReceive  -> error = {0}"
                                  , ex.Message));
            }
        }
        private static void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            try
            {
                //int n = comport.BytesToRead;//n为返回的字节数
                //byte[] buf = new byte[n];//初始化buf 长度为n
                //comport.Read(buf, 0, n);//读取返回数据并赋值到数组
                //_RFIDHelper.Parse(buf);
                //foreach (delevoid_bytes parser in StaticSerialPort.delegateList)
                //{
                //    parser(buf);
                //}
                string temp = comport.ReadExisting();
                sbuilder.Append(temp);
                while (true)
                {
                    temp = sbuilder.ToString();
                    if (temp == null || temp == string.Empty)
                    {
                        break;
                    }

                    int indexLeft  = temp.IndexOf("[");
                    int indexRight = temp.IndexOf("]");
                    if (indexRight == -1 || indexLeft == -1)
                    {
                        break;
                        //return;
                    }
                    if (indexLeft >= indexRight)
                    {
                        //前面有数据错误
                        sbuilder.Remove(0, indexLeft);
                    }
                    else
                    {
                        string data = temp.Substring(indexLeft, indexRight - indexLeft + 1);
                        sbuilder.Remove(0, indexRight + 1);
                        //Data dataTemp = new Data(data);
                        ProtocolHelper   p = ProtocolHelper.getProtocolHelper(data);
                        BackgroundWorker backgroundWorker1 = new BackgroundWorker();
                        backgroundWorker1.DoWork += new DoWorkEventHandler(BackgroundThreadWork);
                        backgroundWorker1.RunWorkerAsync(p);
                    }
                }
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Пример #4
0
        void test_实时互动5()
        {
            //接收到一个标签数据
            MiddleWareCore.set_mode(MiddleWareMode.实时互动);
            string cmd1 = "[select,master_node,subnode1,,01,A]";

            MiddleWareCore.Set_new_data(ProtocolHelper.getProtocolHelper(cmd1));
            IntelligentEvent evt1 = MiddleWareCore.get_a_event();

            if (evt1 == null || evt1.name == IntelligentEvent.event_empty)
            {
                Debug.WriteLine("True");
            }
            else
            {
                Debug.WriteLine("False");
            }
        }
Пример #5
0
        void test_实时互动3()
        {
            //标签重复
            MiddleWareCore.set_mode(MiddleWareMode.实时互动);
            string cmd3_1 = "[select,master_node,subnode2,rfid01,01,A]";
            string cmd3_2 = "[select,master_node,subnode2,rfid01,01,A]";

            MiddleWareCore.Set_new_data(ProtocolHelper.getProtocolHelper(cmd3_1));
            MiddleWareCore.Set_new_data(ProtocolHelper.getProtocolHelper(cmd3_2));
            IntelligentEvent evt3 = MiddleWareCore.get_a_event();

            if (evt3.event_unit_list.IndexOf(IntelligentEventUnit.repeat_epc) >= 0)
            {
                Debug.WriteLine("True");
            }
            else
            {
                Debug.WriteLine("False");
            }
        }
Пример #6
0
        void test_实时互动2()
        {
            //接收到同一个标签在另一个设备上
            MiddleWareCore.set_mode(MiddleWareMode.实时互动);
            string cmd2_1 = "[select,master_node,subnode1,rfid01,01,A]";
            string cmd2_2 = "[select,master_node,subnode2,rfid01,01,A]";

            MiddleWareCore.Set_new_data(ProtocolHelper.getProtocolHelper(cmd2_2));
            MiddleWareCore.Set_new_data(ProtocolHelper.getProtocolHelper(cmd2_1));
            IntelligentEvent evt2 = MiddleWareCore.get_a_event();

            if (evt2.event_unit_list.IndexOf(IntelligentEventUnit.epc_on_another_device) >= 0)
            {
                Debug.WriteLine("True");
            }
            else
            {
                Debug.WriteLine("False");
            }
        }
Пример #7
0
        private void test_考勤1()
        {
            MiddleWareCore.set_mode(MiddleWareMode.考勤);
            string cmd1 = "[select,master_node,subnode1,rfid01,01,A]";

            MiddleWareCore.Set_new_data(ProtocolHelper.getProtocolHelper(cmd1));
            IntelligentEvent evt1 = MiddleWareCore.get_a_event();

            if (evt1.epcID == "rfid01" &&
                evt1.localDeviceID == "master_node" &&
                evt1.remoteDeviceID == "subnode1" &&
                evt1.questionID == "01" &&
                evt1.questionValue == "A" &&
                evt1.event_unit_list[0] == IntelligentEventUnit.new_epc)
            {
                Debug.WriteLine("True");
            }
            else
            {
                Debug.WriteLine("False");
            }
        }