void StateChangedEvent(object sender, CSLibrary.Events.OnStateChangedEventArgs e)
        {
            InvokeOnMainThread(() =>
            {
                switch (e.state)
                {
                case CSLibrary.Constants.RFState.IDLE:
                    ClassBattery.SetBatteryMode(ClassBattery.BATTERYMODE.IDLE);
                    _cancelVoltageValue = true;
                    switch (BleMvxApplication._reader.rfid.LastMacErrorCode)
                    {
                    case 0x00:          // normal end
                        break;

                    case 0x0309:            //
                        _userDialogs.Alert("Too near to metal, please move CS108 away from metal and start inventory again.");
                        break;

                    default:
                        _userDialogs.Alert("Mac error : 0x" + BleMvxApplication._reader.rfid.LastMacErrorCode.ToString("X4"));
                        break;
                    }
                    break;
                }
            });
        }
Esempio n. 2
0
 void StateChangedEvent(object sender, CSLibrary.Events.OnStateChangedEventArgs e)
 {
     switch (e.state)
     {
     case CSLibrary.Constants.RFState.IDLE:
         break;
     }
 }
        void ReaderXP_StateChangedEvent(object sender, CSLibrary.Events.OnStateChangedEventArgs e)
        {
            this.BeginInvoke((System.Threading.ThreadStart) delegate()
            {
                switch (e.state)
                {
                case RFState.IDLE:
                    watchrate.Stop();
                    //ControlPanelForm.EnablePannel(true);
                    EnableButton(ButtonState.Start, true);
                    EnableButton(ButtonState.Stop, false);
                    EnableTimer(false);
                    if (mStop)
                    {
                        this.Close();
                    }
                    break;

                case RFState.BUSY:
                    watchrate.Reset();
                    watchrate.Start();
                    totaltags = 0;
                    totalcrc  = 0;
                    EnableButton(ButtonState.Start, false);
                    EnableButton(ButtonState.Stop, true);
                    EnableTimer(true);
                    break;

                case RFState.RESET:
                    if (ControlPanelWithAsyncGpioForm.ControlPanel.checkBoxLog.Checked)
                    {
                        TextWriter tw = new StreamWriter("Log.Txt", true);

                        tw.WriteLine("{0} : System Reset", DateTime.Now.ToString());

                        tw.Close();
                    }

                    //Use other thread to create progress
                    reset = new Thread(new ThreadStart(Reset));
                    reset.Start();

                    break;

                case RFState.ABORT:
                    //ControlPanelForm.EnablePannel(false);
                    break;

                case RFState.ANT_CYCLE_END:
                    if (ControlPanelWithAsyncGpioForm.ControlPanel.LEDFlash)
                    {
                        Program.ReaderXP.SetGPO0Async(LedOn);
                        LedOn = !LedOn;
                    }
                    break;
                }
            });
        }
Esempio n. 4
0
        void StateChangedEvent(object sender, CSLibrary.Events.OnStateChangedEventArgs e)
        {
            if (e.state == CSLibrary.Constants.RFState.INITIALIZATION_COMPLETE)
            {
                BleMvxApplication._batteryLow = false;
                RaisePropertyChanged(() => labelVoltageTextColor);

                // for cloud server
                //BleMvxApplication._reader.siliconlabIC.GetSerialNumber();

                // Set Country and Region information
                if (BleMvxApplication._config.RFID_Region == CSLibrary.Constants.RegionCode.UNKNOWN)
                {
                    BleMvxApplication._config.RFID_Region = BleMvxApplication._reader.rfid.SelectedRegionCode;

                    if (BleMvxApplication._reader.rfid.IsFixedChannel)
                    {
                        BleMvxApplication._config.RFID_FrequenceSwitch = 1;
                        BleMvxApplication._config.RFID_FixedChannel    = BleMvxApplication._reader.rfid.SelectedChannel;
                    }
                    else
                    {
                        BleMvxApplication._config.RFID_FrequenceSwitch = 0; // Hopping
                    }
                }

                // the library auto cancel the task if the setting no change
                switch (BleMvxApplication._config.RFID_FrequenceSwitch)
                {
                case 0:
                    BleMvxApplication._reader.rfid.SetHoppingChannels(BleMvxApplication._config.RFID_Region);
                    break;

                case 1:
                    BleMvxApplication._reader.rfid.SetFixedChannel(BleMvxApplication._config.RFID_Region, BleMvxApplication._config.RFID_FixedChannel);
                    break;

                case 2:
                    BleMvxApplication._reader.rfid.SetAgileChannels(BleMvxApplication._config.RFID_Region);
                    break;
                }

                if (BleMvxApplication._reader.rfid.GetFirmwareVersion() < 0x00020614 || BleMvxApplication._reader.siliconlabIC.GetFirmwareVersion() < 0x00010009 || BleMvxApplication._reader.bluetoothIC.GetFirmwareVersion() < 0x0001000E)
                {
                    _userDialogs.AlertAsync("Firmware too old" + Environment.NewLine +
                                            "Please upgrade firmware to at least :" + Environment.NewLine +
                                            "RFID Processor firmware: V2.6.20" + Environment.NewLine +
                                            "SiliconLab Firmware: V1.0.9" + Environment.NewLine +
                                            "Bluetooth Firmware: V1.0.14");
                }

                ClassBattery.SetBatteryMode(ClassBattery.BATTERYMODE.IDLE);
            }
        }
 void StateChangedEvent(object sender, CSLibrary.Events.OnStateChangedEventArgs e)
 {
     Device.BeginInvokeOnMainThread(() =>
     {
         switch (e.state)
         {
         case CSLibrary.Constants.RFState.IDLE:
             Log_InventoryResult();
             StartNextInventory();
             break;
         }
     });
 }
Esempio n. 6
0
        void ReaderCE_OnStateChanged(object sender, CSLibrary.Events.OnStateChangedEventArgs e)
        {
            this.Invoke((System.Threading.ThreadStart) delegate()
            {
                switch (e.state)
                {
                case RFState.IDLE:
                    //
                    //Device.MelodyPlay(RingTone.T1, BuzzerVolume.HIGH);
                    break;

                case RFState.BUSY:
                    btnStop.Enabled = true;
                    break;
                }
            });
        }
Esempio n. 7
0
        void ReaderXP_StateChangedEvent(object sender, CSLibrary.Events.OnStateChangedEventArgs e)
        {
            if (this.IsDisposed)
            {
                return;
            }
            this.Invoke((System.Threading.ThreadStart) delegate()
            {
                switch (e.state)
                {
                case RFState.IDLE:
                    EnableForm(true);
                    if (!m_stop)
                    {
                        switch (m_opt)
                        {
                        case Opts.TAG_SEARCH:
                            ChangeBtnState(false);
                            break;
                        }
                    }
                    else
                    {
                        CloseForm();
                    }
                    break;

                case RFState.BUSY:
                    switch (m_opt)
                    {
                    case Opts.TAG_SEARCH:
                        ChangeBtnState(true);
                        break;
                    }
                    break;

                case RFState.ABORT:
                    EnableForm(false);
                    break;
                }
            });
        }
        void ReaderXP_StateChangedEvent(object sender, CSLibrary.Events.OnStateChangedEventArgs e)
        {
            Invoke((System.Threading.ThreadStart) delegate()
            {
                switch (e.state)
                {
                case RFState.IDLE:
                    EnableUpdate(false);
                    if (!m_stop)
                    {
                        m_totaltag = 0;
//                            Device.MelodyPlay(RingTone.T1, BuzzerVolume.HIGH);
                        //startMenu1.ToggleStartButton();
                        EnableForm(true);
                        RefreshListView();
                    }
                    else
                    {
                        CloseForm();
                    }
                    break;

                case RFState.BUSY:
                    EnableUpdate(true);
//                        Device.MelodyPlay(RingTone.T2, BuzzerVolume.HIGH);
                    //startMenu1.ToggleStartButton();
//                        timeStarted = DateTime.Now;
                    break;

                case RFState.ABORT:
                    EnableForm(false);
                    break;

                case RFState.RESET:
                    EnableUpdate(false);
                    Program.ReaderXP.Reconnect(10);
                    Program.ReaderXP.StartOperation(Operation.TAG_INVENTORY, Program.appSetting.Cfg_blocking_mode);
                    EnableUpdate(true);
                    break;
                }
            });
        }
Esempio n. 9
0
        void ReaderXP_MyRunningStateEvent(object sender, CSLibrary.Events.OnStateChangedEventArgs e)
        {
/*
 * this.BeginInvoke((System.Threading.ThreadStart)delegate()
 *             {
 *                 switch (e.state)
 *                 {
 *                     case RFState.IDLE:
 *                         break;
 *                     case RFState.BUSY:
 *                         break;
 *                     case RFState.RESET:
 *                         break;
 *                     case RFState.ABORT:
 *                         //ControlPanelForm.EnablePannel(false);
 *                         break;
 *                 }
 *             });
 */
        }
Esempio n. 10
0
        void Reader_StateChangedEvent(object sender, CSLibrary.Events.OnStateChangedEventArgs e)
        {
            Invoke((System.Threading.ThreadStart) delegate()
            {
                switch (e.state)
                {
                case RFState.IDLE:
                    break;

                case RFState.BUSY:
                    //Device.MelodyPlay(RingTone.T2, BuzzerVolume.HIGH);
                    break;

                case RFState.ABORT:
                    break;

                case RFState.RESET:
                    break;
                }
            });
        }
Esempio n. 11
0
        void ReaderXP_MyRunningStateEvent(object sender, CSLibrary.Events.OnStateChangedEventArgs e)
        {
            this.BeginInvoke((System.Threading.ThreadStart) delegate()
            {
                switch (e.state)
                {
                case RFState.IDLE:
                    break;

                case RFState.BUSY:
                    break;

                case RFState.RESET:
                    break;

                case RFState.ABORT:
                    //ControlPanelForm.EnablePannel(false);
                    break;
                }
            });
        }
Esempio n. 12
0
        void ReaderXP_OnStateChanged(object sender, CSLibrary.Events.OnStateChangedEventArgs e)
        {
            this.Invoke((System.Threading.ThreadStart) delegate()
            {
                switch (e.state)
                {
                case CSLibrary.Constants.RFState.IDLE:
                    if (!m_stop)
                    {
                        UpdateCWBtn(true);
                    }
                    else
                    {
                        this.Close();
                    }
                    break;

                case CSLibrary.Constants.RFState.BUSY:
                    UpdateCWBtn(false);
                    break;
                }
            });
        }
Esempio n. 13
0
        void StateChangedEvent(object sender, CSLibrary.Events.OnStateChangedEventArgs e)
        {
            if (e.state == CSLibrary.Constants.RFState.INITIALIZATION_COMPLETE)
            {
                BleMvxApplication._batteryLow = false;
                RaisePropertyChanged(() => labelVoltageTextColor);

                // Set Country and Region information
                if (BleMvxApplication._config.RFID_Region == CSLibrary.Constants.RegionCode.UNKNOWN || BleMvxApplication._config.readerModel != BleMvxApplication._reader.rfid.GetModel())
                {
                    BleMvxApplication._config.readerModel = BleMvxApplication._reader.rfid.GetModel();
                    BleMvxApplication._config.RFID_Region = BleMvxApplication._reader.rfid.SelectedRegionCode;

                    if (BleMvxApplication._reader.rfid.IsFixedChannel)
                    {
                        BleMvxApplication._config.RFID_FrequenceSwitch = 1;
                        BleMvxApplication._config.RFID_FixedChannel    = BleMvxApplication._reader.rfid.SelectedChannel;
                    }
                    else
                    {
                        BleMvxApplication._config.RFID_FrequenceSwitch = 0; // Hopping
                    }
                }

                // the library auto cancel the task if the setting no change
                switch (BleMvxApplication._config.RFID_FrequenceSwitch)
                {
                case 0:
                    BleMvxApplication._reader.rfid.SetHoppingChannels(BleMvxApplication._config.RFID_Region);
                    break;

                case 1:
                    BleMvxApplication._reader.rfid.SetFixedChannel(BleMvxApplication._config.RFID_Region, BleMvxApplication._config.RFID_FixedChannel);
                    break;

                case 2:
                    BleMvxApplication._reader.rfid.SetAgileChannels(BleMvxApplication._config.RFID_Region);
                    break;
                }

                uint portNum = BleMvxApplication._reader.rfid.GetAntennaPort();
                for (uint cnt = 0; cnt < portNum; cnt++)
                {
                    BleMvxApplication._reader.rfid.SetAntennaPortState(cnt, BleMvxApplication._config.RFID_AntennaEnable[cnt] ? CSLibrary.Constants.AntennaPortState.ENABLED : CSLibrary.Constants.AntennaPortState.DISABLED);
                    BleMvxApplication._reader.rfid.SetPowerLevel(BleMvxApplication._config.RFID_Antenna_Power[cnt], cnt);
                    BleMvxApplication._reader.rfid.SetInventoryDuration(BleMvxApplication._config.RFID_Antenna_Dwell[cnt], cnt);
                }

                if ((BleMvxApplication._reader.bluetoothIC.GetFirmwareVersion() & 0x0F0000) != 0x030000) // ignore CS463
                {
                    if (BleMvxApplication._reader.rfid.GetFirmwareVersion() < 0x0002061D || BleMvxApplication._reader.siliconlabIC.GetFirmwareVersion() < 0x00010009 || BleMvxApplication._reader.bluetoothIC.GetFirmwareVersion() < 0x0001000E)
                    {
                        _userDialogs.AlertAsync("Firmware too old" + Environment.NewLine +
                                                "Please upgrade firmware to at least :" + Environment.NewLine +
                                                "RFID Processor firmware: V2.6.29" + Environment.NewLine +
                                                "SiliconLab Firmware: V1.0.9" + Environment.NewLine +
                                                "Bluetooth Firmware: V1.0.14");
                    }
                }

                ClassBattery.SetBatteryMode(ClassBattery.BATTERYMODE.IDLE);
            }
        }
        void ReaderXP_StateChangedEvent(object sender, CSLibrary.Events.OnStateChangedEventArgs e)
        {
            this.BeginInvoke((System.Threading.ThreadStart) delegate()
            {
                switch (e.state)
                {
                case RFState.IDLE:
                    watchrate.Stop();
                    //ControlPanelForm.EnablePannel(true);
                    EnableButton(ButtonState.Start, true);
                    EnableButton(ButtonState.Stop, false);
                    EnableTimer(false);
                    if (mStop)
                    {
                        this.Close();
                    }
                    break;

                case RFState.BUSY:
                    watchrate.Reset();
                    watchrate.Start();
                    totaltags = 0;
                    totalcrc  = 0;
                    EnableButton(ButtonState.Start, false);
                    EnableButton(ButtonState.Stop, true);
                    EnableTimer(true);
                    break;

                case RFState.RESET:
                    {
                        HighLevelInterface reader = (HighLevelInterface)(sender);

                        while (true)
                        {
                            if (reader.Reconnect(1) == Result.OK)
                            {
                                break;
                            }

                            Thread.Sleep(1000);
                        }
                    }


                    if (ControlPanelForm.ControlPanel.checkBoxLog.Checked)
                    {
                        TextWriter tw = new StreamWriter(CS203_CALLBACK_API_DEMO.ControlPanelForm.ControlPanel.textBox_LogPath.Text + "\\CycleLog.Txt", true);

                        tw.WriteLine("{0} : System Reset", DateTime.Now.ToString());

                        tw.Close();
                    }

                    //Use other thread to create progress
                    Reset();
                    //reset = new Thread(new ThreadStart(Reset));
                    //reset.Start();

                    break;

                case RFState.ABORT:
                    //ControlPanelForm.EnablePannel(false);
                    break;

                case RFState.ANT_CYCLE_END:
                    AntCycleCount++;
                    totaltagscycle     = totaltagsthiscycle;
                    totaltagsthiscycle = 0;

                    if (ControlPanelForm.ControlPanel.checkBoxLog.Checked)
//                               ControlPanelForm.ControlPanel.checkBoxSaveSummary.Checked)
                    {
                        int portbusy = 0;
                        int common   = 0;

                        //TextWriter tw = new StreamWriter(ControlPanelForm.SummaryFile, true);
                        TextWriter tw = new StreamWriter(CS203_CALLBACK_API_DEMO.ControlPanelForm.ControlPanel.textBox_LogPath.Text + "\\CycleLog.Txt", true);

                        tw.Write("{0} : Cycle {1}, {2} Tag/Cycle, Channel State : ", DateTime.Now.ToString(), AntCycleCount, totaltagscycle);

                        for (int cnt = 0; cnt < 16; cnt++)
                        {
                            if (Program.ReaderXP.ChannelStatus[cnt] == RFState.CH_BUSY)
                            {
                                portbusy = 1;
                                if (common == 0)
                                {
                                    tw.Write("Port Busy ");
                                }
                                else
                                {
                                    tw.Write(", ");
                                }
                                tw.Write("{0}", cnt);
                                common = 1;
                            }
                        }

                        if (portbusy == 0)
                        {
                            tw.WriteLine("CLEAR");
                        }
                        else
                        {
                            tw.WriteLine("");
                        }

                        tw.Close();
                    }
                    numChannelBusy = 0;

                    if (AntCycleTimeCount <= 4)
                    {
                        AntCycleTime[AntCycleTimeCount++] = Environment.TickCount;
                    }
                    else
                    {
                        AntCycleTime[0] = AntCycleTime[1];
                        AntCycleTime[1] = AntCycleTime[2];
                        AntCycleTime[2] = AntCycleTime[3];
                        AntCycleTime[3] = AntCycleTime[4];
                        AntCycleTime[4] = Environment.TickCount;
                    }

                    break;
                }
            });
        }
Esempio n. 15
0
        void ReaderXP_StateChangedEvent(object sender, CSLibrary.Events.OnStateChangedEventArgs e)
        {
            this.BeginInvoke((System.Threading.ThreadStart) delegate()
            {
                switch (e.state)
                {
                case RFState.IDLE:
                    watchrate.Stop();
                    //ControlPanelForm.EnablePannel(true);
                    EnableButton(ButtonState.Start, true);
                    EnableButton(ButtonState.Stop, false);
                    EnableTimer(false);
                    if (mStop)
                    {
                        this.Close();
                    }
                    break;

                case RFState.BUSY:
                    watchrate.Reset();
                    watchrate.Start();
                    totaltags = 0;
                    totalcrc  = 0;
                    EnableButton(ButtonState.Start, false);
                    EnableButton(ButtonState.Stop, true);
                    EnableTimer(true);
                    break;

                case RFState.RESET:
                    if (QTControlPanelForm.ControlPanel.checkBoxLog.Checked)
                    {
                        TextWriter tw = new StreamWriter("Log.Txt", true);

                        tw.WriteLine("{0} : System Reset", DateTime.Now.ToString());

                        tw.Close();
                    }

                    //Use other thread to create progress
                    reset = new Thread(new ThreadStart(Reset));
                    reset.Start();
                    break;

                case RFState.ABORT:
                    //ControlPanelForm.EnablePannel(false);
                    break;

                case RFState.ANT_CYCLE_END:
                    AntCycleCount++;
                    totaltagscycle     = totaltagsthiscycle;
                    totaltagsthiscycle = 0;

/*                           if (ControlPanelForm.ControlPanel.checkBoxSaveSummary.Checked)
 *                         {
 *                             int portbusy = 0;
 *                             int common = 0;
 *
 *                             TextWriter tw = new StreamWriter(ControlPanelForm.SummaryFile, true);
 *
 *                             tw.Write("{0} : Cycle {1}, {2} Tag/Cycle, Channel State : ", DateTime.Now.ToString(), AntCycleCount, totaltagscycle);
 *
 *                             for (int cnt = 0; cnt < 16; cnt++)
 *                             {
 *                                 if (Program.ReaderXP.ChannelStatus[cnt] == RFState.CH_BUSY)
 *                                 {
 *                                     portbusy = 1;
 *                                     if (common == 0)
 *                                         tw.Write("Port Busy ");
 *                                     else
 *                                         tw.Write(", ");
 *                                     tw.Write("{0}", cnt);
 *                                     common = 1;
 *                                 }
 *
 *                             }
 *
 *                             if (portbusy == 0)
 *                                 tw.WriteLine("CLEAR");
 *                             else
 *                                 tw.WriteLine("");
 *
 *                             tw.Close();
 *                         }
 */
                    numChannelBusy = 0;

                    if (AntCycleTimeCount <= 4)
                    {
                        AntCycleTime[AntCycleTimeCount++] = Environment.TickCount;
                    }
                    else
                    {
                        AntCycleTime[0] = AntCycleTime[1];
                        AntCycleTime[1] = AntCycleTime[2];
                        AntCycleTime[2] = AntCycleTime[3];
                        AntCycleTime[3] = AntCycleTime[4];
                        AntCycleTime[4] = Environment.TickCount;
                    }

                    break;
                }
            });
        }