protected virtual void EmptySink() { if (SinkBits == 0) { return; } if (outputDelayRemaining > 0) { return; } int dataValue = GetLargestDataValue(SinkBits); Data data = allData.ElementAt(0); float cruiseVelocity = data.CruiseVelocity; float maxVelocity = data.MaxVelocity; switch (dataValue) { case 64: data = new DataHex(Center, cruiseVelocity, maxVelocity); break; case 8: data = new DataByte(Center, cruiseVelocity, maxVelocity); break; case 1: default: data = new DataBit(Center, cruiseVelocity, maxVelocity); break; } SinkBits -= dataValue; if (Sink == null) { return; } //data.Cruise(); Sink.ReceiveData(data); }
protected virtual void EmptyStorage() { // Must be at capacity if (HasReachedCapacity == false) { return; } if (outputDelayRemaining > 0) { return; } if (StoredBits < OutputValue) { return; } Data data = allData.ElementAt(0); float cruiseVelocity = data.CruiseVelocity; float maxVelocity = data.MaxVelocity; switch (OutputValue) { case 64: data = new DataHex(Center, cruiseVelocity, maxVelocity); break; case 8: data = new DataByte(Center, cruiseVelocity, maxVelocity); break; case 1: default: data = new DataBit(Center, cruiseVelocity, maxVelocity); break; } StoredBits -= OutputValue; TransferData(data); }