public static IEnumerable<IKeypadButtonState> ConvertButtons(byte[] data) { var relevantBytes = data.Skip(3).Take(4); var row = 1; var column = 'A'; foreach (var chunk in relevantBytes) { byte mask = 1; for (byte i = 0; i < 6; i++) { var id = "" + column + row; var pressed = (chunk & mask) > 0; var buttonState = new ReadOnlyKeypadButtonState(id, pressed); yield return buttonState; row++; mask *= 2; } row = 1; column++; } }
public static ReadOnlyKeypadButtonState CopyFrom(IKeypadButtonState source) { var result = new ReadOnlyKeypadButtonState { Id = source.Id, Pressed = source.Pressed }; return(result); }
public static ReadOnlyKeypadButtonState CopyFrom(IKeypadButtonState source) { var result = new ReadOnlyKeypadButtonState { Id = source.Id, Pressed = source.Pressed }; return result; }
public static IEnumerable <IKeypadButtonState> Changes(this IEnumerable <IKeypadButtonState> newState, IEnumerable <IKeypadButtonState> oldState) { var result = newState.Where(@new => { var old = oldState.FirstOrDefault(x => x.Id == @new.Id); if (old == null) { old = new ReadOnlyKeypadButtonState(@new.Id, null); } return(@new.Changed(old)); }).ToArray(); return(result); }
public static IEnumerable<IKeypadButtonState> Changes(this IEnumerable<IKeypadButtonState> newState, IEnumerable<IKeypadButtonState> oldState) { var result = newState.Where(@new => { var old = oldState.FirstOrDefault(x => x.Id == @new.Id); if (old == null) { old = new ReadOnlyKeypadButtonState(@new.Id, null); } return @new.Changed(old); }).ToArray(); return result; }
public static ReadOnlyKeypadButtonState FromXElement(XElement element) { var id = element.GetAttributeStringValue("Id"); var pressed = element.GetAttributeStringValue("Pressed"); var result = new ReadOnlyKeypadButtonState { Id = id }; if (pressed != null) { result.Pressed = Convert.ToBoolean(pressed); } return(result); }
public static ReadOnlyKeypadButtonState FromXElement(XElement element) { var id = element.GetAttributeStringValue("Id"); var pressed = element.GetAttributeStringValue("Pressed"); var result = new ReadOnlyKeypadButtonState { Id = id }; if (pressed != null) { result.Pressed = Convert.ToBoolean(pressed); } return result; }
public static IKeypadButtonState ToButton(this XElement element) { return(ReadOnlyKeypadButtonState.FromXElement(element)); }
public static IKeypadButtonState Copy(this IKeypadButtonState state) { return(ReadOnlyKeypadButtonState.CopyFrom(state)); }