示例#1
0
        // metodo para actualizar la pantalla con los datos del usuario parte de un tag y recupera la informacion desde la BD
        // incluye proteccion de un solo hilo (uno solo pinta completamente la pantalla un hilo)
        private void actualizaPantalla(TAG tag)
        {
            if (InvokeRequired)
            {
                actualizaPantalla_Delegate task = new actualizaPantalla_Delegate(actualizaPantalla);
                BeginInvoke(task, new object[] { tag });
            }
            else
            {
                lock (guiLock)
                {
                    if (lbl_id_tag.Text.Equals(tag.TagOrigId) == false)
                    {
                        //MessageBox.Show("Tag Recibido Evento recepción:" + tag.TagOrigId + " Tiempo:" + tag.Time + " ms" + tag.ApiTimeStampUTC.Millisecond);

                        Participante par = modP.recuperaPxTag(tag.TagOrigId);
                        this.lbl_id_tag.Text = tag.TagOrigId;
                        this.lbl_nombre.Text = par.nombre;
                        this.lbl_numero.Text = par.snumero;
                        this.lbl_categoria.Text = par.categoria;
                        this.lbl_pais.Text = par.pais;
                        this.lbl_prueba.Text = par.prueba;

                    }
                }
            }
        }
示例#2
0
        // metodo para actualizar la pantalla con los datos del usuario parte de un tag y recupera la informacion desde la BD
        // incluye proteccion de un solo hilo (uno solo pinta completamente la pantalla un hilo)
        private void actualizaTag(TAG tag)
        {
            if (InvokeRequired)
            {
                actualizaTag_Delegate task = new actualizaTag_Delegate(actualizaTag);
                BeginInvoke(task, new object[] { tag });
            }
            else
            {
                lock (guiLock)
                {
                    if (labelCodigoP.Text.Equals(tag.TagOrigId) == false)
                    {
                        //MessageBox.Show("Tag Recibido Evento recepción:" + tag.TagOrigId + " Tiempo:" + tag.Time + " ms" + tag.ApiTimeStampUTC.Millisecond);

                        sTag = tag.TagOrigId;
                        this.labelCodigoP.Text = tag.TagOrigId;
                    }
                }
            }
        }
示例#3
0
 //constructor
 public InsertaLecturaE(TAG tag, string strConexion)
 {
     this.tag = tag;
     this.strConexion = strConexion;
 }
示例#4
0
        public void parseRecords(string str, StateObject state)
        {
            if (str.StartsWith("cmd=evtNtf"))
            {
                //cmd=evtNtf&batchEnd=yes
                if (str.Contains("batchEnd=yes"))
                {
                    saveToLogVerbose("BatchEnd Found");
                    OnTagListEvent(new TagListEventArgs(state.list));
                    state.list.Clear();
                    OnBatchEnd(new BatchEndEventArgs(DateTime.Now.ToString()));
                    return;
                }

                //cmd=evtNtf&evt_id=TagfoundAction&msg=invenDisabled&trig=irNotfound&time=1175329956
                if (str.Contains("msg="))
                {
                    INVENTORY_NTF_INFO info = new INVENTORY_NTF_INFO();
                    string[] Invkeys = str.Split('&');
                    foreach (string s in Invkeys)
                    {
                        if (s.StartsWith("evt_id=", StringComparison.OrdinalIgnoreCase))
                        {
                            info.id = s.Substring(7);
                        }
                        else if (s.StartsWith("msg=", StringComparison.OrdinalIgnoreCase))
                        {
                            info.msg = s.Substring(4);
                        }
                        else if (s.StartsWith("trig=", StringComparison.OrdinalIgnoreCase))
                        {
                            info.trigger = s.Substring(5);
                        }
                        else if (s.StartsWith("time=", StringComparison.OrdinalIgnoreCase))
                        {
                            info.time = s.Substring(5);
                        }
                    }
                    saveToLogVerbose(String.Format("{0} {1} Found", info.id, info.msg));
                    OnInventory(new InventoryEventArgs(info));
                    return;
                }

                //cmd=evtNtf&evt_id=DemoEvent&src_ip=192.168.25.249&ant=Antenna1&cp_id=Capture Point 1&idx=B1&tag_id=100000000000000000000004&rssi=-48&time=1173077508
                TAG intag = new TAG();
                string[] keys = str.Split('&');
                foreach (string s in keys)
                {
                    if (s.StartsWith("evt_id=", StringComparison.OrdinalIgnoreCase))
                    {
                        intag.EventId = s.Substring(7);
                    }
                    else if (s.StartsWith("src_ip=", StringComparison.OrdinalIgnoreCase))
                    {
                        intag.ServerIp = s.Substring(7);
                    }
                    else if (s.StartsWith("ant=", StringComparison.OrdinalIgnoreCase))
                    {
                        intag.Antenna = s.Substring(4);
                    }
                    else if (s.StartsWith("cp_id=", StringComparison.OrdinalIgnoreCase))
                    {
                        intag.CapturePointId = s.Substring(6);
                    }
                    else if (s.StartsWith("idx=", StringComparison.OrdinalIgnoreCase))
                    {
                        if (s.Length > 5)
                        {
                            intag.Index = s.Substring(5);
                            intag.session = s.Substring(4, 1);
                        }
                    }
                    else if (s.StartsWith("tag_id=", StringComparison.OrdinalIgnoreCase))
                    {
                        intag.TagOrigId = s.Substring(7);
                    }
                    else if (s.StartsWith("rssi=", StringComparison.OrdinalIgnoreCase))
                    {
                        double.TryParse(s.Substring(5), out intag.RSSI);
                    }
                    else if (s.StartsWith("time=", StringComparison.OrdinalIgnoreCase))
                    {
                        Int32.TryParse(s.Substring(5), out intag.Time);
                    }
                    else if (s.StartsWith("cnt=", StringComparison.OrdinalIgnoreCase))
                    {
                        Int32.TryParse(s.Substring(4), out intag.count);
                    }
                    else if (s.StartsWith("bank0=", StringComparison.OrdinalIgnoreCase))
                    {
                        intag.Bank0 = s.Substring(6);
                    }
                    else if (s.StartsWith("bank2=", StringComparison.OrdinalIgnoreCase))
                    {
                        intag.Bank2 = s.Substring(6);
                    }
                    else if (s.StartsWith("bank3=", StringComparison.OrdinalIgnoreCase))
                    {
                        intag.Bank3 = s.Substring(6);
                    }

                }
                intag.ApiTimeStampUTC = DateTime.UtcNow;
                OnTagReceiveEvent(new TagReceiveEventArgs(intag));
                state.list.Add(intag);
            }
            else if (str.StartsWith("cmd=blog"))
            {
                //cmd=blogNtf&dataEnd=yes
                if (str.Contains("dataEnd=yes"))
                {
                    saveToLogVerbose("DataEnd Found");
                    OnDataEnd(new DataEndEventArgs(DateTime.Now.ToString()));
                    return;
                }
                //cmd=blogNtf&evt_id=DemoEvent&src_ip=192.168.25.249&ant=Antenna1&cp_id=Capture Point 1&idx=C31&tag_id=000000000000000000000006&rssi=-49&time=1173076720
            }
            else if (str.StartsWith("cmd=errNtf"))
            {
                //cmd=errNtf&status=buffer overflow&time=1173076720
                string status = null;
                string time = null;

                string[] keys = str.Split('&');
                foreach (string s in keys)
                {
                    if (s.StartsWith("status=", StringComparison.OrdinalIgnoreCase))
                    {
                        if (s.Length > 7)
                            status = s.Substring(7);
                    }
                    else if (s.StartsWith("time=", StringComparison.OrdinalIgnoreCase))
                    {
                        if (s.Length > 5)
                            time = s.Substring(5);
                    }
                }
                if (status.Equals("buffer overflow", StringComparison.OrdinalIgnoreCase))
                {
                    saveToLogVerbose("BufferOverflow Found");
                    OnBufferOverflowEvent(new BufferOverflowEventArgs(time));
                    return;
                }
            }
            else if (str.StartsWith("cmd=antNtf"))
            {
                //cmd=antNtf&mismatch=1234&time=1173076720
                string port = null;
                string time = null;

                string[] keys = str.Split('&');
                foreach (string s in keys)
                {
                    if (s.StartsWith("mismatch=", StringComparison.OrdinalIgnoreCase))
                    {
                        if (s.Length > 9)
                            port = s.Substring(9);
                    }
                    else if (s.StartsWith("time=", StringComparison.OrdinalIgnoreCase))
                    {
                        if (s.Length > 5)
                            time = s.Substring(5);
                    }
                }
                saveToLogVerbose("AntennaNtf Found");
                OnAntennaEvent(new AntennaEventArgs(port, time));
            }
        }
示例#5
0
        public System.Collections.ArrayList getCaptureTagsRawEPC()
        {
            System.Collections.ArrayList tags = new System.Collections.ArrayList();
            try
            {
                StringBuilder sbReq = new StringBuilder();

                sbReq.Append(String.Format("{0}API?command=getCaptureTagsRaw&mode=getEPC&session_id={1}", httpUri.AbsoluteUri, SessionId));

                string resp = sendHTTPRequest(sbReq.ToString());
                if (resp == null)
                    return null;

                XmlDataDocument doc = new XmlDataDocument();

                doc.LoadXml(resp);

                XmlElement element = doc.DocumentElement;
                if (element.Name == "CSL")
                {
                    XmlNode node = doc.SelectSingleNode("CSL/Command");
                    if (node != null)
                    {
                        if (node.InnerXml.Equals("getcapturetagsraw", StringComparison.OrdinalIgnoreCase))
                        {
                            node = doc.SelectSingleNode("CSL/TagList/tagEPC");
                            if (node != null)
                            {
                                //<Ack>
                                TAG tag;
                                while (node != null)
                                {
                                    tag = new TAG();
                                    foreach (XmlAttribute att in node.Attributes)
                                    {
                                        if (att.Name.Equals("capturepoint_id", StringComparison.OrdinalIgnoreCase))
                                        {
                                            tag.Antenna = att.InnerXml;
                                        }
                                        else if (att.Name.Equals("capturepoint_name", StringComparison.OrdinalIgnoreCase))
                                        {
                                            tag.CapturePointId = att.InnerXml;
                                        }
                                        else if (att.Name.Equals("freq", StringComparison.OrdinalIgnoreCase))
                                        {
                                            if (att.InnerXml != null)
                                            {
                                                double d;
                                                if (double.TryParse(att.InnerXml, out d))
                                                {
                                                    tag.Frequency = d * 0.05 + 860.0;
                                                }
                                            }
                                        }
                                        else if (att.Name.Equals("index", StringComparison.OrdinalIgnoreCase))
                                        {
                                            string s = att.InnerXml;
                                            if (s.Length > 1)
                                            {
                                                tag.Index = s.Substring(1);
                                                tag.session = s.Substring(0, 1);
                                            }

                                        }
                                        else if (att.Name.Equals("rssi", StringComparison.OrdinalIgnoreCase))
                                        {
                                            tag.RSSI = double.Parse(att.InnerXml);
                                        }
                                        else if (att.Name.Equals("tag_id", StringComparison.OrdinalIgnoreCase))
                                        {
                                            tag.TagOrigId = att.InnerXml;
                                        }
                                        else if (att.Name.Equals("time", StringComparison.OrdinalIgnoreCase))
                                        {
                                            int.TryParse(att.InnerXml, out tag.Time);
                                        }
                                        else if (att.Name.Equals("event_id", StringComparison.OrdinalIgnoreCase))
                                        {
                                            tag.EventId = att.InnerXml;
                                        }
                                        else if (att.Name.Equals("reader_ip", StringComparison.OrdinalIgnoreCase))
                                        {
                                            tag.ServerIp = att.InnerXml;
                                        }
                                    }
                                    tag.ApiTimeStampUTC = DateTime.UtcNow;
                                    tag.ServerIp = httpUri.Host;
                                    tags.Add(tag);
                                    node = node.NextSibling;
                                }
                                ErrorCode = ERR_CODE_NO_ERROR;
                                ErrorMsg = "";
                                return tags;
                            }
                            node = doc.SelectSingleNode("CSL/Error");
                            if (node != null)
                            {
                                //<Error>
                                foreach (XmlAttribute att in node.Attributes)
                                {
                                    if (att.Name.Equals("msg", StringComparison.OrdinalIgnoreCase))
                                    {
                                        ErrorMsg = att.InnerXml.Substring(6).Trim();
                                    }
                                    else if (att.Name.Equals("code", StringComparison.OrdinalIgnoreCase))
                                    {
                                        Int32.TryParse(att.InnerXml, out ErrorCode);
                                    }
                                }
                                return null;
                            }
                        }
                    }
                }
            }
            catch (WebException wex)
            {
                ErrorMsg = wex.Message;
                return null;
            }
            ErrorMsg = "Invalid isOnline response.";
            return null;
        }