/// <summary> /// Sets the indicator status at the TraySlots observable collection. /// </summary> /// <param name="n"></param> /// <param name="state"></param> private void SetIndicatorStatus(string response) { int n = (int)Char.GetNumericValue(response[3]); string state = response.Substring(5); TrayContainers.First(s => s.ID == n).IsIndicatorOn = (state == "ON"); }
/// <summary> /// Turns the LED indicator on for a given slot. /// </summary> /// <param name="n"></param> public async Task <bool> EnableLEDAsync(int n) { try { if (IsTrayOpen == false) { try { if ((Enumerable.Range(1, 8).Contains(n))) { await arduino.WriteDataAsync(n.ToString()); await Task.Delay(50); TrayContainer slot = TrayContainers.Single(s => s.ID == n); return(slot.IsIndicatorOn); } } catch (Exception) { throw; } } return(false); } catch (Exception) { throw; } }
private void UpdateAllTrayContainerPresenceData(string response) { string data = response.Substring(5, 8); List <TrayContainer> slots = TrayContainers.OrderBy(s => s.ID).ToList(); foreach (TrayContainer item in slots) { int i = item.ID; int hasItem = (int)char.GetNumericValue(data[i - 1]); TrayContainers.First(s => s.ID == i).HasItem = (hasItem == 0); } }
/// <summary> /// Sets the HasItem property of a TraySlot at TraySlots. /// </summary> /// <param name="response"></param> private void SetSwitchStatus(string response) { int n = (int)Char.GetNumericValue(response[7]); string state = response.Substring(9); //bool isOn = (state == "ON"); TrayContainers.First(s => s.ID == n).HasItem = (state == "ON"); if (state == "ON") { TrayContainers.First(s => s.ID == n).OnStates++; } else { TrayContainers.First(s => s.ID == n).OffStates++; } }