Ejemplo n.º 1
0
 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);
         }
     }
 }
Ejemplo n.º 2
0
        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;
                }
            });
        }
Ejemplo n.º 3
0
 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
         }
     }
 }
Ejemplo n.º 4
0
 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();
 }
Ejemplo n.º 5
0
        //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();
        }
Ejemplo n.º 6
0
        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();
        }
Ejemplo n.º 7
0
 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();
     }
 }
Ejemplo n.º 8
0
 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);
         }
     }
 }
Ejemplo n.º 9
0
 void ReadMgr_ReaderEvent(ReadMgr.EventCode code)
 {
     Invoke((Action)delegate
     {
         infoPowerLabel.Text = code.ToString();
     });
 }
Ejemplo n.º 10
0
        /// <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");
                }
            }
        }
Ejemplo n.º 11
0
        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;
                }
            }
        }
Ejemplo n.º 12
0
        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;
                }
            });
        }
Ejemplo n.º 13
0
 private void btnCancel_Click(object sender, EventArgs e)
 {
     ReadMgr.AllowDisconnect();
     isSettingsChanged = false;
     this.Close();
 }
Ejemplo n.º 14
0
        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);
            }
        }