public bool ChangeReceiverChannel(WirelessPowerReceiver receiver, int channel) { if (!this.receivers.ContainsKey(receiver)) { return(false); } int receiverChannel = this.receivers[receiver]; this.receivers[receiver] = channel; this.UpdateBatteriesOnChannel(receiverChannel); return(true); }
public bool RegisterReceiver(WirelessPowerReceiver receiver, int channel) { if (receiver == null || channel <= 0) { return(false); } if (this.receivers.ContainsKey(receiver)) { return(false); } this.receivers.Add(receiver, channel); this.UpdateBatteriesOnChannel(channel); return(true); }
public bool UnregisterReceiver(WirelessPowerReceiver receiver) { if (!this.receivers.ContainsKey(receiver)) { return(false); } int receiverChannel = this.receivers[receiver]; if (!this.receivers.Remove(receiver)) { return(false); } this.UpdateBatteriesOnChannel(receiverChannel); return(true); }
public bool ReceiveEnergyFromGrid(WirelessPowerReceiver receiver, float joules, float percentFull, float dt) { if (!this.receivers.ContainsKey(receiver)) { return(false); } //check if batteries have energy; int channel = this.receivers[receiver]; Dictionary <WirelessPowerBattery, float> energyToTake = this.GridHasCapacity(-joules, channel, percentFull); if (energyToTake.Count == 0) { return(false); } //Take energy from batteries; foreach (WirelessPowerBattery b in energyToTake.Keys) { b.ConsumeEnergy(energyToTake[b], dt); } return(true); }