private void PistolRead() { try { //Read can be triggered either by pressing the pistolgrip button or by tapping // the "Start Reades". So when read is activated by one event, and other event // should not disturb it. So if reading is already in progress, just return. if (!readTriggeredByTap) { readTriggeredByPistol = true; ReadtheTags(); } } catch (Exception ex) { logger.Error("In PistolRead: " + ex.ToString()); Thread.Sleep(200); try { logger.Debug("Reconnecting..."); ReadMgr.ForceReconnect(); logger.Debug("ReadMgr.ForceReconnect completed"); ReadtheTags(); } catch (Exception ex2) { logger.Error(ex2.ToString()); MessageBox.Show(ex2.Message); } } }
private void StopReads() { Invoke((Action) delegate { if (properties["isreading"] == "yes") { tbTXPower.Enabled = true; miGoToMain.Enabled = true; tbTXPower.Enabled = true; logger.Debug("Calling StopReading from StopReads"); ReadMgr.GetReader().StopReading(); logger.Debug("Called StopReading from StopReads"); ReadMgr.GetReader().TagRead -= PrintTagRead; ReadMgr.GetReader().ReadException -= ReadException; setStatus(Status.READY); ReadMgr.GetReader().ParamSet("/reader/powerMode", Reader.PowerMode.MINSAVE); properties["isreading"] = "no"; properties["powermode"] = "minsave"; Utilities.SaveConfigurations(properties); ReadMgr.AllowDisconnect(); logger.Debug("Calling GuiStopReads from StopReads"); GuiStopReads(); logger.Debug("Called GuiStopReads from StopReads"); //Change to initial values readTriggeredByTap = false; readTriggeredByPistol = false; tmrBackLightControl.Enabled = false; } }); }
private void btnStartReads_Click(object sender, EventArgs e) { try { //Read can be triggered either by pressing the pistolgrip button or by tapping // the "Start Reades". So when read is activated by one event, and other event // should not disturb it. So if reading is already in progress, just return. if (!readTriggeredByPistol) { readTriggeredByTap = true; ReadtheTags(); CancelEventArgs eClose = new CancelEventArgs(true); } } catch (Exception ex) { logger.Error(ex.ToString()); try { ReadMgr.ForceReconnect(); ReadtheTags(); } catch (Exception ex2) { logger.Error(ex2.ToString()); //do nothing } } }
private void AdvancedReaderSettings_Closing(object sender, CancelEventArgs e) { if (isSettingsChanged && isAdressNumeric) { switch (MessageBox.Show("Do you wish to save it", "Settings are changed", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)) { case DialogResult.Yes: btnSave_Click(sender, e); break; } } ReadMgr.AllowDisconnect(); }
//private void tmrPower_Tick(object sender, EventArgs e) //{ // try // { // properties = Utilities.GetProperties(); // if (properties["isreading"].ToLower() == "no") // { // if (properties["powermode"].ToLower() != "maxsave") // { // if (null == objReader) // { // objReader = Utilities.ConnectReader(); // } // else // { // objReader.Connect(); // } // objReader.ParamSet("/reader/powerMode", Reader.PowerMode.MAXSAVE); // } // } // } // catch // { // //do nothing // } // finally // { // if (null != objReader) // { // objReader.Destroy(); // objReader = null; // } // } //} private void Info_Closed(object sender, EventArgs e) { ReadMgr.ForceDisconnect(); RemoveIcon(); ////Release power to USB port //if (hcomport != IntPtr.Zero) //{ // CoreDLL.ReleasePowerRequirement(hcomport); // hcomport = IntPtr.Zero; //} //Enable audio recording toolbar Registry.SetValue(@"HKEY_LOCAL_MACHINE\System\AudioRecording", "Enabled", 1, RegistryValueKind.DWord); Application.Exit(); }
private void exit_Click(object sender, EventArgs e) { properties["iswedgeappdisabled"] = "yes"; Utilities.SaveConfigurations(properties); ReadMgr.ForceDisconnect(); RemoveIcon(); //if (hcomport != IntPtr.Zero) //{ // CoreDLL.ReleasePowerRequirement(hcomport); // hcomport = IntPtr.Zero; //} //Enable audio recording toolbar Registry.SetValue(@"HKEY_LOCAL_MACHINE\System\AudioRecording", "Enabled", 1, RegistryValueKind.DWord); Application.Exit(); }
private void miExit_Click(object sender, EventArgs e) { try { ReadMgr.GetReader().StopReading(); ReadMgr.AllowDisconnect(); ReleaseEvents(); pvtNotifyIcon.Remove(); //Enable audio recording toolbar Registry.SetValue(@"HKEY_LOCAL_MACHINE\System\AudioRecording", "Enabled", 1, RegistryValueKind.DWord); Application.Exit(); } catch (Exception ex) { logger.Error(ex.ToString()); logger.Info("Calling Application.Exit..."); Application.Exit(); } }
private void btnRestoreDefaults_Click(object sender, EventArgs e) { try { txtRFOn.Text = "250"; txtRFOff.Text = "50"; using (ReadMgr.Session rsess = ReadMgr.GetSession()) { ((SerialReader)rsess.Reader).CmdBootBootloader(); properties = Utilities.GetProperties(); ReadMgr.ForceDisconnect(); } using (ReadMgr.Session rsess = ReadMgr.GetSession()) { properties["tagencoding"] = rsess.Reader.ParamGet("/reader/gen2/tagEncoding").ToString(); properties["gen2target"] = rsess.Reader.ParamGet("/reader/gen2/target").ToString(); properties["gen2session"] = rsess.Reader.ParamGet("/reader/gen2/session").ToString(); properties["gen2q"] = rsess.Reader.ParamGet("/reader/gen2/q").ToString(); properties["rfontime"] = "250"; properties["rfofftime"] = "50"; AdvancedReaderSettings_Load(sender, e); isSettingsChanged = true; } } catch { System.Threading.Thread.Sleep(200); try { ReadMgr.ForceReconnect(); btnRestoreDefaults_Click(sender, e); } catch (Exception ex) { logger.Error("In btnRestoreDefaults_Click: " + ex.ToString()); MessageBox.Show(ex.Message); } } }
void ReadMgr_ReaderEvent(ReadMgr.EventCode code) { Invoke((Action)delegate { infoPowerLabel.Text = code.ToString(); }); }
/// <summary> /// Form load /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Info_Load(object sender, EventArgs e) { logger.Info("Info form loaded"); try { Initialize2(); logger.Debug("Initialize2 completed"); InitializeHotkeys(); logger.Debug("InitializeHotkeys completed"); GpsMgr.Init(); logger.Debug("GpsMgr.Init completed"); try { rsess = ReadMgr.GetSession(); logger.Debug("ReadMgr.GetSession completed"); ReadMgr.ReaderEvent += new ReadMgr.ReadMgrEventHandler(ReadMgr_ReaderEvent); logger.Debug("ReadMgr.ReaderEvent subscribed to"); } catch (Exception ex) { logger.Error("In Info_Load ReadMgr: " + ex.ToString()); MessageBox.Show(ex.Message.ToString()); Application.Exit(); return; } System.Windows.Forms.Timer infoTimer = new System.Windows.Forms.Timer(); infoTimer.Interval = 1000; infoTimer.Tick += new EventHandler(infoTimer_Tick); infoTimer.Enabled = true; #if DEBUG #else infoDebugLabel.Visible = false; infoGpsLabel.Visible = false; //infoGpsLabel.Text = ""; infoPowerLabel.Visible = false; #endif properties = Utilities.GetProperties(); //Set the region SetRegion(); Utilities.SaveConfigurations(properties); //Load the reader information LoadReaderInfo(); InitializeReaderDefaults(); Utilities.SaveConfigurations(properties); //Disable the launching of audio recording tool bar Registry.SetValue(@"HKEY_LOCAL_MACHINE\System\AudioRecording", "Enabled", 0, RegistryValueKind.DWord); // Force on-screen keyboard away to ensure that our menus are visible inputPanel.Enabled = false; } catch (ReaderCommException rcom) { logger.Error("In Info_Load: " + rcom.ToString()); MessageBox.Show(rcom.Message.ToString()); } catch (Exception ex) { logger.Error("In Info_Load: " + ex.ToString()); MessageBox.Show(ex.Message.ToString()); } finally { if (null != rsess) { logger.Debug("Calling rsess.Dispose..."); rsess.Dispose(); logger.Debug("rsess.Dispose completed"); } } }
private void ReadtheTags() { try { // Make sure reader is connected ReadMgr.GetReader(); System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); if (btnStartReads.Text == "Start Reads") { Cursor.Current = Cursors.WaitCursor; try { //Check the battery power level if (CoreDLL.GetSystemPowerStatusEx(status, false) == 1) { if (status.BatteryLifePercent <= 5) { if (status.ACLineStatus == 0) { MessageBox.Show("Battery level is low to read tags"); return; } } } properties["isreading"] = "yes"; Utilities.SaveConfigurations(properties); //disable read power coverage tbTXPower.Enabled = false; ReadMgr.GetReader().ParamSet("/reader/transportTimeout", 2000); int powerLevel = Convert.ToInt32(properties["readpower"]); ReadMgr.GetReader().ParamSet("/reader/radio/readPower", powerLevel); Utilities.SwitchRegion(properties["region"]); ReadMgr.GetReader().ParamSet("/reader/antenna/txRxMap", new int[][] { new int[] { 1, 1, 1 } }); ant.Add(1); SimpleReadPlan plan = new SimpleReadPlan(ant.ToArray(), TagProtocol.GEN2); ReadMgr.GetReader().ParamSet("/reader/read/plan", plan); //int readPower = Convert.ToInt32(properties["readpower"].ToString()) * 100; //tbTXPower.Value = (readPower - 1000) / 50; tmrBackLightControl.Enabled = true; miGoToMain.Enabled = false; //set properties ReadMgr.GetReader().ParamSet("/reader/read/asyncOffTime", 50); ReadMgr.GetReader().ParamSet("/reader/powerMode", Reader.PowerMode.FULL); //set the tag population settings ReadMgr.GetReader().ParamSet("/reader/gen2/target", Gen2.Target.A);//default target string tagPopulation = properties["tagpopulation"]; switch (tagPopulation) { case "small": ReadMgr.GetReader().ParamSet("/reader/gen2/q", new Gen2.StaticQ(2)); ReadMgr.GetReader().ParamSet("/reader/gen2/session", Gen2.Session.S0); ReadMgr.GetReader().ParamSet("/reader/gen2/tagEncoding", Gen2.TagEncoding.M4); break; case "medium": ReadMgr.GetReader().ParamSet("/reader/gen2/q", new Gen2.StaticQ(4)); ReadMgr.GetReader().ParamSet("/reader/gen2/session", Gen2.Session.S1); ReadMgr.GetReader().ParamSet("/reader/gen2/tagEncoding", Gen2.TagEncoding.M4); break; case "large": ReadMgr.GetReader().ParamSet("/reader/gen2/q", new Gen2.StaticQ(6)); ReadMgr.GetReader().ParamSet("/reader/gen2/session", Gen2.Session.S1); ReadMgr.GetReader().ParamSet("/reader/gen2/tagEncoding", Gen2.TagEncoding.M2); break; default: break; } if (null != properties) { Utilities.SetReaderSettings(ReadMgr.GetReader(), properties); } else { MessageBox.Show("properties are null"); } //set the read plan and filter TagFilter filter; int addressToRead = int.Parse(properties["selectionaddress"]); Gen2.Bank bank = Gen2.Bank.EPC; switch (properties["tagselection"].ToLower()) { case "None": case "epc": bank = Gen2.Bank.EPC; break; case "tid": bank = Gen2.Bank.TID; break; case "user": bank = Gen2.Bank.USER; break; case "reserved": bank = Gen2.Bank.RESERVED; break; default: break; } if ("yes" == properties["ismaskselected"]) { filter = new Gen2.Select(true, bank, (uint)addressToRead * 8, (ushort)(properties["selectionmask"].Length * 4), ByteFormat.FromHex(properties["selectionmask"])); } else { filter = new Gen2.Select(false, bank, (uint)addressToRead * 8, (ushort)(properties["selectionmask"].Length * 4), ByteFormat.FromHex(properties["selectionmask"])); } SimpleReadPlan srp; if (properties["tagselection"].ToLower() == "none") { srp = new SimpleReadPlan(new int[] { 1 }, TagProtocol.GEN2, null, 0); } else { srp = new SimpleReadPlan(new int[] { 1 }, TagProtocol.GEN2, filter, 0); } ReadMgr.GetReader().ParamSet("/reader/read/plan", srp); btnStartReads.Text = "Stop Reads"; setStatus("Reading", System.Drawing.Color.DarkGoldenrod); ReadMgr.GetReader().ReadException += ReadException; ReadMgr.GetReader().TagRead += PrintTagRead; ReadMgr.GetReader().StartReading(); if (properties["audiblealert"].ToLower() == "yes") { if (readTriggeredByTap) { playStartSound(); } } } catch (Exception ex) { logger.Error(ex.ToString()); tbTXPower.Enabled = true; //MessageBox.Show("Error connecting to reader: " + ex.Message.ToString(), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); btnStartReads.Text = "Start Reads"; setStatus(Status.IDLE); ReadMgr.GetReader().ParamSet("/reader/powerMode", Reader.PowerMode.MAXSAVE); miGoToMain.Enabled = true; tmrBackLightControl.Enabled = false; properties["isreading"] = "no"; Utilities.SaveConfigurations(properties); throw ex; } finally { Cursor.Current = Cursors.Default; } } else if (btnStartReads.Text == "Stop Reads") { logger.Debug("Stop Reads pressed: Calling StopReads from ReadtheTags"); StopReads(); logger.Debug("Stop Reads pressed: Called StopReads from ReadtheTags"); } } catch (Exception ex) { logger.Error(ex.ToString()); if (-1 != ex.Message.IndexOf("RFID reader was not found")) { MessageBox.Show(ex.Message, "Error"); } else { btnStartReads.Text = "Start Reads"; setStatus(Status.IDLE); properties["isreading"] = "no"; Utilities.SaveConfigurations(properties); throw ex; } } }
void ReadMgr_ReaderEvent(ReadMgr.EventCode code) { BeginInvoke((Action)delegate { ReadMgr_ReaderEvent_State = code; switch (code) { case ReadMgr.EventCode.POWER_INTERRUPTED: Cursor.Current = Cursors.WaitCursor; setStatus("Power Interrupted", Color.Yellow); SetDebug(""); break; case ReadMgr.EventCode.POWER_RESTORED: setStatus("Power Restored"); Cursor.Current = Cursors.Default; setStatus(Status.READY); break; case ReadMgr.EventCode.READER_SHUTDOWN: logger.Debug("Calling GuiStopReads from ReadMgr_ReaderEvent"); GuiStopReads(); logger.Debug("Called GuiStopReads from ReadMgr_ReaderEvent"); setStatus(Status.IDLE); break; case ReadMgr.EventCode.READER_RECOVERING: btnStartReads.Invoke((Action)delegate { btnStartReads.Text = "Start Reads"; }); Cursor.Current = Cursors.WaitCursor; setStatus("Reconnecting...", Color.Yellow); break; case ReadMgr.EventCode.READER_RECOVERED: try { //if (properties["isreading"] == "yes") //{ // // Give reader time to come up to working state // // before hammering it with Stop Reads commands // Thread.Sleep(1000); // StopReads(); //} //setStatus(Status.READY); setStatus(Status.READY); if (properties["isreading"] == "yes") { ReadtheTags(); } } catch (Exception ex) { logger.Error("In ReadMgr_ReaderEvent" + ex.ToString()); setStatus(ex.Message, Color.Red); Utilities.DiskLog.Log("Caught Exception in ReadTags.READER_RECOVERED:\r\n" + ex.ToString()); } finally { Cursor.Current = Cursors.Default; } break; case ReadMgr.EventCode.READER_RECOVERY_FAILED: Cursor.Current = Cursors.Default; setStatus(ReadMgr.lastErrorMessage, Color.Red); break; } }); }
private void btnCancel_Click(object sender, EventArgs e) { ReadMgr.AllowDisconnect(); isSettingsChanged = false; this.Close(); }
private void AdvancedReaderSettings_Load(object sender, EventArgs e) { try { using (ReadMgr.Session rsess = ReadMgr.GetSession()) { if (properties["tagencoding"] == "") { properties["tagencoding"] = rsess.Reader.ParamGet("/reader/gen2/tagEncoding").ToString(); } if (properties["gen2target"] == "") { properties["gen2target"] = rsess.Reader.ParamGet("/reader/gen2/target").ToString(); } if (properties["gen2session"] == "") { properties["gen2session"] = rsess.Reader.ParamGet("/reader/gen2/session").ToString(); } if (properties["gen2q"] == "") { properties["gen2q"] = rsess.Reader.ParamGet("/reader/gen2/q").ToString(); } //Populate tagencoding value switch (properties["tagencoding"].ToLower()) { case "fm0": //rbFM0.Checked = true; break; case "m2": rbM2.Checked = true; break; case "m4": rbM4.Checked = true; break; case "m8": rbM8.Checked = true; break; default: break; } //Populate target value switch (properties["gen2target"].ToLower()) { case "a": rbA.Checked = true; break; case "b": rbB.Checked = true; break; case "ab": rbAB.Checked = true; break; case "ba": rbBA.Checked = true; break; } //Populate gen2 session value switch (properties["gen2session"].ToLower()) { case "s0": rbS0.Checked = true; break; case "s1": rbS1.Checked = true; break; case "s2": rbS2.Checked = true; break; case "s3": rbS3.Checked = true; break; } //Populate Q value switch (properties["gen2q"].ToLower()) { case "dynamicq": rbDynamicQ.Checked = true; break; case "staticq": rbStaticQ.Checked = true; cbStaticQ.SelectedItem = properties["staticqvalue"]; cbStaticQ.Enabled = true; break; } if (properties["recordhighestrssi"].ToLower() == "yes") { rbRecordHighestRSSI.Checked = true; } else { rbRecordHighestRSSI.Checked = false; } if (properties["recordrssioflasttagread"].ToLower() == "yes") { rbRecordRSSIoflastTagRead.Checked = true; } else { rbRecordRSSIoflastTagRead.Checked = false; } txtRFOn.Text = properties["rfontime"]; txtRFOff.Text = properties["rfofftime"]; isSettingsChanged = false; } } catch (Exception ex) { logger.Error("In AdvancedReaderSettings_Load: " + ex.ToString()); MessageBox.Show(ex.Message); } }