private void ExecuteClearCommand() { Task.Run(() => { System.Windows.MessageBoxResult msgResult = System.Windows.MessageBoxResult.No; System.Windows.Application.Current.Dispatcher.Invoke((Action)(() => { msgResult = System.Windows.MessageBox.Show("Are you sure you want to clear all data stored on the bridge?", "Confirm", System.Windows.MessageBoxButton.YesNo); })); if (msgResult == System.Windows.MessageBoxResult.Yes) { if (CottonDBMS.DataModels.Helpers.NetworkHelper.HasNetwork()) { if (BridgeSyncTask.SyncProcessRunning()) { Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = true, Message = "Waiting for background sync to complete." }); BridgeSyncTask.WaitForSyncToStop(); } else { //run the sync to send data collected this also ensure after it completes //it will not start again during the reset operation Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = true, Message = "Sending collected data." }); BridgeSyncTask.RunSync(System.Reflection.Assembly.GetExecutingAssembly().Location, false); BridgeSyncTask.WaitForSyncToStop(); } Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = true, Message = "Clearing data..." }); using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { dp.TruckRepository.ClearTruckData(); dp.LoadScanRepository.ClearBridgeScanData(); dp.TruckRepository.ClearClientFarmFieldData(); dp.SaveChanges(); TagDataProvider.ClearBuffer(); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.LAST_SYNC_TIME, DateTime.Now.AddYears(-1).ToString()); } Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = false, Message = "" }); Messenger.Default.Send <DataRefreshedMessage>(new DataRefreshedMessage()); } else { System.Windows.Application.Current.Dispatcher.Invoke((Action)(() => { msgResult = System.Windows.MessageBox.Show("Cannot clear data no network connection"); })); } } }); }
private void ExecuteCancelCommand() { TagDataProvider.SetGPOState(1, false); TagDataProvider.SetGPOState(2, false); TagDataProvider.SetGPOState(3, false); ExitToIdlePage(); }
private void handleWeightAcquired(WeightAcquiredMessage msg) { try { if (!_initialized || _canceled || _loadCreated) { return; } Logging.Logger.Log("INFO", "Entering handleWeightAcquired " + msg.Weight.ToString()); //lock (_dataLocker) //{ if (_canceled) { return; } if (!_weight1Acquired) { Weight1 = msg.Weight; _weight1Acquired = true; //if not semi signal weight acquired if (!IsSplitWeight) { WelcomeMessage = "WEIGHT RECORDED"; Logging.Logger.Log("INFO", "WEIGHT RECORDED " + msg.Weight.ToString()); waitingForExit = true; TagDataProvider.SetGPOState(2, true); TagDataProvider.SetGPOState(3, false); } else { WelcomeMessage = "WEIGHT 1 OF 2 RECORDED"; Logging.Logger.Log("INFO", "WEIGHT 1 OF 2 RECORDED " + msg.Weight.ToString()); TagDataProvider.SetGPOState(2, true); TagDataProvider.SetGPOState(3, false); _waitingForMotion = true; } } else if (_isSplitWeigh && _weight1Acquired && !_waitingForMotion && !_weight2Acquired) { Weight2 = msg.Weight; _weight2Acquired = true; waitingForExit = true; //signal pull forward WelcomeMessage = "WEIGHT 2 OF 2 RECORDED "; Logging.Logger.Log("INFO", "WEIGHT 2 OF 2 RECORDED " + msg.Weight.ToString()); TagDataProvider.SetGPOState(3, false); TagDataProvider.SetGPOState(2, true); } //} } catch (Exception exc) { Logging.Logger.Log(exc); Logging.Logger.WriteBuffer(); } }
/* private void Timer_Elapsed(object sender, ElapsedEventArgs e) * { * if (!executingTimer) //prevent long execution of handler from overlapping later callbacks * { * executingTimer = true; * using (var dp = SimpleIoc.Default.GetInstance<IUnitOfWorkFactory>().CreateUnitOfWork()) * { * lock (_trucks) * { * _trucks = dp.TruckRepository.GetAll().ToList(); * } * } * executingTimer = false; * } * }*/ public void Initialize() { using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { GinName = dp.SettingsRepository.GetSettingWithDefault(BridgeSettingKeys.GIN_NAME, ""); WelcomeMessage = "WELCOME, TO " + GinName; TagDataProvider.ClearBuffer(); } }
private void handleInMotionMessage(InMotionMessage msg) { try { TagDataProvider.SetGPOState(3, true); } catch (Exception exc) { Logging.Logger.Log(exc); Logging.Logger.WriteBuffer(); } }
private void handleWeightAcquired(WeightAcquiredMessage msg) { try { TagDataProvider.SetGPOState(3, false); } catch (Exception exc) { Logging.Logger.Log(exc); Logging.Logger.WriteBuffer(); } }
private void handleTagsReported(List <TagItem> tagsReported) { try { TagItem truckTag = null; TruckEntity selectedTruck = null; lock (_trucks) { /*foreach (var tag in tagsReported) * { * Logging.Logger.Log("INFO", "EPC: " + tag.Epc + " SN: " + tag.SerialNumber + " ANTENNA PORT: " + tag.AntennaePort.ToString() + " FIRST SEEN LOCAL TIME: " + tag.Firstseen.ToLocalTime().ToString() + " PEAK RSSI: " + tag.PeakRSSI.ToString() + " PHASE ANGLE: " + tag.PhaseAngle.ToString()); * }*/ var truckTagIds = _trucks.Select(t => t.RFIDTagId).ToArray(); truckTag = tagsReported.FirstOrDefault(t => truckTagIds.Contains(t.SerialNumber) || truckTagIds.Contains(t.Epc)); if (truckTag != null) { using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { selectedTruck = dp.TruckRepository.FindSingle(t => t.RFIDTagId == truckTag.SerialNumber || t.RFIDTagId == truckTag.Epc); var lastLoad = dp.LoadScanRepository.LastLoad(); if (lastLoad != null && lastLoad.TruckID == selectedTruck.Name && lastLoad.Created.AddMinutes(15) > DateTime.UtcNow) { selectedTruck = null; Logging.Logger.Log("INFO", "Truck Tag ignored: " + truckTag.SerialNumber); TagDataProvider.ClearBuffer(); } } } if (selectedTruck != null) { Logging.Logger.Log("INFO", "Truck Tag for truck: " + selectedTruck.Name + " scanned. Starting weigh in."); //check to see if this truck var vm = new WeighInPageViewModel(NavService); //TagDataProvider.ClearBuffer(); NavService.ShowPage(PageType.WEIGHT_IN_PAGE, false, (BasePageViewModel)vm); vm.Initialize(selectedTruck); } else { //TagDataProvider.ClearBuffer(); } } } catch (Exception exc) { Logging.Logger.Log(exc); Logging.Logger.WriteBuffer(); } }
private void handleInMotion(InMotionMessage msg) { try { if (!_initialized || _canceled || _loadCreated) { return; } if (timer != null) { timer.Enabled = false; } Logging.Logger.Log("INFO", "Entering handleInMotion"); //lock (_dataLocker) //{ if (_canceled) { return; } TagDataProvider.SetGPOState(2, false); if (zeroWeightCount < 20) { TagDataProvider.SetGPOState(3, true); } //TagDataProvider.SetGPOState(3, true); if (!_weight1Acquired) { Weight1 = msg.Weight; } else if (_weight1Acquired && _waitingForMotion) { _waitingForMotion = false; } else if (!_weight2Acquired && IsSplitWeight) { Weight2 = msg.Weight; } //} } catch (Exception exc) { Logging.Logger.Log(exc); Logging.Logger.WriteBuffer(); } }
public override void Cleanup() { Messenger.Default.Unregister <ScaleWeightReportMessage>(this); Messenger.Default.Unregister <WeightAcquiredMessage>(this); Messenger.Default.Unregister <InMotionMessage>(this); Messenger.Default.Unregister <BarcodeScannedMessage>(this); Messenger.Default.Unregister <List <TagItem> >(this, handleTagsReported); TagDataProvider.SetGPOState(1, false); TagDataProvider.SetGPOState(2, false); TagDataProvider.SetGPOState(3, false); base.Cleanup(); }
private void ExecuteLookupLoad() { try { if (_loadCreated) { return; } _canceled = true; timer.Stop(); autoSaveTimer.Stop(); Logging.Logger.Log("INFO", "Entering ExecuteLookupLoad"); //lock (_dataLocker) //{ bool newLoad = false; if (string.IsNullOrWhiteSpace(GinTicketLoadNumber)) { HasLookupError = true; return; } else { HasLookupError = false; } Logging.Logger.Log("INFO", "CREATE LOAD FROM LOAD LOOKUP"); if (!_loadCreated) { CreateLoad(ref newLoad); } TagDataProvider.SetGPOState(1, false); TagDataProvider.SetGPOState(2, false); TagDataProvider.SetGPOState(3, false); var vm = new LoadViewModel(NavService); NavService.ShowPage(PageType.LOAD_PAGE, false, (BasePageViewModel)vm); vm.Initialize(GinTicketLoadNumber, newLoad); //} } catch (Exception exc) { Logging.Logger.Log(exc); Logging.Logger.WriteBuffer(); } }
private void handleTagsReported(List <TagItem> tagsReported) { using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { foreach (var t in tagsReported) { var existingScan = dp.FeederScanRepository.FindSingle(s => s.Name == t.SerialNumber); if (existingScan == null) { Initialize(t.SerialNumber, t.Epc, false); } } TagDataProvider.ClearBuffer(); } }
private void handleTagsReported(List <TagItem> tagsReported) { try { TagsInBuffer = TagDataProvider.TagsInBuffer(); LastSerialNumber = tagsReported.Last().SerialNumber; foreach (var tag in tagsReported) { Logging.Logger.Log("INFO", "EPC: " + tag.Epc + " SN: " + tag.SerialNumber + " ANTENNA PORT: " + tag.AntennaePort.ToString() + " FIRST SEEN LOCAL TIME: " + tag.Firstseen.ToLocalTime().ToString() + " PEAK RSSI: " + tag.PeakRSSI.ToString() + " PHASE ANGLE: " + tag.PhaseAngle.ToString()); } } catch (Exception exc) { Logging.Logger.Log(exc); Logging.Logger.WriteBuffer(); } }
private void handleTagsReported(List <TagItem> tagsReported) { using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { foreach (var t in tagsReported) { var existingScan = dp.FeederScanRepository.FindSingle(s => s.Name == t.SerialNumber); if (existingScan == null) { var vm = new ModuleScanViewModel(NavService); NavService.ShowPage(PageType.FEEDER_MODULE_PAGE, false, vm); System.Windows.Application.Current.Dispatcher.Invoke((Action)(() => { vm.Initialize(t.SerialNumber, t.Epc, true); })); } } TagDataProvider.ClearBuffer(); } }
public void Initialize(TruckEntity selectedTruck) { Logging.Logger.Log("INFO", "Entering Weighin Initialize"); //lock (_dataLocker) //{ _activeTruck = selectedTruck; using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { isUnattendedMode = bool.Parse(dp.SettingsRepository.GetSettingWithDefault(BridgeSettingKeys.UNATTENDED_MODE, "FALSE")); GinName = dp.SettingsRepository.GetSettingWithDefault(BridgeSettingKeys.GIN_NAME, ""); _allTrucks = dp.TruckRepository.GetAll().ToList(); WelcomeMessage = selectedTruck.Name + " PULLING ONTO SCALE"; IsSplitWeight = _activeTruck.IsSemi; IsSplitCanceled = !_activeTruck.IsSemi; _yellowLightOn = false; zeroWeightCount = 0; if (TagDataProvider.TagsInBuffer() >= 1) { TagDataProvider.SetGPOState(1, true); _yellowLightOn = true; TagDataProvider.SetGPOState(2, false); TagDataProvider.SetGPOState(3, false); } timer = new System.Timers.Timer(); timer.Interval = int.Parse(dp.SettingsRepository.GetSettingWithDefault(BridgeSettingKeys.WEIGH_IN_TIMEOUT, "30")) * 1000; timer.AutoReset = false; timer.Elapsed += Timer_Elapsed; timer.Start(); autoSaveTimer = new System.Timers.Timer(); autoSaveTimer.Interval = int.Parse(dp.SettingsRepository.GetSettingWithDefault(BridgeSettingKeys.WEIGHT_AUTO_SAVE_TIMEOUT, "10")) * 60 * 1000; autoSaveTimer.AutoReset = false; autoSaveTimer.Elapsed += AutoSaveTimer_Elapsed;; autoSaveTimer.Start(); } _initialized = true; //} }
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { try { Messenger.Default.Unregister <FirstSetupWizardComplete>(this); CottonDBMS.TruckApp.Tasks.TruckPullFromCloudTask.Cancel(); AggregateDataProvider.Cleanup(); TagDataProvider.Disconnect(); GPSDataProvider.Disconnect(); QuadratureEncoderDataProvider.Dispose(); Logging.Logger.CleanUp(); base.OnClosed(e); } catch (Exception exc) { System.Diagnostics.Trace.Write(exc.Message); } //if (ConfigurationManager.AppSettings["AllowStartupAndShutdown"].ToLower() == "true") //System.Diagnostics.Process.Start("Shutdown", "-s -t 10"); }
public override void Cleanup() { Messenger.Default.Unregister <SettingsSavedMessage>(this); Messenger.Default.Unregister <BusyMessage>(this); Messenger.Default.Unregister <ScaleWeightReportMessage>(this); Messenger.Default.Unregister <KeyDownMessage>(this); Messenger.Default.Unregister <List <TagItem> >(this); Messenger.Default.Unregister <BarcodeScannedMessage>(this); timer.Enabled = false; TagDataProvider.Disconnect(); if (_scaleReader != null) { _scaleReader.Dispose(); } if (_barCodeReader != null) { _barCodeReader.Dispose(); } base.Cleanup(); }
private void handleTagsReported(List <TagItem> tags) { try { if (!_initialized || _canceled || _loadCreated) { return; } if (!_yellowLightOn) { if (tags.Any(t => !_allTrucks.Any(truck => truck.RFIDTagId == t.SerialNumber || truck.RFIDTagId == t.Epc))) { TagDataProvider.SetGPOState(1, true); _yellowLightOn = true; } } } catch (Exception exc) { Logging.Logger.Log(exc); } }
private void Window_Loaded(object sender, RoutedEventArgs e) { try { CottonDBMS.Logging.Logger.Log("INFO", "FEEDER APPLICATION LAUNCH"); Application.Current.ShutdownMode = ShutdownMode.OnMainWindowClose; Messenger.Default.Register <ContentPageChangedMessage>(this, handleContentPageChanged); TagDataProvider.SetSettingsPath(FolderConstants.FEEDER_BRIDGE_APP_DATA_FOLDER); INavigationService navService = SimpleIoc.Default.GetInstance <INavigationService>(); shellVM = new ShellViewModel(navService); shellVM.AllowBarcoderConnect = false; shellVM.AllowRFIDReaderConnect = true; shellVM.AllowScaleConnect = false; shellVM.AllowWeighInTimeOut = false; this.DataContext = shellVM; shellVM.Initialize(); } catch (Exception exc) { Logging.Logger.Log(exc); Logging.Logger.CleanUp(); } }
private void AutoSaveTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { try { if (_canceled || _loadCreated) { return; } autoSaveTimer.Enabled = false; autoSaveTimer.Stop(); Logging.Logger.Log("INFO", "Entering AutoSave"); //lock (_dataLocker) //{ bool newLoad = true; if (!_loadCreated) { setGinTicketToAuto(); Logging.Logger.Log("INFO", "CREATE LOAD FROM AUTO SAVE"); CreateLoad(ref newLoad); } TagDataProvider.SetGPOState(1, false); TagDataProvider.SetGPOState(2, false); TagDataProvider.SetGPOState(3, false); ExitToIdlePage(); //} } catch (Exception exc) { Logging.Logger.Log(exc); Logging.Logger.WriteBuffer(); } }
private void Window_KeyDown(object sender, KeyEventArgs e) { ScaleSimHelper.RunSim(); bool CtrlDown = System.Windows.Input.Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl); bool TDown = Keyboard.IsKeyDown(Key.T); bool MDown = Keyboard.IsKeyDown(Key.M); if (CtrlDown && TDown) { using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { var truck = dp.TruckRepository.GetAll().ToList().First(); var message = new TagItem { AntennaePort = 1, Epc = truck.RFIDTagId, Firstseen = DateTime.UtcNow, Lastseen = DateTime.UtcNow }; var listtags = new List <TagItem>(); listtags.Add(message); Messenger.Default.Send <List <TagItem> >(listtags); } } else if (CtrlDown && MDown) { Task.Run(() => { TagDataProvider.SpoofRandomTag(); System.Threading.Thread.Sleep(200); TagDataProvider.SpoofRandomTag(); System.Threading.Thread.Sleep(200); TagDataProvider.SpoofRandomTag(); System.Threading.Thread.Sleep(200); TagDataProvider.SpoofRandomTag(); System.Threading.Thread.Sleep(200); }); } }
public void Initialize() { using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { TagDataProvider.SetGPOState(1, false); TagDataProvider.SetGPOState(2, false); TagDataProvider.SetGPOState(3, false); GinName = dp.SettingsRepository.GetSettingWithDefault(BridgeSettingKeys.GIN_NAME, ""); WelcomeMessage = "WELCOME, TO " + GinName; TagDataProvider.ClearBuffer(); Logging.Logger.WriteBuffer(); /*Task.Run(() => * { * TagDataProvider.DisconnectIfUptimeLimitReached(1); * });*/ lock (_trucks) { _trucks = dp.TruckRepository.GetAll().ToList(); } } }
private async void ExecuteSave() { Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = true, Message = "Validating settings..." }); if (!await ValidateForm()) { Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = false, Message = "" }); return; } Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = true, Message = "Saving..." }); await Task.Run(() => { try { Settings settings = TagDataProvider.GetDefaultSettings(); if (settings != null) { settings.Antennas.TxPowerMax = false; settings.Antennas.RxSensitivityMax = false; settings.HoldReportsOnDisconnect = false; settings.Report.Mode = ReportMode.Individual; settings.SearchMode = SearchMode.DualTarget; settings.ReaderMode = ReaderMode.AutoSetStaticDRM; settings.Report.IncludeFirstSeenTime = true; settings.Report.IncludeLastSeenTime = true; settings.Report.IncludeSeenCount = true; settings.Keepalives.Enabled = true; settings.Keepalives.EnableLinkMonitorMode = true; settings.Keepalives.LinkDownThreshold = 5; settings.Keepalives.PeriodInMs = 3000; settings.Antennas.GetAntenna(1).RxSensitivityInDbm = (double)_antenna1ReceivePower; settings.Antennas.GetAntenna(1).TxPowerInDbm = (double)_antenna1TransmitPower; settings.Antennas.GetAntenna(2).RxSensitivityInDbm = (double)_antenna2ReceivePower; settings.Antennas.GetAntenna(2).TxPowerInDbm = (double)_antenna2TransmitPower; settings.Antennas.GetAntenna(3).RxSensitivityInDbm = (double)_antenna3ReceivePower; settings.Antennas.GetAntenna(3).TxPowerInDbm = (double)_antenna3TransmitPower; settings.Antennas.GetAntenna(4).RxSensitivityInDbm = (double)_antenna4ReceivePower; settings.Antennas.GetAntenna(4).TxPowerInDbm = (double)_antenna4TransmitPower; TagDataProvider.ApplySettings(settings); Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = true, Message = "Settings saved." }); System.Threading.Thread.Sleep(3000); } else { Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = true, Message = "Unable to save reader settings. Reader disconnected?" }); System.Threading.Thread.Sleep(3000); } using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { if (PortName == "NONE") { PortName = ""; } if (BarcodePortName == "NONE") { BarcodePortName = ""; } dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.SCALE_COM_PORT, PortName); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.BARCODE_COM_PORT, BarcodePortName); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.BRIDGE_ID, BridgeID); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.GIN_NAME, ScreenTitle); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.DOCUMENTDB_ENDPOINT, DocumentDbEndpoint); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.DOCUMENT_DB_KEY, DocumentDbConnection); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.LATITUDE, Latitude); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.LONGITUDE, Longitude); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.TARGET_STATUS, TargetStatus); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.DATA_SYNC_INTERVAL, DataSyncInterval.ToString()); dp.SaveChanges(); } /*if (portChanged) * { * System.Windows.Application.Current.Dispatcher.Invoke((Action)(() => * { * System.Windows.MessageBox.Show("Please close and restart the application for new scale setting to take effect"); * })); * }*/ } catch (Exception exc) { System.Windows.Application.Current.Dispatcher.Invoke((Action)(() => { System.Windows.MessageBox.Show("An error occurred saving settings. " + exc.Message); })); Logging.Logger.Log(exc); } finally { Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = false, Message = "" }); Messenger.Default.Send <SettingsSavedMessage>(new SettingsSavedMessage { GinName = ScreenTitle }); } if (IsFirstLaunch) { var vm = new IdlePageViewModel(NavService); NavService.ShowPage((int)PageType.IDLE_PAGE, false, vm); vm.Initialize(); } }); }
private void initialize() { if (vm == null) { vm = SimpleIoc.Default.GetInstance <NavViewModel>(); DataContext = vm; unlockSettingsControl.DataContext = vm; passwordModalControl.DataContext = vm; busyModal.DataContext = vm; } this.Visibility = Visibility.Visible; //check for gps offsett setting using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { var repo = dp.SettingsRepository; var offsetSetting = repo.FindSingle(s => s.Key == TruckClientSettingKeys.GPS_OFFSET_FEET); if (offsetSetting == null) { repo.UpsertSetting(TruckClientSettingKeys.GPS_OFFSET_FEET, "45"); GPSDataProvider.SetGpsOffsetFeet(45.0); } else { GPSDataProvider.SetGpsOffsetFeet(double.Parse(offsetSetting.Value)); } } if (!vm.HasCloudSettings) { MessageBox.Show("Data sync settings have not been configured. Please configure then restart the application."); navTabControl.SelectedIndex = 2; } else { Task.Run(() => { try { try { if (!TagDataProvider.IsConnected) { Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "Looking for RFID reader..." }); //System.Threading.Thread.Sleep(35000); int tryNumber = 1; do { //todo fix error hangs when no reader on rugged pc TagDataProvider.Connect(); tryNumber++; System.Threading.Thread.Sleep(3000); } while (tryNumber < 10 && !TagDataProvider.IsConnected); //Messenger.Default.Send<BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "Connecting to RFID reader..." }); //TagDataProvider.Connect(); //System.Threading.Thread.Sleep(1400); } if (!TagDataProvider.IsConnected) { Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "Not connected to RFID Reader." }); System.Threading.Thread.Sleep(1200); } else { TagDataProvider.Stop(); Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "RFID Reader found." }); TagDataProvider.SyncReaderTime(); System.Threading.Thread.Sleep(1200); } } catch (Exception readerExc) { Logging.Logger.Log(readerExc); } Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "Initializing shaft sensor..." }); QuadratureEncoderDataProvider.StartEvents(); System.Threading.Thread.Sleep(1000); if (!QuadratureEncoderDataProvider.IsStarted) { Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "Shaft Sensor not found." }); System.Threading.Thread.Sleep(1200); } if (!GPSDataProvider.IsConnected) { Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "Connecting to GPS receiver..." }); Task.Run(() => { GPSDataProvider.Connect(); }); int waitCount = 0; while (waitCount < 60 && !GPSDataProvider.IsConnected) { System.Threading.Thread.Sleep(500); waitCount++; } if (GPSDataProvider.IsConnected) { Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "GPS connected." }); System.Threading.Thread.Sleep(1000); } else { Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "GPS not connected." }); System.Threading.Thread.Sleep(2000); } } Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = false, Message = "" }); TagDataProvider.Initialize(); AggregateDataProvider.Initialize(); CottonDBMS.TruckApp.Tasks.TruckPullFromCloudTask.Init(); readerSettingsControl.Initialize(); } catch (Exception exc) { CottonDBMS.Logging.Logger.Log(exc); } }); } navTabControl.Height = canvasLayout.ActualHeight; navTabControl.Width = canvasLayout.ActualWidth; modalBG.Height = canvasLayout.ActualHeight; modalBG.Width = canvasLayout.ActualWidth; }
private void ExecuteSave() { Task.Run(() => { Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "Saving..." }); try { Settings settings = TagDataProvider.GetDefaultSettings(); if (settings != null) { settings.Antennas.TxPowerMax = false; settings.Antennas.RxSensitivityMax = false; settings.HoldReportsOnDisconnect = false; settings.Report.Mode = ReportMode.Individual; //settings.AutoStart.Mode = AutoStartMode.None; settings.SearchMode = SearchMode.DualTarget; settings.ReaderMode = ReaderMode.AutoSetStaticDRM; settings.Report.IncludeFirstSeenTime = true; settings.Report.IncludeLastSeenTime = true; settings.Report.IncludeSeenCount = true; settings.Keepalives.Enabled = true; settings.Keepalives.EnableLinkMonitorMode = true; settings.Keepalives.LinkDownThreshold = 5; settings.Keepalives.PeriodInMs = 3000; settings.Antennas.GetAntenna(1).RxSensitivityInDbm = (double)_antenna1ReceivePower; settings.Antennas.GetAntenna(1).TxPowerInDbm = (double)_antenna1TransmitPower; settings.Antennas.GetAntenna(2).RxSensitivityInDbm = (double)_antenna2ReceivePower; settings.Antennas.GetAntenna(2).TxPowerInDbm = (double)_antenna2TransmitPower; settings.Antennas.GetAntenna(3).RxSensitivityInDbm = (double)_antenna3ReceivePower; settings.Antennas.GetAntenna(3).TxPowerInDbm = (double)_antenna3TransmitPower; settings.Antennas.GetAntenna(4).RxSensitivityInDbm = (double)_antenna4ReceivePower; settings.Antennas.GetAntenna(4).TxPowerInDbm = (double)_antenna4TransmitPower; TagDataProvider.ApplySettings(settings); Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "Settings saved." }); System.Threading.Thread.Sleep(3000); } else { Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = true, Message = "Unable to save reader settings. Reader disconnected?" }); System.Threading.Thread.Sleep(3000); } bool portChanged = false; using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { var repo = dp.SettingsRepository; var setting = repo.FindSingle(x => x.Key == TruckClientSettingKeys.RFID_READ_DELAY); if (setting != null) { setting.Value = RFIDReadDelay.ToString(); AggregateDataProvider.UpdateReadDelay(RFIDReadDelay); } var portSetting = repo.FindSingle(x => x.Key == TruckClientSettingKeys.GPS_COM_PORT); if (portSetting != null) { if (PortName != "-- Select One --") { if (portSetting.Value != PortName) { portChanged = true; } portSetting.Value = PortName; } } else //Add Port setting { portSetting = new Setting(); portSetting.Value = PortName; portSetting.Key = TruckClientSettingKeys.GPS_COM_PORT; dp.SettingsRepository.Add(portSetting); portChanged = true; } dp.SaveChanges(); } if (portChanged) { System.Windows.Application.Current.Dispatcher.Invoke((Action)(() => { System.Windows.MessageBox.Show("Please close and restart the application for new GPS settings to take effect"); })); } } catch (Exception exc) { System.Windows.Application.Current.Dispatcher.Invoke((Action)(() => { System.Windows.MessageBox.Show("An error occurred saving settings to reader. " + exc.Message); })); Logging.Logger.Log(exc); } finally { Messenger.Default.Send <BusyMessage>(new Messages.BusyMessage { IsBusy = false, Message = "" }); } }); }
private void ExecuteClearRFIDCommand() { RFIDEvents.Clear(); TagDataProvider.ClearBuffer(); }
private void Timer_Elapsed(object sender, ElapsedEventArgs e) { if (!executingTimer) //prevent long execution of handler from overlapping later callbacks { executingTimer = true; if (lastActivity.AddMinutes(2) < DateTime.Now) { Messenger.Default.Send <InactiveMessage>(new InactiveMessage()); } CurrentTime = DateTime.Now.ToString("MM/dd/yyyy hh:mm tt"); if (String.IsNullOrEmpty(Version)) { Version = "VERSION " + Assembly.GetExecutingAssembly().GetName().Version.ToString(); } //try to connect to reader if (AllowRFIDReaderConnect) { connectToReader(); } using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { if (AllowBarcoderConnect) { connectBarCodeReader(dp); } if (AllowScaleConnect) { connectScaleReader(dp); } } if (EnableProcessSync) { if (!BridgeSyncProcessHelper.Initialized && !NavService.IsOpen(PageType.SETTINGS_PAGE)) //make sure sync timer is running but not if in first setup { BridgeSyncProcessHelper.Init(); } if (BridgeSyncProcessHelper.SyncProcessRunning()) { SyncStatus = "SYNCING"; } else { SyncStatus = "WAITING"; } } if (AllowRFIDReaderConnect) { TagsInBuffer = TagDataProvider.TagsInBuffer(); } executingTimer = false; } }
private void connectToReader() { try { if (!TagDataProvider.IsConnected) { Logging.Logger.Log("INFO", "READER NOT CONNECTED"); if (ReaderStatus == "CONNECTED") { Logging.Logger.Log("INFO", "READER CHANGE FROM CONNECTED TO DISCONNECTED"); } using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { var setting = dp.SettingsRepository.GetSettingWithDefault(BridgeSettingKeys.READER_HOST_NAME, "169.254.1.1"); TagDataProvider.SetHostName(setting); TagDataProvider.Connect(); //System.Threading.Thread.Sleep(1000); } } if (!TagDataProvider.IsConnected) { ReaderStatus = "DISCONNECTED"; } else { if (ReaderStatus == "DISCONNECTED") { Logging.Logger.Log("INFO", "READER RE-CONNECTED"); } ReaderStatus = "CONNECTED"; if (!readerTimeSet) { readerTimeSet = true; TagDataProvider.Stop(); TagDataProvider.SyncReaderTime(); //TagDataProvider.Disconnect(); } } if (TagDataProvider.IsConnected && !TagDataProvider.IsSingulating()) { System.Threading.Thread.Sleep(500); TagDataProvider.Start(0); if (!TagDataProvider.IsSingulating()) { TagDataProvider.Stop(); TagDataProvider.Disconnect(); } } } catch (Exception readerExc) { ReaderStatus = "ERROR"; Logging.Logger.Log(readerExc); } }
public void Initialize() { Settings settings = TagDataProvider.GetSettings(); if (settings != null) { Antenna1ReceivePower = Convert.ToInt32(settings.Antennas.GetAntenna(1).RxSensitivityInDbm); Antenna1TransmitPower = Convert.ToInt32(settings.Antennas.GetAntenna(1).TxPowerInDbm); Antenna2ReceivePower = Convert.ToInt32(settings.Antennas.GetAntenna(2).RxSensitivityInDbm); Antenna2TransmitPower = Convert.ToInt32(settings.Antennas.GetAntenna(2).TxPowerInDbm); Antenna3ReceivePower = Convert.ToInt32(settings.Antennas.GetAntenna(3).RxSensitivityInDbm); Antenna3TransmitPower = Convert.ToInt32(settings.Antennas.GetAntenna(3).TxPowerInDbm); Antenna4ReceivePower = Convert.ToInt32(settings.Antennas.GetAntenna(4).RxSensitivityInDbm); Antenna4TransmitPower = Convert.ToInt32(settings.Antennas.GetAntenna(4).TxPowerInDbm); } if (Antenna1ReceivePower == 0) { Antenna1ReceivePower = -80; } if (Antenna2ReceivePower == 0) { Antenna2ReceivePower = -80; } if (Antenna3ReceivePower == 0) { Antenna3ReceivePower = -80; } if (Antenna4ReceivePower == 0) { Antenna4ReceivePower = -80; } if (Antenna1TransmitPower == 0) { Antenna1TransmitPower = 30; } if (Antenna2TransmitPower == 0) { Antenna2TransmitPower = 30; } if (Antenna3TransmitPower == 0) { Antenna3TransmitPower = 30; } if (Antenna4TransmitPower == 0) { Antenna4TransmitPower = 30; } foreach (var p in System.IO.Ports.SerialPort.GetPortNames().OrderBy(s => s)) { AvailablePorts.Add(p); } using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { var repo = dp.SettingsRepository; var setting = repo.FindSingle(x => x.Key == TruckClientSettingKeys.RFID_READ_DELAY); if (setting != null && !string.IsNullOrWhiteSpace(setting.Value)) { RFIDReadDelay = int.Parse(setting.Value); } var portSetting = repo.FindSingle(x => x.Key == TruckClientSettingKeys.GPS_COM_PORT); if (portSetting != null && !string.IsNullOrWhiteSpace(portSetting.Value)) { PortName = portSetting.Value; } else { if (AvailablePorts.Count > 0) { PortName = AvailablePorts.First(); } else { PortName = ""; } } } }
public void Initialize() { if (IsFirstLaunch) { IsScreenLocked = false; } if (IsScreenLocked) { return; } Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = true, Message = "Loading..." }); Task.Run(() => { try { System.Windows.Application.Current.Dispatcher.Invoke((Action)(() => { loadForm(); })); Settings settings = TagDataProvider.GetSettings(); if (settings != null) { Antenna1ReceivePower = Convert.ToInt32(settings.Antennas.GetAntenna(1).RxSensitivityInDbm); Antenna1TransmitPower = Convert.ToInt32(settings.Antennas.GetAntenna(1).TxPowerInDbm); Antenna2ReceivePower = Convert.ToInt32(settings.Antennas.GetAntenna(2).RxSensitivityInDbm); Antenna2TransmitPower = Convert.ToInt32(settings.Antennas.GetAntenna(2).TxPowerInDbm); Antenna3ReceivePower = Convert.ToInt32(settings.Antennas.GetAntenna(3).RxSensitivityInDbm); Antenna3TransmitPower = Convert.ToInt32(settings.Antennas.GetAntenna(3).TxPowerInDbm); Antenna4ReceivePower = Convert.ToInt32(settings.Antennas.GetAntenna(4).RxSensitivityInDbm); Antenna4TransmitPower = Convert.ToInt32(settings.Antennas.GetAntenna(4).TxPowerInDbm); } if (Antenna1ReceivePower == 0) { Antenna1ReceivePower = -80; } if (Antenna2ReceivePower == 0) { Antenna2ReceivePower = -80; } if (Antenna3ReceivePower == 0) { Antenna3ReceivePower = -80; } if (Antenna4ReceivePower == 0) { Antenna4ReceivePower = -80; } if (Antenna1TransmitPower == 0) { Antenna1TransmitPower = 30; } if (Antenna2TransmitPower == 0) { Antenna2TransmitPower = 30; } if (Antenna3TransmitPower == 0) { Antenna3TransmitPower = 30; } if (Antenna4TransmitPower == 0) { Antenna4TransmitPower = 30; } } catch (Exception exc) { Logging.Logger.Log(exc); } Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = false, Message = "" }); }); }
private async void ExecuteSave() { Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = true, Message = "Validating settings..." }); if (!await ValidateForm()) { Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = false, Message = "" }); return; } Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = true, Message = "Saving..." }); await Task.Run(() => { try { Settings settings = TagDataProvider.GetDefaultSettings(); if (settings != null) { settings.Antennas.TxPowerMax = false; settings.Antennas.RxSensitivityMax = false; settings.HoldReportsOnDisconnect = false; settings.Report.Mode = ReportMode.Individual; settings.SearchMode = SearchMode.DualTarget; settings.ReaderMode = ReaderMode.AutoSetStaticDRM; settings.Report.IncludeFirstSeenTime = true; settings.Report.IncludeLastSeenTime = true; settings.Report.IncludeSeenCount = true; settings.Keepalives.Enabled = true; settings.Report.IncludePeakRssi = true; settings.Report.IncludePhaseAngle = true; settings.Report.IncludeAntennaPortNumber = true; settings.Keepalives.EnableLinkMonitorMode = true; settings.Keepalives.LinkDownThreshold = 5; settings.Keepalives.PeriodInMs = 3000; settings.Antennas.GetAntenna(1).RxSensitivityInDbm = (double)_antenna1ReceivePower; settings.Antennas.GetAntenna(1).TxPowerInDbm = (double)_antenna1TransmitPower; settings.Antennas.GetAntenna(2).RxSensitivityInDbm = (double)_antenna2ReceivePower; settings.Antennas.GetAntenna(2).TxPowerInDbm = (double)_antenna2TransmitPower; settings.Antennas.GetAntenna(3).RxSensitivityInDbm = (double)_antenna3ReceivePower; settings.Antennas.GetAntenna(3).TxPowerInDbm = (double)_antenna3TransmitPower; settings.Antennas.GetAntenna(4).RxSensitivityInDbm = (double)_antenna4ReceivePower; settings.Antennas.GetAntenna(4).TxPowerInDbm = (double)_antenna4TransmitPower; TagDataProvider.ApplySettings(settings); Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = true, Message = "Settings saved." }); System.Threading.Thread.Sleep(3000); } else { Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = true, Message = "Unable to save reader settings. Reader disconnected?" }); System.Threading.Thread.Sleep(3000); } using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { if (PortName == "NONE") { PortName = ""; } if (BarcodePortName == "NONE") { BarcodePortName = ""; } dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.SCALE_COM_PORT, PortName); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.BARCODE_COM_PORT, BarcodePortName); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.BRIDGE_ID, BridgeID); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.GIN_NAME, ScreenTitle); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.DOCUMENTDB_ENDPOINT, DocumentDbEndpoint); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.DOCUMENT_DB_KEY, DocumentDbConnection); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.LATITUDE, Latitude); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.LONGITUDE, Longitude); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.TARGET_STATUS, TargetStatus); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.DATA_SYNC_INTERVAL, DataSyncInterval.ToString()); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.WEIGH_IN_TIMEOUT, WeighInTimeout.ToString()); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.STABLE_WEIGHT_SECONDS, StableWeightSeconds.ToString()); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.WEIGHT_AUTO_SAVE_TIMEOUT, WeightAutoSaveTimeout.ToString()); dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.UNATTENDED_MODE, UnattendedMode.ToString()); bool needsReaderDisconnect = false; if (_originalHost != ReaderHostname) { needsReaderDisconnect = true; dp.SettingsRepository.UpsertSetting(BridgeSettingKeys.READER_HOST_NAME, ReaderHostname); } dp.SaveChanges(); if (needsReaderDisconnect) { Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = true, Message = "Reconnecting to " + ReaderHostname }); System.Threading.Thread.Sleep(1000); TagDataProvider.Disconnect(); TagDataProvider.SetHostName(ReaderHostname); TagDataProvider.Connect(); Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = false, Message = "Reader connected to " + ReaderHostname }); //shell should start the reader back up in 15-30 seconds } } /*if (portChanged) * { * System.Windows.Application.Current.Dispatcher.Invoke((Action)(() => * { * System.Windows.MessageBox.Show("Please close and restart the application for new scale setting to take effect"); * })); * }*/ } catch (Exception exc) { System.Windows.Application.Current.Dispatcher.Invoke((Action)(() => { System.Windows.MessageBox.Show("An error occurred saving settings. " + exc.Message); })); Logging.Logger.Log(exc); } finally { Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = false, Message = "" }); Messenger.Default.Send <SettingsSavedMessage>(new SettingsSavedMessage { GinName = ScreenTitle, IsFirstLaunch = IsFirstLaunch }); } }); }