示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }