private void GotoCharacter(int characterPosition, SplitflapConfig splitflapConfig) { while (splitflapConfig.CurrentPosition != characterPosition) { Thread.Sleep(100); GoOne(splitflapConfig); } }
private void GoOne(SplitflapConfig splitflapConfig) { foreach(PortExpanderPlug portExpanderPlug in portExpanderplugList) { if((portExpanderPlug.Address == splitflapConfig.PortExpanderAddress) && (portExpanderPlug.Row2 == splitflapConfig.Row2)) { OutputPortRow2.Write(portExpanderPlug.Row2); //get current byte byte value = 0; if(splitflapConfig.Side == PortExpanderPlug.Sides.A) { value = portExpanderPlug.CurrentByteA; } else { value = portExpanderPlug.CurrentByteB; } // toggle bit value ^= (byte)(1 << splitflapConfig.PortExpanderBit); // write new byte portExpanderPlug.WriteToPins(value, splitflapConfig.Side); splitflapConfig.CurrentPosition++; break; } } }