static void Main(string[] args) { // Program setup if (1 != args.Length) { Console.WriteLine(String.Join("\r\n", new string[] { "Please provide reader URL, such as:", "tmr:///com4", "tmr://my-reader.example.com", })); Environment.Exit(1); } try { // Create Reader object, connecting to physical device. // Wrap reader in a "using" block to get automatic // reader shutdown (using IDisposable interface). using (Reader r = Reader.Create(args[0])) { //Uncomment this line to add default transport listener. //r.Transport += r.SimpleTransportListener; r.Connect(); if (Reader.Region.UNSPEC == (Reader.Region)r.ParamGet("/reader/region/id")) { Reader.Region[] supportedRegions = (Reader.Region[])r.ParamGet("/reader/region/supportedRegions"); if (supportedRegions.Length < 1) { throw new FAULT_INVALID_REGION_Exception(); } else { r.ParamSet("/reader/region/id", supportedRegions[0]); } } //Set delimiter to 1 r.ParamSet("/reader/iso180006b/delimiter", Iso180006b.Delimiter.DELIMITER1); // Read Plan Iso180006b.Select filter = new Iso180006b.Select(false, Iso180006b.SelectOp.NOTEQUALS, 0, 0xff, new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }); SimpleReadPlan plan = new SimpleReadPlan(null, TagProtocol.ISO180006B, filter, null, 1000); r.ParamSet("/reader/read/plan", plan); // Create and add tag listener r.TagRead += delegate(Object sender, TagReadDataEventArgs e) { Console.WriteLine("Background read: " + e.TagReadData); }; // Create and add read exception listener r.ReadException += new EventHandler<ReaderExceptionEventArgs>(r_ReadException); // Search for tags in the background r.StartReading(); Console.WriteLine("\r\n<Do other work here>\r\n"); Thread.Sleep(500); Console.WriteLine("\r\n<Do other work here>\r\n"); Thread.Sleep(500); r.StopReading(); } } catch (ReaderException re) { Console.WriteLine("Error: " + re.Message); } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); } }
private static void TestStrFilterReadPlansFunc(Reader rdr, ArgParser pargs) { Gen2.Select g2s = new Gen2.Select(false, Gen2.Bank.EPC, 16, 16, new byte[] { 0x12, 0x34 }); Console.WriteLine(g2s); Gen2.Select notg2s = new Gen2.Select(true, Gen2.Bank.EPC, 16, 16, new byte[] { 0x12, 0x34 }); Console.WriteLine(notg2s); Iso180006b.Select i6bs = new Iso180006b.Select(false, Iso180006b.SelectOp.EQUALS, 0, 0xC0, new byte[] { 0x12, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }); Console.WriteLine(i6bs); Iso180006b.Select noti6bs = new Iso180006b.Select(true, Iso180006b.SelectOp.EQUALS, 0, 0xC0, new byte[] { 0x12, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }); Console.WriteLine(noti6bs); TagData td = new TagData("1234567890ABCDEF"); Console.WriteLine(td); MultiFilter mf = new MultiFilter(new TagFilter[] { g2s, i6bs, td }); Console.WriteLine(mf); SimpleReadPlan srp1 = new SimpleReadPlan(null, TagProtocol.GEN2, g2s, 1000); Console.WriteLine(srp1); SimpleReadPlan srp2 = new SimpleReadPlan(new int[] { 1, 2 }, TagProtocol.ISO180006B, i6bs, 1000); Console.WriteLine(srp2); MultiReadPlan mrp = new MultiReadPlan(new ReadPlan[] { srp1, srp2 }); Console.WriteLine(mrp); }