public bool ChangeSenderChannel(WirelessPowerSender sender, int channel) { if (!this.senders.ContainsKey(sender)) { return(false); } int senderChannel = this.senders[sender]; this.senders[sender] = channel; this.UpdateBatteriesOnChannel(senderChannel); return(true); }
public bool RegisterSender(WirelessPowerSender sender, int channel) { if (sender == null || channel <= 0) { return(false); } if (this.senders.ContainsKey(sender)) { return(false); } this.senders.Add(sender, channel); this.UpdateBatteriesOnChannel(channel); return(true); }
public bool UnregisterSender(WirelessPowerSender sender) { if (!this.senders.ContainsKey(sender)) { return(false); } int senderChannel = this.senders[sender]; if (!this.senders.Remove(sender)) { return(false); } this.UpdateBatteriesOnChannel(senderChannel); return(true); }
public bool SendEnergyToGrid(WirelessPowerSender sender, float joules, float percentFull, float dt) { if (!this.senders.ContainsKey(sender)) { return(false); } //check if batteries have free capacity; int channel = this.senders[sender]; Dictionary <WirelessPowerBattery, float> energyToGive = this.GridHasCapacity(joules, channel, percentFull); if (energyToGive.Count == 0) { return(false); } //Send energy to batteries; foreach (WirelessPowerBattery b in energyToGive.Keys) { b.AddEnergy(energyToGive[b], dt); } return(true); }