Exemplo n.º 1
0
        internal static Exception ThrowPowerUsageException(PowerUsageError errCode)
        {
            Log.Error(LogTag, "Throw PowerUsage Exception : " + errCode);

            switch (errCode)
            {
            case PowerUsageError.OutOfMemory:
                return(new InvalidOperationException("Out of memory"));

            case PowerUsageError.InvalidParameter:
                return(new ArgumentException("Invalid Parameter passed"));

            case PowerUsageError.AcessibilityNotallowed:
                return(new UnauthorizedAccessException("Permission denied"));

            case PowerUsageError.NotSupported:
                return(new NotSupportedException("Not supported"));

            case PowerUsageError.RecordNotFound:
                return(new InvalidOperationException("Related record does not exist"));

            case PowerUsageError.DBFailed:
                return(new InvalidOperationException("DB operation failed"));

            case PowerUsageError.DBNotOpened:
                return(new InvalidOperationException("DB is not connected"));

            case PowerUsageError.Internal:
                return(new InvalidOperationException("Internal error for generic use"));

            default:
                return(new InvalidOperationException("Unknown Error"));
            }
        }
Exemplo n.º 2
0
        private static double GetPowerUsage(IntPtr dataHandle, PowerUsageResourceType rtype)
        {
            double          batteryUsage = 0;
            PowerUsageError ret          = (PowerUsageError)Interop.PowerUsage.UsageDataGetPowerUsagePerResource(dataHandle, rtype, out batteryUsage);

            if (ret != PowerUsageError.None)
            {
                Log.Error(PowerUsageErrorFactory.LogTag, "Error getting battery usage for resource" + ret);
                throw PowerUsageErrorFactory.ThrowPowerUsageException(ret);
            }
            return(batteryUsage);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Gets the total battery usage in mAh(milli-Ampere hour) by an application for certain time interval.
        /// </summary>
        /// <since_tizen> 7 </since_tizen>
        /// <param name="appID">Application ID of the application for which battery usage is required.</param>
        /// <param name="start">Start Time for data in DateTime.</param>
        /// <param name="end">End Time for data in DateTime.</param>
        /// <returns>Returns the total battery usage in mAh(milli-Ampere hour) by an application for certain time interval.</returns>
        /// <feature>http://tizen.org/feature/battery</feature>
        /// <privilege>http://tizen.org/privilege/systemmonitor</privilege>
        /// <exception cref="ArgumentException">When an invalid parameter value is set.</exception>
        /// <exception cref="UnauthorizedAccessException">If the privilege is not set.</exception>
        /// <exception cref="InvalidOperationException">In case of any system error.</exception>
        /// <exception cref="NotSupportedException">In case power usage is not supported</exception>
        public static double GetPowerUsage(string appID, DateTime start, DateTime end)
        {
            double          batteryUsage = 0;
            PowerUsageError ret          = (PowerUsageError)Interop.PowerUsage.GetPowerUsageByApp(appID, Convert.ToInt32(((DateTimeOffset)start).ToUnixTimeSeconds()), Convert.ToInt32(((DateTimeOffset)end).ToUnixTimeSeconds()), out batteryUsage);

            if (ret != PowerUsageError.None)
            {
                Log.Error(PowerUsageErrorFactory.LogTag, "Error getting battery usage by app," + ret);
                throw PowerUsageErrorFactory.ThrowPowerUsageException(ret);
            }
            return(batteryUsage);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Gets the battery consumption in mAh(milli-Ampere hour) for the resources specified by the application in custom interval.
        /// </summary>
        /// <since_tizen> 7 </since_tizen>
        /// <param name="appID">Application ID of the application for which battery usage is required.</param>
        /// <param name="rtypes">list of resource type identifiers like BLE, WiFi, CPU etc.</param>
        /// <param name="start">Start Time for data in DateTime.</param>
        /// <param name="end">End Time for data in DateTime.</param>
        /// <returns>Returns the battery consumption in mAh(milli-Ampere hour) for the resources specified by the application in custom interval.</returns>
        /// <feature>http://tizen.org/feature/battery</feature>
        /// <privilege>http://tizen.org/privilege/systemmonitor</privilege>
        /// <exception cref="ArgumentException">When an invalid parameter value is set.</exception>
        /// <exception cref="UnauthorizedAccessException">If the privilege is not set.</exception>
        /// <exception cref="InvalidOperationException">In case of any system error.</exception>
        /// <exception cref="NotSupportedException">In case power usage is not supported</exception>
        public static IDictionary <PowerUsageResourceType, double> GetPowerUsage(string appID, IList <PowerUsageResourceType> rtypes, DateTime start, DateTime end)
        {
            IntPtr dataHandle = IntPtr.Zero;
            IDictionary <PowerUsageResourceType, double> batteryUsage = new Dictionary <PowerUsageResourceType, double>();

            try
            {
                PowerUsageError ret = (PowerUsageError)Interop.PowerUsage.GetPowerUsageByAppForAllResources(appID, Convert.ToInt32(((DateTimeOffset)start).ToUnixTimeSeconds()), Convert.ToInt32(((DateTimeOffset)end).ToUnixTimeSeconds()), out dataHandle);
                if (ret != PowerUsageError.None)
                {
                    Log.Error(PowerUsageErrorFactory.LogTag, "Error getting battery usage for all resources" + ret);
                    throw PowerUsageErrorFactory.ThrowPowerUsageException(ret);
                }

                if (rtypes != null)
                {
                    foreach (PowerUsageResourceType type in rtypes)
                    {
                        try
                        {
                            batteryUsage[type] = GetPowerUsage(dataHandle, type);
                        }
                        catch (InvalidOperationException)
                        {
                            Log.Error(PowerUsageErrorFactory.LogTag, $"Error getting battery usage for {type}");
                        }
                    }
                }
                else
                {
                    Log.Error(PowerUsageErrorFactory.LogTag, "Power usage resource types parameter is empty");
                    throw new ArgumentNullException(nameof(rtypes));
                }
            }
            finally
            {
                PowerUsageError ret = (PowerUsageError)Interop.PowerUsage.BatteryUsageDataDestroy(dataHandle);
                if (ret != PowerUsageError.None)
                {
                    Log.Error(PowerUsageErrorFactory.LogTag, "Error in Destroy handle, " + ret);
                }
            }
            return(batteryUsage);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Gets the battery usage in mAh(milli-Ampere hour) by a resource for certain time interval.
        /// </summary>
        /// <since_tizen> 7 </since_tizen>
        /// <param name="rtype">Identifier of resource type. BLE, WiFi, CPU etc.</param>
        /// <param name="start">Start Time for data in DateTime.</param>
        /// <param name="end">End Time for data in DateTime.</param>
        /// <returns>Returns the battery usage in mAh(milli-Ampere hour) by a resource for certain time interval.</returns>
        /// <feature>http://tizen.org/feature/battery</feature>
        /// <privilege>http://tizen.org/privilege/systemmonitor</privilege>
        /// <exception cref="ArgumentException">When an invalid parameter value is set.</exception>
        /// <exception cref="UnauthorizedAccessException">If the privilege is not set.</exception>
        /// <exception cref="InvalidOperationException">In case of any system error.</exception>
        /// <exception cref="NotSupportedException">In case power usage is not supported</exception>
        public static double GetPowerUsage(PowerUsageResourceType rtype, DateTime start, DateTime end)
        {
            double          batteryUsage = 0;
            PowerUsageError ret          = (PowerUsageError)Interop.PowerUsage.GetPowerUsageByResource(rtype, Convert.ToInt32(((DateTimeOffset)start).ToUnixTimeSeconds()), Convert.ToInt32(((DateTimeOffset)end).ToUnixTimeSeconds()), out batteryUsage);

            if (ret != PowerUsageError.None)
            {
                if (ret == PowerUsageError.RecordNotFound)
                {
                    Log.Error(PowerUsageErrorFactory.LogTag, "Error PowerUsageResourceType is not supported");
                    throw new ArgumentException($"{rtype} is not supproted", nameof(rtype));
                }
                else
                {
                    Log.Error(PowerUsageErrorFactory.LogTag, "Error getting battery usage by resource ," + ret);
                    throw PowerUsageErrorFactory.ThrowPowerUsageException(ret);
                }
            }
            return(batteryUsage);
        }