Example #1
0
 /// <summary>
 ///  Create a SimpleReadPlan
 /// </summary>
 /// <param name="antennaList">List of antenna numbers.  May be null.</param>
 /// <param name="protocol">Protocol identifier</param>
 /// <param name="filter">Tag filter.  May be null.</param>
 /// <param name="op">Operation mode</param>
 /// <param name="useFastSearch">Enable fast search</param>
 public SimpleReadPlan(ICollection <int> antennaList, TagProtocol protocol, TagFilter filter, TagOp op, bool useFastSearch)
     : base(DEFAULT_WEIGHT)
 {
     Antennas      = (antennaList != null) ? CollUtil.ToArray(antennaList) : null;
     Protocol      = protocol;
     Filter        = filter;
     Op            = op;
     UseFastSearch = useFastSearch;
 }
Example #2
0
 public TagInfo(string epc, int rcnt, int ant, DateTime time, TagProtocol potl_, string emdstr)
 {
     epcid      = epc;
     readcnt    = rcnt;
     antid      = ant;
     timestamp  = time;
     potl       = potl_;
     emddatastr = emdstr;
     RssiSum    = 0;
 }
Example #3
0
        public static List <byte> MemoryLockStatus(Reader reader, byte blockLength, TagProtocol protocol, string uid)
        {
            List <byte> lockStatus = new List <byte>();
            TagFilter   filter;

            byte[] _uid = ByteFormat.FromHex(uid);

            switch (protocol)
            {
            case TagProtocol.ISO14443A:
                break;

            case TagProtocol.ISO14443B:
                break;

            case TagProtocol.ISO15693:
                //Iso15693.TagType tag = (Iso15693.TagType)tagType;//(Enum.GetName(typeof(Iso15693.TagType), tagType));
                filter = new Select_UID((byte)(_uid.Length * 8), _uid);
                MemoryType type        = MemoryType.BLOCK_PROTECTION_STATUS_MEMORY;
                ReadMemory blockStatus = new ReadMemory(type, 0, blockLength);
                lockStatus.AddRange((byte[])reader.ExecuteTagOp(blockStatus, filter));
                break;

            case TagProtocol.ISO180003M3:
                break;

            case TagProtocol.ISO180006B:
                break;

            case TagProtocol.ISO180006B_UCODE:
                break;

            case TagProtocol.ISO18092:
                break;

            case TagProtocol.LF125KHZ:
                break;

            case TagProtocol.LF134KHZ:
                break;

            case TagProtocol.NONE:
                break;

            default:
                break;
            }

            return(lockStatus);
        }
        private void Button_Connect_Click(object sender, RoutedEventArgs e)
        {
            string serialnum = ComboBox_serial.SelectedItem.ToString();

            try
            {
                reader = Reader.Create("eapi:///" + serialnum);
                reader.Connect();
                MessageBox.Show("成功連接天線");
                connected = true;
            }
            catch (IOException connectE)
            {
                MessageBox.Show(connectE.Message);
                //Console.WriteLine(e.Message);
                return;
            }



            //select regions and function ([51] = read)
            string[]        functionList = reader.ParamList();
            Reader.Region[] regions      = (Reader.Region[])reader.ParamGet("/reader/region/supportedRegions");
            reader.ParamSet(functionList[51], Reader.Region.TW);
            reader.ParamSet(functionList[40], 100); //max 2700 (27dBm)


            //reading delay of 1s
            int timeout = 1000;

            //select the antenna, protocol
            int[]  antennaList = null;
            string str         = "1,1";

            antennaList = Array.ConvertAll(str.Split(','), int.Parse);
            TagProtocol protocol = TagProtocol.GEN2;

            SimpleReadPlan simpleplan = new SimpleReadPlan(antennaList, protocol, null, null, timeout);

            reader.ParamSet("/reader/read/plan", simpleplan);
            //reader.ParamSet("/reader/read/plan", 2700);

            //MessageBox.Show("The antenna has been successfully connected to the PC");
            Button_Connect.IsEnabled = false;
        }
Example #5
0
        private static SimpleReadPlan configureM3ePersistentSettings(Reader r, int[] antennaList)
        {
            try
            {
                //baudrate
                r.ParamSet("/reader/baudRate", 115200);
                //Protocol
                TagProtocol protocol = TagProtocol.ISO14443A;
                r.ParamSet("/reader/tagop/protocol", protocol);
                //enable read filter
                r.ParamSet("/reader/tagReadData/enableReadFilter", true);

                // Embedded tag operation

                /* Uncomment the following line if want to enable embedded read with autonomous operation.
                 * Add tagop object op in simple read plan constructor.
                 * Add filter object epcFilter in simple read plan constructor.
                 */
                //MemoryType type = MemoryType.BLOCK_MEMORY;
                //int address = 0;
                //byte length = 1;
                //ReadMemory tagOp = new ReadMemory(type, address, length);
                //Select_UID filter = new Select_UID(32, new byte[] { 0x11, 0x22, 0x33, 0x44 });

                GpiPinTrigger gpiTrigger = null;
                if ((autoReadType != null) && (autoReadType == "ReadOnGPI"))
                {
                    gpiTrigger        = new GpiPinTrigger();
                    gpiTrigger.enable = true;
                    //set the gpi pin to read on
                    r.ParamSet("/reader/read/trigger/gpi", new int[] { trigTypeNum });
                }
                SimpleReadPlan srp = new SimpleReadPlan(antennaList, protocol, null, null, 1000);
                if ((autoReadType != null) && (autoReadType == "ReadOnGPI"))
                {
                    srp.ReadTrigger = gpiTrigger;
                }
                return(srp);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #6
0
        public static void embeddedRead(TagProtocol protocol, TagFilter filter, TagOp tagop)
        {
            TagReadData[]  tagReads = null;
            SimpleReadPlan plan     = new SimpleReadPlan(antennaList, protocol, filter, tagop, 1000);

            r.ParamSet("/reader/read/plan", plan);
            tagReads = r.Read(1000);
            // Print tag reads
            foreach (TagReadData tr in tagReads)
            {
                Console.WriteLine(tr.ToString());
                if (tr.isErrorData)
                {
                    // In case of error, show the error to user. Extract error code.
                    int errorCode = ByteConv.ToU16(tr.Data, 0);
                    Console.WriteLine("Embedded Tag operation failed. Error: " + ReaderCodeException.faultCodeToMessage(errorCode));
                }
                else
                {
                    Console.WriteLine("  Data:" + ByteFormat.ToHex(tr.Data, "", " "));
                }
            }
        }
Example #7
0
        /// <summary>
        /// Create WHERE clauses representing a tag protocol
        /// </summary>
        /// <param name="tp">Tag protocol</param>
        /// <returns>List of strings to be incorporated into "WHERE ... AND ..." phrase.
        /// List may be empty.</returns>
        private List<string> TagProtocolToWhereClause(TagProtocol tp)
        {
            List<string> wheres = new List<string>();
            string clause;

            switch (tp)
            {
                case TagProtocol.GEN2: 
                    clause = "GEN2"; break;
                case TagProtocol.ISO180006B: 
                    clause = "ISO18000-6B"; break;
                case TagProtocol.IPX64:
                    clause = "IPX64"; break;
                case TagProtocol.IPX256:
                    clause = "IPX256"; break;
                default:
                    throw new ArgumentException("Unrecognized protocol " + tp.ToString());
            }

            wheres.Add(String.Format("protocol_id='{0}'", clause));

            return wheres;
        } 
Example #8
0
        private static SimpleReadPlan configureUHFPersistentSettings(Reader r, string model, int[] antennaList)
        {
            // baudrate
            r.ParamSet("/reader/baudRate", 115200);

            // Region
            Reader.Region[] supportRegion = (Reader.Region[])r.ParamGet("/reader/region/supportedRegions");
            if (supportRegion.Length < 1)
            {
                throw new Exception("Reader doesn't support any regions");
            }
            else
            {
                r.ParamSet("/reader/region/id", supportRegion[0]);
            }

            // Protocol
            TagProtocol protocol = TagProtocol.GEN2;

            r.ParamSet("/reader/tagop/protocol", protocol);

            // Antenna to search on
            r.ParamSet("/reader/tagop/antenna", antennaList[0]);

            // Duty cycle ->Async On time, Async off time
            r.ParamSet("/reader/read/asyncOnTime", 1000);
            r.ParamSet("/reader/read/asyncOffTime", 0);

            // Gen2 setting
            r.ParamSet("/reader/gen2/BLF", Gen2.LinkFrequency.LINK250KHZ);
            r.ParamSet("/reader/gen2/tari", Gen2.Tari.TARI_25US);
            r.ParamSet("/reader/gen2/target", Gen2.Target.A);
            r.ParamSet("/reader/gen2/tagEncoding", Gen2.TagEncoding.M2);
            r.ParamSet("/reader/gen2/session", Gen2.Session.S0);
            r.ParamSet("/reader/gen2/q", new Gen2.DynamicQ());

            //RF Power settings
            r.ParamSet("/reader/radio/readPower", 2000);
            r.ParamSet("/reader/radio/writePower", 2000);

            // Hop Table
            int[] hopTable = (int[])r.ParamGet("/reader/region/hopTable");
            r.ParamSet("/reader/region/hopTable", hopTable);

            int hopTimeValue = (int)r.ParamGet("/reader/region/hopTime");

            r.ParamSet("/reader/region/hopTime", hopTimeValue);

            //For Open region, dwell time, minimum frequency, quantization step can also be configured persistently
            if (Reader.Region.OPEN == (Reader.Region)r.ParamGet("/reader/region/id"))
            {
                //Set dwell time enable before stting dwell time
                r.ParamSet("/reader/region/dwellTime/enable", true);
                //set quantization step
                r.ParamSet("/reader/region/quantizationStep", 25000);

                //set dwell time
                r.ParamSet("/reader/region/dwellTime", 250);

                //set minimum frequency
                r.ParamSet("/reader/region/minimumFrequency", 859000);
            }

            // Embedded tag operation

            /* Uncomment the following line if want to enable embedded read with autonomous operation.
             * Add tagop object op in simple read plan constructor.
             * Add filter object epcFilter in simple read plan constructor.
             */
            //Gen2.ReadData readtagOp = new Gen2.ReadData(Gen2.Bank.RESERVED, 2, 2);
            //Gen2.TagData epcFilter = new Gen2.TagData(new byte[] { 0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0x00,0x99,0x99});

            GpiPinTrigger gpiTrigger = null;

            if ((autoReadType != null) && (autoReadType == "ReadOnGPI"))
            {
                gpiTrigger = new GpiPinTrigger();
                //Gpi trigger option not there for M6e Micro USB
                if (!("M6e Micro USB".Equals(model)))
                {
                    gpiTrigger.enable = true;
                    //set the gpi pin to read on
                    r.ParamSet("/reader/read/trigger/gpi", new int[] { trigTypeNum });
                }
            }
            SimpleReadPlan srp = new SimpleReadPlan(antennaList, protocol, null, null, 1000);

            if ((autoReadType != null) && autoReadType == "ReadOnGPI")
            {
                if (!("M6e Micro USB".Equals(model)))
                {
                    srp.ReadTrigger = gpiTrigger;
                }
            }
            return(srp);
        }
Example #9
0
 /// <summary>
 ///  Create a SimpleReadPlan
 /// </summary>
 /// <param name="antennaList">List of antenna numbers.  May be null.</param>
 /// <param name="protocol">Protocol identifier</param>
 /// <param name="filter">Tag filter.  May be null.</param>
 /// <param name="weight">Relative scheduling weight</param>
 public SimpleReadPlan(ICollection <int> antennaList, TagProtocol protocol, TagFilter filter, int weight)
     : this(antennaList, protocol, filter, _defaultTagOp, weight)
 {
 }
Example #10
0
 /// <summary>
 ///  Create a SimpleReadPlan
 /// </summary>
 /// <param name="antennaList">List of antenna numbers</param>
 /// <param name="protocol">Protocol identifier</param>
 public SimpleReadPlan(ICollection <int> antennaList, TagProtocol protocol)
     : this(antennaList, protocol, _defaultFilter, _defaultTagOp, DEFAULT_WEIGHT)
 {
 }
 /// <summary>
 /// Create StopTriggerReadPlan
 /// </summary>
 /// <param name="sotc">StopOnTagCount object</param>
 /// <param name="antennaList">List of antenna numbers</param>
 /// <param name="protocol">Protocol identifier</param>
 public StopTriggerReadPlan(StopOnTagCount sotc, ICollection<int> antennaList, TagProtocol protocol)
     : base(antennaList, protocol)
 {
     stopOnCount = sotc;
 }
 /// <summary>
 ///  Create a SimpleReadPlan
 /// </summary>
 /// <param name="antennaList">List of antenna numbers.  May be null.</param>
 /// <param name="protocol">Protocol identifier</param>
 /// <param name="filter">Tag filter.  May be null.</param>
 /// <param name="op">Operation mode</param>
 /// <param name="weight">Relative scheduling weight</param>
 /// <param name="useFastSearch">Enable fast search</param>
 public SimpleReadPlan(ICollection<int> antennaList, TagProtocol protocol, TagFilter filter, TagOp op, bool useFastSearch, int weight)
     : base(weight)
 {
     Antennas = (antennaList != null) ? CollUtil.ToArray(antennaList) : null;
     Protocol = protocol;
     Filter = filter;
     Op = op;
     UseFastSearch = useFastSearch;
 }
 /// <summary>
 ///  Create a SimpleReadPlan
 /// </summary>
 /// <param name="antennaList">List of antenna numbers</param>
 /// <param name="protocol">Protocol identifier</param>
 public SimpleReadPlan(ICollection<int> antennaList, TagProtocol protocol)
     : this(antennaList, protocol, _defaultFilter,_defaultTagOp, DEFAULT_WEIGHT) { }
Example #14
0
        /// <summary>
        /// Create WHERE clauses representing a list of tag protocols
        /// </summary>
        /// <param name="tp">Tag protocols</param>
        /// <returns>List of strings to be incorporated into "WHERE ... AND ..." phrase.
        /// List may be empty.</returns>
        private List<string> TagProtocolsToWhereClause(TagProtocol[] tp)
        {
            List<string> wheres = new List<string>();

            if ((null != tp) && (0 < tp.Length))
            {
                List<string> protwords = new List<string>();

                foreach (TagProtocol protocol in tp)
                    protwords.Add(TagProtocolToWhereClause(protocol)[0]);

                string clause = "(" + String.Join(" OR ", protwords.ToArray()) + ")";
                wheres.Add(clause);
            }

            return wheres;
        }
 /// <summary>
 /// Create StopTriggerReadPlan
 /// </summary>
 /// <param name="sotc">StopOnTagCount object</param>
 /// <param name="antennaList">List of antenna numbers</param>
 /// <param name="protocol">Protocol identifier</param>
 /// <param name="filter">Tag filter.  May be null.</param>
 /// <param name="op">Operation mode</param>
 /// <param name="weight">Relative scheduling weight</param>
 public StopTriggerReadPlan(StopOnTagCount sotc, ICollection<int> antennaList, TagProtocol protocol, TagFilter filter, TagOp op, int weight)
     : base(antennaList, protocol, filter, op, weight)
 {
     stopOnCount = sotc;
 }
Example #16
0
        private void lvTags_ColumnClick(object sender, ColumnClickEventArgs e)
        {
            if (e.Column >= 1 && e.Column <= 7)
            {
                tmplist.Clear();
                foreach (ListViewItem viewitem in lvTags.Items)
                {
                    TagProtocol potl = TagProtocol.NONE;
                    if (viewitem.SubItems[4].Text == "GEN2")
                    {
                        potl = TagProtocol.GEN2;
                    }
                    else if (viewitem.SubItems[4].Text == "6B")
                    {
                        potl = TagProtocol.ISO180006B;
                    }
                    else if (viewitem.SubItems[4].Text == "IPX256")
                    {
                        potl = TagProtocol.IPX256;
                    }
                    else if (viewitem.SubItems[4].Text == "IPX64")
                    {
                        potl = TagProtocol.IPX64;
                    }

                    TagInfo newtag = new TagInfo(viewitem.SubItems[2].Text, int.Parse(viewitem.SubItems[1].Text),
                                                 int.Parse(viewitem.SubItems[3].Text), DateTime.Now, potl, null);
                    newtag.RssiRaw   = int.Parse(viewitem.SubItems[5].Text);
                    newtag.Frequency = int.Parse(viewitem.SubItems[6].Text);
                    newtag.Phase     = int.Parse(viewitem.SubItems[7].Text);
                    tmplist.Add(newtag);
                }
                this.lvTags.Items.Clear();
                IComparer <TagInfo> tagcmper = null;
                if (e.Column == 1)
                {
                    tagcmper = new TagInfoCompReadCnt();
                }
                else if (e.Column == 2)
                {
                    tagcmper = new TagInfoCompEPCId();
                }
                else if (e.Column == 3)
                {
                    tagcmper = new TagInfoCompAntId();
                }
                else if (e.Column == 4)
                {
                    tagcmper = new TagInfoCompPotl();
                }
                else if (e.Column == 5)
                {
                    tagcmper = new TagInfoCompRssi();
                }
                else if (e.Column == 6)
                {
                    tagcmper = new TagInfoCompFreq();
                }
                else if (e.Column == 7)
                {
                    tagcmper = new TagInfoCompPhase();
                }

                tmplist.Sort(tagcmper);
                foreach (TagInfo tag in tmplist)
                {
                    ListViewItem item = new ListViewItem(lvTags.Items.Count.ToString());
                    item.SubItems.Add(tag.readcnt.ToString());
                    item.SubItems.Add(tag.epcid);
                    item.SubItems.Add(tag.antid.ToString());

                    if (tag.potl == TagProtocol.GEN2)
                    {
                        item.SubItems.Add("GEN2");
                    }
                    else if (tag.potl == TagProtocol.ISO180006B)
                    {
                        item.SubItems.Add("6B");
                    }
                    else if (tag.potl == TagProtocol.IPX256)
                    {
                        item.SubItems.Add("IPX256");
                    }
                    else if (tag.potl == TagProtocol.IPX64)
                    {
                        item.SubItems.Add("IPX64");
                    }
                    item.SubItems.Add(tag.RssiRaw.ToString());
                    item.SubItems.Add(tag.Frequency.ToString());
                    item.SubItems.Add(tag.Phase.ToString());
                    lvTags.Items.Add(item);
                }
            }
        }
Example #17
0
        public MainWindow()
        {
            InitializeComponent();

            if (fclient != null)
            {
                //MessageBox.Show("The connection to database has been successfully established");
            }


            FirebaseConfig fconfig = new FirebaseConfig
            {
                AuthSecret = "ihUcWjzjav9Y4ZxY9oqh3xdxC7u9bE1oXT1uGeRl",
                BasePath   = "https://hightemperturelocatingsystem.firebaseio.com/"
            };

            fclient = new FirebaseClient(fconfig);



            try
            {
                reader.Connect();
            }
            catch (IOException e)
            {
                Console.WriteLine(e.Message);
                return;
            }



            string[]        functionList = reader.ParamList();
            Reader.Region[] regions      = (Reader.Region[])reader.ParamGet("/reader/region/supportedRegions");
            reader.ParamSet(functionList[51], Reader.Region.TW);
            reader.ParamSet(functionList[40], 100); //max 2700 (27dBm)


            //reading delay of 1s
            int timeout = 1000;

            //select the antenna, protocol
            int[]  antennaList = null;
            string str         = "1,1";

            antennaList = Array.ConvertAll(str.Split(','), int.Parse);
            TagProtocol protocol = TagProtocol.GEN2;

            SimpleReadPlan simpleplan = new SimpleReadPlan(antennaList, protocol, null, null, timeout);

            reader.ParamSet("/reader/read/plan", simpleplan);
            //reader.ParamSet("/reader/read/plan", 2700);

            MessageBox.Show("The antenna has been successfully connected to the PC");
            positioning(0, 0, 0);



            //reader.StartReading();
            //reader.TagRead += OnTagRead;
        }
 /// <summary>
 /// Create StopTriggerReadPlan
 /// </summary>
 /// <param name="sotc">StopOnTagCount object</param>
 /// <param name="antennaList">List of antenna numbers</param>
 /// <param name="protocol">Protocol identifier</param>
 /// <param name="filter">Tag filter.  May be null.</param>
 /// <param name="op">Operation mode</param>
 /// <param name="useFastSearch">Enable fast search</param>
 public StopTriggerReadPlan(StopOnTagCount sotc, ICollection<int> antennaList, TagProtocol protocol, TagFilter filter, TagOp op, bool useFastSearch)
     : base(antennaList, protocol, filter, op, useFastSearch)
 {
     stopOnCount = sotc;
 }
Example #19
0
        private void btnselants_Click(object sender, EventArgs e)
        {
            List <int> selants = new List <int>();

            for (int i = 0; i < cbants.Count; ++i)
            {
                if (cbants[i].Checked)
                {
                    selants.Add(i + 1);
                }
            }
            if (selants.Count == 0)
            {
                MessageBox.Show("please select antenna");
                return;
            }
            List <int> unDetAnts = new List <int>();

            foreach (int ant in selants)
            {
                if (cbants[ant - 1].ForeColor == Color.Red)
                {
                    unDetAnts.Add(ant);
                }
            }

            if (unDetAnts.Count > 0)
            {
                string antstr = "";
                foreach (int ant in unDetAnts)
                {
                    antstr += "port" + ant.ToString() + ",";
                }
                DialogResult stat = DialogResult.OK;
                stat = MessageBox.Show(antstr + "execute operation on the port without finding antenna ?", "tip-off",
                                       MessageBoxButtons.OKCancel, MessageBoxIcon.Question,
                                       MessageBoxDefaultButton.Button2);
                if (stat != DialogResult.OK)
                {
                    return;
                }
            }

            TagProtocol pl = TagProtocol.NONE;

            if (rbpotl6b.Checked)
            {
                pl = TagProtocol.ISO180006B;
            }
            else if (rbpotlgen2.Checked)
            {
                pl = TagProtocol.GEN2;
            }
            else if (rbpotlipx256.Checked)
            {
                pl = TagProtocol.IPX256;
            }
            else if (rbpotlipx64.Checked)
            {
                pl = TagProtocol.IPX64;
            }
            else
            {
                MessageBox.Show("please select tag protocol");
                return;
            }

            rdrparams.SixteenDevsrp = new SimpleReadPlan(pl, selants.ToArray());
            this.Close();
        }
Example #20
0
 /// <summary>
 /// Create StopTriggerReadPlan
 /// </summary>
 /// <param name="sotc">StopOnTagCount object</param>
 /// <param name="antennaList">List of antenna numbers</param>
 /// <param name="protocol">Protocol identifier</param>
 public StopTriggerReadPlan(StopOnTagCount sotc, ICollection <int> antennaList, TagProtocol protocol)
     : base(antennaList, protocol)
 {
     stopOnCount = sotc;
 }
 /// <summary>
 ///  Create a SimpleReadPlan
 /// </summary>
 /// <param name="antennaList">List of antenna numbers.  May be null.</param>
 /// <param name="protocol">Protocol identifier</param>
 /// <param name="filter">Tag filter.  May be null.</param>
 /// <param name="weight">Relative scheduling weight</param>
 public SimpleReadPlan(ICollection<int> antennaList, TagProtocol protocol, TagFilter filter, int weight)
     : this(antennaList, protocol, filter, _defaultTagOp, weight)
 {
 }
Example #22
0
 /// <summary>
 /// Create StopTriggerReadPlan
 /// </summary>
 /// <param name="sotc">StopOnTagCount object</param>
 /// <param name="antennaList">List of antenna numbers</param>
 /// <param name="protocol">Protocol identifier</param>
 /// <param name="filter">Tag filter.  May be null.</param>
 /// <param name="op">Operation mode</param>
 /// <param name="weight">Relative scheduling weight</param>
 public StopTriggerReadPlan(StopOnTagCount sotc, ICollection <int> antennaList, TagProtocol protocol, TagFilter filter, TagOp op, int weight)
     : base(antennaList, protocol, filter, op, weight)
 {
     stopOnCount = sotc;
 }
Example #23
0
 /// <summary>
 /// Create StopTriggerReadPlan
 /// </summary>
 /// <param name="sotc">StopOnTagCount object</param>
 /// <param name="antennaList">List of antenna numbers</param>
 /// <param name="protocol">Protocol identifier</param>
 /// <param name="filter">Tag filter.  May be null.</param>
 /// <param name="op">Operation mode</param>
 /// <param name="useFastSearch">Enable fast search</param>
 public StopTriggerReadPlan(StopOnTagCount sotc, ICollection <int> antennaList, TagProtocol protocol, TagFilter filter, TagOp op, bool useFastSearch)
     : base(antennaList, protocol, filter, op, useFastSearch)
 {
     stopOnCount = sotc;
 }
Example #24
0
        public MainWindow()
        {
            InitializeComponent();
            fclient = new FirebaseClient(fconfig);
            if (fclient != null)
            {
                MessageBox.Show("The connection to database has been successfully established");
            }



            Reader reader = Reader.Create(uri);

            try
            {
                reader.Connect();
            }
            catch (IOException e)
            {
                Console.WriteLine(e.Message);
                return;
            }



            //select regions and function ([51] = read)
            string[]        functionList = reader.ParamList();
            Reader.Region[] regions      = (Reader.Region[])reader.ParamGet("/reader/region/supportedRegions");
            reader.ParamSet(functionList[51], Reader.Region.TW);


            //Reader.WriteTag[] regions = (Reader.Region[])reader.ParamGet("/reader/gen2/q");
            //reader.ParamSet(functionList[51], Reader.Region.TW);


            //reading delay of 1s
            int timeout = 100;

            //select the antenna, protocol
            int[]  antennaList = null;
            string str         = "1,1";

            antennaList = Array.ConvertAll(str.Split(','), int.Parse);
            TagProtocol protocol = TagProtocol.GEN2;

            SimpleReadPlan simpleplan = new SimpleReadPlan(antennaList, protocol, null, null, timeout);

            reader.ParamSet("/reader/read/plan", simpleplan);
            //reader.ParamSet("/reader/tagop/antenna", 1);
            //Gen2.WriteTag();

            //start reading
            //TagReadData[] tags = new TagReadData[10];
            //tags = reader.Read(timeout);



            //if (!File.Exists(filePath))
            //{
            //    File.Create(filePath).Close();
            //}


            //Gen2.TagData epc = new Gen2.TagData(new byte[] {0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x23, 0x45, 0x67,}); //0123456789ABCDEF01234567
            //Gen2.TagData TargetEpc = new Gen2.TagData(new byte[] { 0x30, 0x05, 0xFB, 0x63, 0xAC, 0x1F, 0x36, 0x81, 0xEC, 0x88, 0x04, 0x68,}); //3005FB63AC1F3681EC880468
            //Gen2.WriteTag tagop = new Gen2.WriteTag(TargetEpc);
            //reader.ExecuteTagOp(tagop, epc);



            reader.StartReading();
            reader.TagRead += OnTagRead;


            //StopOnTagCount tagCount = new StopOnTagCount();
            //tagCount.N = 20;
            //StopTriggerReadPlan stopReadPlan = new StopTriggerReadPlan(tagCount);
            //reader.ParamSet("/reader/read/plan", stopReadPlan);

            //read synchronously
            //using (StreamWriter sw = File.CreateText("C:/Users/FCUCE-2/Documents/Data/tagsAsync.txt"))
            //{
            //    // Write some text into the file.
            //    for (int i = 0; i < tags.Length; i++)
            //    {
            //        sw.WriteLine(i + " : " + tags[i]);

            //    }
            //}
        }