Пример #1
0
    // Update is called once per frame
    void Update()
    {
        if (Time.time >= timeDelay || lastStatus != SystemInfo.batteryStatus)
        {
            lastStatus = SystemInfo.batteryStatus;
            Vector3 scale = Vector3.one;
            scale.x = SystemInfo.batteryLevel;
            string addIn = System.String.Empty;
            switch (lastStatus)
            {
            case BatteryStatus.Charging: {
                addIn = "+";
                break;
            }

            case BatteryStatus.Discharging: {
                addIn = "-";
                break;
            }
            }
            transform.localScale = scale;
            img.color            = (scale.x < .2f) ? Color.red : (scale.x < .45f) ? Color.yellow : Color.green;
            string warn = (scale.x < .15f) ? "!" : System.String.Empty;
            percText.text = warn + (scale.x * 100f) + "%" + addIn + warn;
            timeDelay     = Time.time + 10f;
        }
    }
Пример #2
0
 static int Main()
 {
     BatteryStatus.CheckBatteryStatus(40, 60, 0.4f);
     BatteryStatus.CheckBatteryStatus(-1, 20, 0.3f);
     BatteryStatus.CheckBatteryStatus(100, -20, 0.1f);
     return(0);
 }
Пример #3
0
        private static BatteryEntryState ToBatteryEntryState(BatteryStatus bs)
        {
            BatteryEntryState state = BatteryEntryState.Unknown;

            switch (bs)
            {
            case BatteryStatus.Full:
                state = BatteryEntryState.Full;
                break;

            case BatteryStatus.Charging:
                state = BatteryEntryState.Charging;
                break;

            case BatteryStatus.Discharging:
                state = BatteryEntryState.Discharging;
                break;

            case BatteryStatus.NotCharging:
                state = BatteryEntryState.NotCharging;
                break;

            case BatteryStatus.Unknown:
                state = BatteryEntryState.Unknown;
                break;
            }
            return(state);
        }
        public void Initialize()
        {
            _batteryStatus = new BatteryStatus();
            _batteryStatus.Start();
            _batteryStatus.BatteryStatusUpdate += (s, bi) =>
            {
                this.BatteryDetails.BatteryStatus              = bi.ChargeStatus;
                this.BatteryDetails.ChargeDischargeRate        = bi.DischargeRate;
                this.BatteryDetails.DesignCapacity             = bi.DesignedMaxCapacity;
                this.BatteryDetails.FullCharge                 = bi.FullChargeCapacity;
                this.BatteryDetails.RemainingCapacity          = (int)bi.CurrentCapacity;
                this.BatteryDetails.RemainingCapacityInPercent = bi.CurrentCapacityPercent;
                this.BatteryDetails.BatteryHealthInPercent     = bi.BatteryHealthPercent;

                Chart.DischargeRateSeries.Values.Add(this.BatteryDetails.ChargeDischargeRate);
                Chart.RemainingCapacity.Values.Add(this.BatteryDetails.RemainingCapacity);

                if (Chart.DischargeRateSeries.Values.Count > 50)
                {
                    Chart.MaxValue = Chart.DischargeRateSeries.Values.Count;
                }

                if (Chart.MaxValue > 200)
                {
                    Chart.DischargeRateSeries.Values.RemoveAt(0);
                    Chart.RemainingCapacity.Values.RemoveAt(0);
                }
            };
        }
Пример #5
0
 protected override void Start()
 {
     base.Start();
     HideAll();
     myStatus = BatteryStatus.Normal;
     //InvokeRepeating("LowBatteryUpdate", 0, 1);
 }
        public static string GetBatStatName(BatteryStatus status)
        {
            string batStatName = "";

            switch (status)
            {
            case BatteryStatus.BAT_NO_DETECTED:
                batStatName += "Bat no detected";
                break;

            case BatteryStatus.BAT_OK:
                break;

            case BatteryStatus.BAT_CHARGE_FAULT:
                batStatName += "Charge Fault";
                break;

            case BatteryStatus.BAT_PRE_CHARGE:
                batStatName += "Pre charge";
                break;

            case BatteryStatus.BAT_NO_CHARGER_NO_DISCHARGER:
                batStatName += "No charge, No discharge";
                break;

            case BatteryStatus.BAT_CHARGE_DISCHARGE:
                batStatName += "Discharge";
                break;

            case BatteryStatus.BAT_END_MEASURE_RESISTANCE:
                batStatName += "Mesure resistance";
                break;

            case BatteryStatus.BAT_CHARGE:
                batStatName += "Charging";
                break;

            case BatteryStatus.BAT_FULL:
                batStatName += "Full";
                break;

            case BatteryStatus.BAT_FULL_MEASURE_RESISTANCE:
                batStatName += "Full mesure resistance";
                break;

            case BatteryStatus.BAT_DISCHARGE:
                batStatName += "Bat discharge";
                break;

            case BatteryStatus.BAT_END:
                batStatName += "Bat end";
                break;

            default:
                batStatName += "Code error!";
                break;
            }

            return(batStatName);
        }
        public static string GetFileBatImage(BatteryStatus status)
        {
            string path = @"Resource\";

            switch (status)
            {
            case BatteryStatus.BAT_CHARGE:
                path += chargingBatImageName;
                break;

            case BatteryStatus.BAT_FULL:
                path += fullBatImageName;
                break;

            case BatteryStatus.BAT_NO_DETECTED:
                path += noBatImageName;
                break;

            default:
                path += emtybatImageName;
                break;
            }

            return(path);
        }
Пример #8
0
 public BatteryStateEventArgs(BatteryStatus status, double level, bool isCharging, TimeSpan?remainingTime)
 {
     Status        = status;
     Level         = level;
     IsCharging    = isCharging;
     RemainingTime = remainingTime;
 }
Пример #9
0
    public void SetBatteryStatus(BatteryStatus batteryStatus)
    {
        Debug.Log("SetBatteryStatus:" + batteryStatus);
        CurBatteryStatus = batteryStatus;
        if (batteryStatus == BatteryStatus.NoCharging)
        {
            //m_BaterryTarget.sprite = m_BatteryNormal;
            SetBatteryPower(SvrNativeInterface.GetInstance().BatteryUtils.GetCurrentBattery());
            BatteryChargeLightning.SetActive(false);
        }
        else
        {
            m_BaterryTarget.sprite = m_BatteryCharge;
            BatteryChargeLightning.SetActive(true);
        }
        //if (batteryStatus == BatteryStatus.NoCharging)
        //{
        //    ChargingAnimationSwitch(false);//关闭动画

        //    CurUsingBPs = NoChargingBPs;
        //    SetBatteryPower(CurBatteryPower);
        //}
        //else
        //{
        //    CurUsingBPs = ChargingBPs;
        //    ChargingAnimationSwitch(true);
        //}
    }
Пример #10
0
        public void Update()
        {
            try
            {
                if (!(bool)WMITool.QuerySingle("root/WMI", "BatteryStatus", "Active"))
                {
                    Status = BatteryStatus.Unavailable;
                    return;
                }
                Status = BatteryStatus.Discharging;
                if ((bool)WMITool.QuerySingle("root/WMI", "BatteryStatus", "Charging"))
                {
                    Status = BatteryStatus.Charging;
                }
            }
            catch (Exception)
            {
                Status = BatteryStatus.Unavailable;
                return;
            }
            try
            {
                NominalCapacity = ((uint)WMITool.QuerySingle("root/WMI", "BatteryStaticData", "DesignedCapacity")) / 1000f;
            }
            catch { }

            try
            {
                RealCapacity = ((uint)WMITool.QuerySingle("root/WMI", "BatteryFullChargedCapacity", "FullChargedCapacity")) / 1000f;
            }
            catch { }
            try
            {
                CurrentCapacity = ((uint)WMITool.QuerySingle("root/WMI", "BatteryStatus", "RemainingCapacity")) / 1000f;
            }
            catch { }
            try
            {
                ChargePercent = CurrentCapacity / RealCapacity * 100f;
            }
            catch { }
            try
            {
                CurrentVoltage = ((uint)WMITool.QuerySingle("root/WMI", "BatteryStatus", "Voltage")) / 1000f;
            }
            catch { }
            try
            {
                TimeToDischarge = TimeSpan.FromSeconds((uint)WMITool.QuerySingle("root/WMI", "BatteryRuntime", "EstimatedRuntime"));
            }
            catch { }
            if (Status == BatteryStatus.Discharging)
            {
                ChargeRate = -((int)WMITool.QuerySingle("root/WMI", "BatteryStatus", "DischargeRate")) / 1000f;
            }
            else
            {
                ChargeRate = ((int)WMITool.QuerySingle("root/WMI", "BatteryStatus", "ChargeRate")) / 1000f;
            }
        }
Пример #11
0
        private static void DetermineWorkloads()
        {
            BatteryStatus     batteryStatus   = PowerManager.BatteryStatus;
            int               remainingCharge = PowerManager.RemainingChargePercent;
            PowerSupplyStatus powerStatus     = PowerManager.PowerSupplyStatus;
            PowerSourceKind   powerSource     = PowerManager.PowerSourceKind;

            if ((powerSource == PowerSourceKind.DC &&
                 batteryStatus == BatteryStatus.Discharging &&
                 remainingCharge < 25) ||
                (powerSource == PowerSourceKind.AC &&
                 powerStatus == PowerSupplyStatus.Inadequate))
            {
                // The device is not in a good battery/power state,
                // so we should pause any non-critical work.
                PauseNonCriticalWork();
            }
            else if ((batteryStatus != BatteryStatus.Discharging && remainingCharge > 75) &&
                     powerStatus != PowerSupplyStatus.Inadequate)
            {
                // The device is in good battery/power state,
                // so let's kick of some high-power work.
                StartPowerIntensiveWork();
            }
        }
Пример #12
0
 /// <summary>
 /// Initialize the controller subsystem
 /// </summary>
 /// <returns>true if initialization was sucessfull, false otherwise</returns>
 public static bool InitController(CoreDispatcher uiDispatcher)
 {
     SystemDispatcher = uiDispatcher;
     //first set the robot status
     _RobotStatus = RobotStatus.Idle;
     //battery
     Hardware.UpdateSignalBattery();
     SignalBatteryStatus = Hardware.UpdateSignalBatteryStatus();
     Hardware.Signal_battery_status_indicator.UpdateRuntimeValue((int)SignalBatteryStatus);
     Hardware.UpdatePowerBattery();
     PowerBatteryStatus = Hardware.UpdatePowerBatteryStatus();
     Hardware.Power_battery_status_indicator.UpdateRuntimeValue((int)PowerBatteryStatus);
     //and start them
     Hardware.Power_battery_status_indicator.Start();
     Hardware.Signal_battery_status_indicator.Start();
     //TODO: status indicator for what the robot control is doing
     ControllerThread = new BackgroundWorker()
     {
         WorkerSupportsCancellation = true,
         WorkerReportsProgress      = true
     };
     ControllerThread.RunWorkerCompleted += OnControlThreadExit;
     ControllerThread.ProgressChanged    += ControllerLogProgress;
     ControllerThread.DoWork             += ControlRobotAuto;
     ControllerThread.RunWorkerAsync();
     return(true);
 }
Пример #13
0
        /// <inheritdoc />
        public override void OnReceive(Context context, Intent intent)
        {
            if (this.Updated == null)
            {
                return;
            }

            var batteryLevel  = intent.GetIntExtra(BatteryManager.ExtraLevel, -1);
            var batteryScale  = intent.GetIntExtra(BatteryManager.ExtraScale, -1);
            var batteryStatus = intent.GetIntExtra(BatteryManager.ExtraStatus, -1);

            var status = BatteryStatus.NotPresent;

            switch (batteryStatus)
            {
            case (int)Android.OS.BatteryStatus.Charging:
                status = BatteryStatus.Charging;
                break;

            case (int)Android.OS.BatteryStatus.Discharging:
                status = BatteryStatus.Discharging;
                break;

            case (int)Android.OS.BatteryStatus.Full:
            case (int)Android.OS.BatteryStatus.NotCharging:
                status = BatteryStatus.Idle;
                break;

            case (int)Android.OS.BatteryStatus.Unknown:
                status = BatteryStatus.NotPresent;
                break;
            }

            var remainingChargePercent = (int)Math.Floor(batteryLevel * 100D / batteryScale);

            if (status != this.previousStatus || remainingChargePercent != this.previousRemainingCharge)
            {
                lock (this.obj)
                {
                    var eventArgs = new BatteryStatusChangedEventArgs(status, remainingChargePercent);

                    try
                    {
                        this.Updated?.Invoke(this, eventArgs);
                    }
                    catch (Exception ex)
                    {
#if DEBUG
                        System.Diagnostics.Debug.WriteLine(ex.ToString());
#endif
                    }
                    finally
                    {
                        this.previousStatus          = status;
                        this.previousRemainingCharge = remainingChargePercent;
                    }
                }
            }
        }
        public static void CheckTemperature(float temperature)
        {
            float minTemperature = 0;
            float maxTemperature = 45;

            BatteryLevel.BatteryCondition batteryTemperature = BatteryLevel.CheckBatteryCondition(temperature, minTemperature, maxTemperature);
            BatteryStatus.DisplayBatteryStatus("Temperature", batteryTemperature);
        }
Пример #15
0
 public NetBatteryState(string identifier, BatteryStatus status, double level, bool isCharging, TimeSpan?remainingTime)
 {
     Identifier    = identifier;
     Status        = status;
     Level         = level;
     IsCharging    = isCharging;
     RemainingTime = remainingTime;
 }
        public static void CheckChargeRate(float chargeRate)
        {
            float minChargeRate = 0.3f;
            float maxChargeRate = 0.8f;

            BatteryLevel.BatteryCondition batteryChargeRate = BatteryLevel.CheckBatteryCondition(chargeRate, minChargeRate, maxChargeRate);
            BatteryStatus.DisplayBatteryStatus("Charge Rate", batteryChargeRate);
        }
        public static void CheckChargeState(float soc)
        {
            float minStateOfCharge = 20;
            float maxStateOfCharge = 80;

            BatteryLevel.BatteryCondition batteryChargeState = BatteryLevel.CheckBatteryCondition(soc, minStateOfCharge, maxStateOfCharge);
            BatteryStatus.DisplayBatteryStatus("State of charge", batteryChargeState);
        }
Пример #18
0
 public BatteryInfo(byte Percentage, int Charges, BatteryStatus Status, DateTime LastCharged)
 {
     this.percentage  = Percentage;
     this.charges     = Charges;
     this.status      = Status;
     this.lastCharged = LastCharged;
     Valid            = true;
 }
Пример #19
0
		public Battery(byte[] bytes)
		{
			BatteryLevel = bytes[0];
			Status = (BatteryStatus)bytes[9];
			LastCharged = new DateTime(bytes[1] + 2000, bytes[2] + 1, bytes[3], bytes[4], bytes[5], bytes[6]);
			
			Cycles = 0xffff & (0xff & bytes[7] | (0xff & bytes[8]) << 8);
		}
Пример #20
0
        private static void PowerManager_BatteryStatusChanged(object sender, object e)
        {
            BatteryStatus batteryStatus   = PowerManager.BatteryStatus;
            int           remainingCharge = PowerManager.RemainingChargePercent;

            OutputMessage($"Battery status changed: {batteryStatus}, {remainingCharge}");
            DetermineWorkloads();
        }
Пример #21
0
        public Battery(byte[] bytes)
        {
            BatteryLevel = bytes[0];
            Status       = (BatteryStatus)bytes[9];
            LastCharged  = new DateTime(bytes[1] + 2000, bytes[2] + 1, bytes[3], bytes[4], bytes[5], bytes[6]);

            Cycles = 0xffff & (0xff & bytes[7] | (0xff & bytes[8]) << 8);
        }
Пример #22
0
 public ShutterContactDiff(String Name, Int32 Room_ID, String Room_Name)
 {
     _DeviceType = DeviceTypes.ShutterContact;
     _DeviceName = Name;
     _RoomID     = Room_ID;
     _RoomName   = Room_Name;
     lowBattery  = BatteryStatus.unchanged;
     state       = ShutterContactModes.unchanged;
 }
Пример #23
0
 // Start is called before the first frame update
 void Start()
 {
     lastStatus = SystemInfo.batteryStatus;
     percText   = transform.parent.GetChild(1).GetComponent <Text> ();
     img        = GetComponent <Image> ();
     //if (Application.platform != RuntimePlatform.Android){
     //	transform.parent.gameObject.SetActive (false);
     //}
 }
Пример #24
0
        private void UpdateBatteryStatus(BatteryStatus batteryStatus, double batteryLevel, TimeSpan?batteryRemainingTime, bool isBatteryCharging)
        {
            BatteryLevel         = batteryLevel;
            BatteryRemainingTime = batteryRemainingTime;
            IsBatteryCharging    = isBatteryCharging;
            BatteryStatus        = batteryStatus;

            BatteryChanged?.Invoke(this, new BatteryStateEventArgs(batteryStatus, batteryLevel, isBatteryCharging, batteryRemainingTime));
        }
Пример #25
0
 public ShutterContactDiff(String Name, Int32 Room_ID, String Room_Name)
 {
     _DeviceType = DeviceTypes.ShutterContact;
     _DeviceName = Name;
     _RoomID = Room_ID;
     _RoomName = Room_Name;
     lowBattery = BatteryStatus.unchanged;
     state = ShutterContactModes.unchanged;
 }
Пример #26
0
 public HeatingThermostatDiff(String Name, Int32 Room_ID, String Room_Name)
 {
     _DeviceType = DeviceTypes.HeatingThermostat;
     _DeviceName = Name;
     _RoomID = Room_ID;
     _RoomName = Room_Name;
     lowBattery = BatteryStatus.unchanged;
     temperature = Double.NaN;
     mode = ThermostatModes.unchanged;
 }
Пример #27
0
 public HeatingThermostatDiff(String Name, Int32 Room_ID, String Room_Name)
 {
     _DeviceType = DeviceTypes.HeatingThermostat;
     _DeviceName = Name;
     _RoomID     = Room_ID;
     _RoomName   = Room_Name;
     lowBattery  = BatteryStatus.unchanged;
     temperature = Double.NaN;
     mode        = ThermostatModes.unchanged;
 }
Пример #28
0
    private void Init()
    {
        BatteryUtils      = SvrNativeInterface.GetInstance().BatteryUtils;
        MaxBatteryValue   = GetMaxBatteryValue();
        BatteryPowerLevel = 5;
        BPLevelUnit       = 10 / BatteryPowerLevel;
        OldBatteryValue   = 0;
        OldBatterySts     = BatteryStatus.NoCharging;

        //InvokeRepeating("CheckDeviceStatus", 0, 1);
    }
Пример #29
0
        public string GetStatusDesc()
        {
            BatteryStatus bs = SystemInfo.batteryStatus;

            if (!m_StatusDescDic.TryGetValue(bs, out string desc))
            {
                desc = bs.ToString();
                m_StatusDescDic.Add(bs, desc);
            }
            return(desc);
        }
Пример #30
0
 void Awake()
 {
     if (instance != null)
     {
         return;
     }
     else
     {
         instance = this;
     }
 }
Пример #31
0
        // Callback for Application BatteryLowSignal
        private void OnNUIApplicationBatteryLow(BatteryStatus status)
        {
            lock (this)
            {
                NUIApplicationBatteryLowEventArgs e = new NUIApplicationBatteryLowEventArgs();

                // Populate all members of "e" (NUIApplicationBatteryLowEventArgs) with real data
                e.BatteryStatus = status;
                _applicationBatteryLowEventHandler?.Invoke(this, e);
            }
        }
Пример #32
0
    void CheckBatteryStatus()
    {
        BatteryStatus curBatterySts = GetBatteryStatus();

        if (curBatterySts != OldBatterySts)
        {
            if (BatteryStatusChangeCallback != null)
            {
                BatteryStatusChangeCallback(curBatterySts);
            }

            OldBatterySts = curBatterySts;
        }
    }
 //----------------- Constructor and its attributes -----------------//
 public Battery(int batteryId, int batteryamountOfColumns, int batteryTotalNumberOfFloors, int batteryamountOfBasements, int batteryamountOfElevators, BatteryStatus batteryStatus)
 {
     id = batteryId;
     amountOfColumns     = batteryamountOfColumns;
     totalNumberOfFloors = batteryTotalNumberOfFloors;
     amountOfBasements   = batteryamountOfBasements;
     amountOfElevators   = batteryamountOfElevators;
     status                  = batteryStatus;
     columnsList             = new List <Column>();
     numberOfFloorsPerColumn = calculateNumberOfFloorsPerColumn();
     createColumnsList();
     setColumnValues();
     createListsInsideColumns();
 }
Пример #34
0
		private string ToString(BatteryStatus status)
		{
			switch(status)
			{
				case BatteryStatus.Undefined:
					return "Undefined";
				case BatteryStatus.Low:
					return "Low";
				case BatteryStatus.Charging:
					return "Charging";
				case BatteryStatus.Full:
					return "Full";
				case BatteryStatus.NotCharging:
					return "NotCharging";
				default:
					throw new ArgumentOutOfRangeException(nameof(status), status, null);
			}
		}
    void RemainingChargePercentChanged(object sender, object e)
    {
      if (DefaultBattery.RemainingChargePercent == 100)
        status = BatteryStatus.Full;
      else if (last > DefaultBattery.RemainingChargePercent)
        status = BatteryStatus.Discharging;
      else if (last < DefaultBattery.RemainingChargePercent)
        status = BatteryStatus.Charging;
      else
        status = BatteryStatus.Unknown;

      last = DefaultBattery.RemainingChargePercent; ;
      
      var dispatcher = CoreApplication.MainView.CoreWindow.Dispatcher;
      if(dispatcher != null)
      {
        dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
        {
          OnBatteryChanged(new BatteryChangedEventArgs
          {
            RemainingChargePercent = DefaultBattery.RemainingChargePercent,
            IsLow = DefaultBattery.RemainingChargePercent <= 15,
            PowerSource = PowerSource,
            Status = Status
          });
        });
      }
      else
      {
        OnBatteryChanged(new BatteryChangedEventArgs
        {
          RemainingChargePercent = DefaultBattery.RemainingChargePercent,
          IsLow = DefaultBattery.RemainingChargePercent <= 15,
          PowerSource = PowerSource,
          Status = Status
        });
      }
 
    }
Пример #36
0
 public BatteryInfo()
 {
     this.status = BatteryStatus.Unknown;
     this.voltage = 0;
 }