void StartInventory() { if (_startInventory == false) { return; } //TagInfoList.Clear(); StartTagCount(); //if (BleMvxApplication._config.RFID_OperationMode == CSLibrary.Constants.RadioOperationMode.CONTINUOUS) { _startInventory = false; _startInventoryButtonText = "Stop Inventory"; } _ListViewRowHeight = 40 + (int)(BleMvxApplication._reader.rfid.Options.TagRanging.multibanks * 10); RaisePropertyChanged(() => ListViewRowHeight); InventoryStartTime = DateTime.Now; BleMvxApplication._reader.rfid.StartOperation(CSLibrary.Constants.Operation.TAG_EXERANGING); ClassBattery.SetBatteryMode(ClassBattery.BATTERYMODE.INVENTORY); _cancelVoltageValue = true; RaisePropertyChanged(() => startInventoryButtonText); }
void VoltageEvent(object sender, CSLibrary.Notification.VoltageEventArgs e) { InvokeOnMainThread(() => { if (e.Voltage == 0xffff) { _labelVoltage = "CS108 Bat. ERROR"; // 3.98v } else { // to fix CS108 voltage bug if (_cancelVoltageValue) { _cancelVoltageValue = false; return; } switch (BleMvxApplication._config.BatteryLevelIndicatorFormat) { case 0: _labelVoltage = "CS108 Bat. " + ((double)e.Voltage / 1000).ToString("0.000") + "v"; // v break; default: _labelVoltage = "CS108 Bat. " + ClassBattery.Voltage2Percent((double)e.Voltage / 1000).ToString("0") + "%"; // % break; } } RaisePropertyChanged(() => labelVoltage); }); }
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; } }); }
void StartInventory() { if (BleMvxApplication._reader.BLEBusy) { _userDialogs.ShowSuccess("Configuring Reader, Please Wait", 1000); return; } StartTagCount(); _InventoryScanning = true; _startInventoryButtonText = "Stop Inventory"; _ListViewRowHeight = 40 + (int)(BleMvxApplication._reader.rfid.Options.TagRanging.multibanks * 10); RaisePropertyChanged(() => ListViewRowHeight); InventoryStartTime = DateTime.Now; _Vibrating = false; _noNewTag = 0; if (BleMvxApplication._config.RFID_Vibration && BleMvxApplication._config.RFID_VibrationTag) { BleMvxApplication._reader.barcode.VibratorOn(CSLibrary.BarcodeReader.VIBRATORMODE.INVENTORYON, BleMvxApplication._config.RFID_VibrationTime); } //SetPower(BleMvxApplication._xerxes_Power); SetPower(BleMvxApplication._rfMicro_Power); BleMvxApplication._reader.rfid.StartOperation(CSLibrary.Constants.Operation.TAG_EXERANGING); ClassBattery.SetBatteryMode(ClassBattery.BATTERYMODE.INVENTORY); _cancelVoltageValue = true; RaisePropertyChanged(() => startInventoryButtonText); }
void VoltageEvent(object sender, CSLibrary.Notification.VoltageEventArgs e) { InvokeOnMainThread(() => { if (e.Voltage == 0xffff) { _labelVoltage = "CS108 Bat. ERROR"; // 3.98v } else { // to fix CS108 voltage bug if (_cancelVoltageValue) { _cancelVoltageValue = false; return; } double voltage = (double)e.Voltage / 1000; { var batlow = ClassBattery.BatteryLow(voltage); if (BleMvxApplication._batteryLow && batlow == ClassBattery.BATTERYLEVELSTATUS.NORMAL) { BleMvxApplication._batteryLow = false; RaisePropertyChanged(() => labelVoltageTextColor); } else if (!BleMvxApplication._batteryLow && batlow != ClassBattery.BATTERYLEVELSTATUS.NORMAL) { BleMvxApplication._batteryLow = true; if (batlow == ClassBattery.BATTERYLEVELSTATUS.LOW) { _userDialogs.AlertAsync("20% Battery Life Left, Please Recharge CS108 or Replace Freshly Charged CS108B"); } //else if (batlow == ClassBattery.BATTERYLEVELSTATUS.LOW_17) // _userDialogs.AlertAsync("8% Battery Life Left, Please Recharge CS108 or Replace with Freshly Charged CS108B"); RaisePropertyChanged(() => labelVoltageTextColor); } } switch (BleMvxApplication._config.BatteryLevelIndicatorFormat) { case 0: _labelVoltage = "CS108 Bat. " + voltage.ToString("0.000") + "v"; // v break; default: _labelVoltage = voltage.ToString("0.000") + "v " + ClassBattery.Voltage2Percent(voltage).ToString("0") + "%"; // % //_labelVoltage = ClassBattery.Voltage2Percent((double)e.Voltage / 1000).ToString("0") + "% " + ((double)e.Voltage / 1000).ToString("0.000") + "v"; // % break; } } RaisePropertyChanged(() => labelVoltage); }); }
public override void Suspend() { BleMvxApplication._reader.rfid.StopOperation(); ClassBattery.SetBatteryMode(ClassBattery.BATTERYMODE.IDLE); SetEvent(false); base.Suspend(); }
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); } }
public override void Suspend() { _InventoryScanning = false; StopInventory(); ClassBattery.SetBatteryMode(ClassBattery.BATTERYMODE.IDLE); if (BleMvxApplication._config.RFID_Vibration) { BleMvxApplication._reader.barcode.VibratorOff(); } SetEvent(false); // don't turn off event handler is you need program work in sleep mode. //SetEvent(false); base.Suspend(); }
public override void Suspend() { _InventoryScanning = false; StopInventory(); ClassBattery.SetBatteryMode(ClassBattery.BATTERYMODE.IDLE); BleMvxApplication._reader.rfid.OnAsyncCallback -= new EventHandler <CSLibrary.Events.OnAsyncCallbackEventArgs>(TagInventoryEvent); BleMvxApplication._reader.rfid.OnStateChanged -= new EventHandler <CSLibrary.Events.OnStateChangedEventArgs>(StateChangedEvent); // Key Button event handler BleMvxApplication._reader.notification.OnKeyEvent -= new EventHandler <CSLibrary.Notification.HotKeyEventArgs>(HotKeys_OnKeyEvent); BleMvxApplication._reader.notification.OnVoltageEvent -= new EventHandler <CSLibrary.Notification.VoltageEventArgs>(VoltageEvent); // don't turn off event handler is you need program work in sleep mode. //SetEvent(false); base.Suspend(); }
public override void Suspend() { BleMvxApplication._reader.rfid.CancelAllSelectCriteria(); // Confirm cancel all filter BleMvxApplication._reader.rfid.StopOperation(); ClassBattery.SetBatteryMode(ClassBattery.BATTERYMODE.IDLE); BleMvxApplication._reader.barcode.Stop(); // Cancel RFID event handler BleMvxApplication._reader.rfid.OnAsyncCallback -= new EventHandler <CSLibrary.Events.OnAsyncCallbackEventArgs>(TagInventoryEvent); BleMvxApplication._reader.rfid.OnStateChanged += new EventHandler <CSLibrary.Events.OnStateChangedEventArgs>(StateChangedEvent); // Key Button event handler BleMvxApplication._reader.notification.OnKeyEvent -= new EventHandler <CSLibrary.Notification.HotKeyEventArgs>(HotKeys_OnKeyEvent); BleMvxApplication._reader.notification.OnVoltageEvent -= new EventHandler <CSLibrary.Notification.VoltageEventArgs>(VoltageEvent); base.Suspend(); }
public override void Suspend() { BleMvxApplication._reader.rfid.StopOperation(); ClassBattery.SetBatteryMode(ClassBattery.BATTERYMODE.IDLE); BleMvxApplication._reader.barcode.Stop(); // Cancel RFID event handler BleMvxApplication._reader.rfid.OnAsyncCallback -= new EventHandler <CSLibrary.Events.OnAsyncCallbackEventArgs>(TagInventoryEvent); // Cancel Barcode event handler BleMvxApplication._reader.barcode.OnCapturedNotify -= new EventHandler <CSLibrary.Barcode.BarcodeEventArgs>(Linkage_CaptureCompleted); // Key Button event handler BleMvxApplication._reader.notification.OnKeyEvent -= new EventHandler <CSLibrary.Notification.HotKeyEventArgs>(HotKeys_OnKeyEvent); BleMvxApplication._reader.notification.OnVoltageEvent -= new EventHandler <CSLibrary.Notification.VoltageEventArgs>(VoltageEvent); base.Suspend(); }
void StartInventory() { if (_startInventory == false) { return; } StartTagCount(); { _startInventory = false; _startInventoryButtonText = "Stop Inventory"; } InventoryStartTime = DateTime.Now; BleMvxApplication._reader.rfid.StartOperation(CSLibrary.Constants.Operation.TAG_EXERANGING); ClassBattery.SetBatteryMode(ClassBattery.BATTERYMODE.INVENTORY); _cancelVoltageValue = true; RaisePropertyChanged(() => startInventoryButtonText); }
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 StartInventory() { if (_startInventory == false) { return; } //TagInfoList.Clear(); StartTagCount(); //if (BleMvxApplication._config.RFID_OperationMode == CSLibrary.Constants.RadioOperationMode.CONTINUOUS) { _startInventory = false; _startInventoryButtonText = "Stop Inventory"; } #if speeddown BleMvxApplication._reader.rfid.Options.TagRanging.flags = CSLibrary.Constants.SelectFlags.ZERO; // Setting 1 BleMvxApplication._reader.rfid.SetInventoryTimeDelay((uint)BleMvxApplication._config.RFID_InventoryDelayTime); BleMvxApplication._reader.rfid.SetInventoryDuration((uint)BleMvxApplication._config.RFID_DWellTime); BleMvxApplication._reader.rfid.SetPowerLevel((uint)BleMvxApplication._config.RFID_Power); // Setting 3 BleMvxApplication._reader.rfid.SetDynamicQParms(BleMvxApplication._config.RFID_DynamicQParms); // Setting 4 BleMvxApplication._reader.rfid.SetFixedQParms(BleMvxApplication._config.RFID_FixedQParms); // Setting 2 BleMvxApplication._reader.rfid.SetOperationMode(BleMvxApplication._config.RFID_OperationMode); BleMvxApplication._reader.rfid.SetTagGroup(BleMvxApplication._config.RFID_TagGroup); BleMvxApplication._reader.rfid.SetCurrentSingulationAlgorithm(BleMvxApplication._config.RFID_Algorithm); BleMvxApplication._reader.rfid.SetCurrentLinkProfile(BleMvxApplication._config.RFID_Profile); // Select Criteria filter if (BleMvxApplication._config.RFID_PREFILTER_Enable) { BleMvxApplication._reader.rfid.Options.TagSelected.flags = CSLibrary.Constants.SelectMaskFlags.ENABLE_TOGGLE; BleMvxApplication._reader.rfid.Options.TagSelected.bank = CSLibrary.Constants.MemoryBank.EPC; BleMvxApplication._reader.rfid.Options.TagSelected.epcMask = new CSLibrary.Structures.S_MASK(BleMvxApplication._config.RFID_PREFILTER_MASK_EPC); BleMvxApplication._reader.rfid.Options.TagSelected.epcMaskOffset = 0; BleMvxApplication._reader.rfid.Options.TagSelected.epcMaskLength = (uint)(BleMvxApplication._config.RFID_PREFILTER_MASK_EPC.Length) * 4; BleMvxApplication._reader.rfid.StartOperation(CSLibrary.Constants.Operation.TAG_PREFILTER); BleMvxApplication._reader.rfid.Options.TagRanging.flags |= CSLibrary.Constants.SelectFlags.SELECT; } // Post Match Criteria filter if (BleMvxApplication._config.RFID_POSTFILTER_MASK_Enable) { BleMvxApplication._reader.rfid.Options.TagSelected.epcMask = new CSLibrary.Structures.S_MASK(BleMvxApplication._config.RFID_POSTFILTER_MASK_EPC); CSLibrary.Structures.SingulationCriterion[] sel = new CSLibrary.Structures.SingulationCriterion[1]; sel[0] = new CSLibrary.Structures.SingulationCriterion(); sel[0].match = BleMvxApplication._config.RFID_POSTFILTER_MASK_MatchNot ? 0U : 1U; sel[0].mask = new CSLibrary.Structures.SingulationMask(BleMvxApplication._config.RFID_POSTFILTER_MASK_Offset, (uint)(BleMvxApplication._config.RFID_POSTFILTER_MASK_EPC.Length * 4), BleMvxApplication._reader.rfid.Options.TagSelected.epcMask.ToBytes()); BleMvxApplication._reader.rfid.SetPostMatchCriteria(sel); BleMvxApplication._reader.rfid.Options.TagRanging.flags |= CSLibrary.Constants.SelectFlags.POSTMATCH; } // Multi bank inventory BleMvxApplication._reader.rfid.Options.TagRanging.multibanks = 0; if (BleMvxApplication._config.RFID_MBI_MultiBank1Enable) { BleMvxApplication._reader.rfid.Options.TagRanging.multibanks++; BleMvxApplication._reader.rfid.Options.TagRanging.bank1 = BleMvxApplication._config.RFID_MBI_MultiBank1; BleMvxApplication._reader.rfid.Options.TagRanging.offset1 = BleMvxApplication._config.RFID_MBI_MultiBank1Offset; BleMvxApplication._reader.rfid.Options.TagRanging.count1 = BleMvxApplication._config.RFID_MBI_MultiBank1Count; } if (BleMvxApplication._config.RFID_MBI_MultiBank2Enable) { BleMvxApplication._reader.rfid.Options.TagRanging.multibanks++; if (BleMvxApplication._reader.rfid.Options.TagRanging.multibanks == 1) { BleMvxApplication._reader.rfid.Options.TagRanging.bank1 = BleMvxApplication._config.RFID_MBI_MultiBank2; BleMvxApplication._reader.rfid.Options.TagRanging.offset1 = BleMvxApplication._config.RFID_MBI_MultiBank2Offset; BleMvxApplication._reader.rfid.Options.TagRanging.count1 = BleMvxApplication._config.RFID_MBI_MultiBank2Count; } else { BleMvxApplication._reader.rfid.Options.TagRanging.bank2 = BleMvxApplication._config.RFID_MBI_MultiBank2; BleMvxApplication._reader.rfid.Options.TagRanging.offset2 = BleMvxApplication._config.RFID_MBI_MultiBank2Offset; BleMvxApplication._reader.rfid.Options.TagRanging.count2 = BleMvxApplication._config.RFID_MBI_MultiBank2Count; } } _ListViewRowHeight = 40 + (int)(BleMvxApplication._reader.rfid.Options.TagRanging.multibanks * 10); RaisePropertyChanged(() => ListViewRowHeight); // Start Inventory BleMvxApplication._reader.rfid.StartOperation(CSLibrary.Constants.Operation.TAG_RANGING); #endif _ListViewRowHeight = 40 + (int)(BleMvxApplication._reader.rfid.Options.TagRanging.multibanks * 10); RaisePropertyChanged(() => ListViewRowHeight); InventoryStartTime = DateTime.Now; BleMvxApplication._reader.rfid.StartOperation(CSLibrary.Constants.Operation.TAG_EXERANGING); ClassBattery.SetBatteryMode(ClassBattery.BATTERYMODE.INVENTORY); _cancelVoltageValue = true; RaisePropertyChanged(() => startInventoryButtonText); }