Loading core/java/android/wipower/IWipowerManagerCallback.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -41,4 +41,6 @@ interface IWipowerManagerCallback void onWipowerAlert(byte alert); void onWipowerData(in byte[] value); void onPowerApply(byte value); } core/java/android/wipower/WipowerDynamicParam.java +128 −38 Original line number Diff line number Diff line Loading @@ -53,26 +53,30 @@ public class WipowerDynamicParam { private byte mReserved2; private static final String LOGTAG = "WipowerDynamicParam"; private static final boolean VDBG = false; private static final int MSB_MASK = 0xFF00; private static final int LSB_MASK = 0x00FF; /* ADC conversions for voaltag and current */ private static final float VREG_ADC_TO_mV_RATIO = ((float)(2.44/256)*10000); private static final float IREG_ADC_TO_mA_RATIO = ((float)(2.44/256)*500); /** * Default Constructor * {@hide} */ public WipowerDynamicParam() { mOptValidity = 0; mRectVoltage = 0; mRectCurrent = 0; mOutputVoltage = 0; mOutputCurrent = 0; mTemperature = 0; mMinRectVoltageDyn = 0; mMaxRectVoltageDyn = 0; mSetRectVoltageDyn = 0; mAlert = 0; mOptValidity = 0x00; mRectVoltage = 0x00; mRectCurrent = 0x00; mOutputVoltage = 0x00; mOutputCurrent = 0x00; mTemperature = 0x00; mMinRectVoltageDyn = 0x00; mMaxRectVoltageDyn = 0x00; mSetRectVoltageDyn = 0x00; mAlert = 0x00; mReserved1 = 0; mReserved2 = 0; } Loading @@ -90,9 +94,15 @@ public class WipowerDynamicParam { * {@hide} */ void print() { Log.v(LOGTAG, "mOptValidity" + toHex(mOptValidity) + "mRectVoltage" + toHex(mRectVoltage) + "mRectCurrent" + toHex(mRectCurrent) + "mOutputVoltage" + toHex(mOutputVoltage)); Log.v(LOGTAG, "mOutputCurrent" + toHex(mOutputCurrent) + "mTemperature" + toHex(mTemperature) + "mMinRectVoltageDyn" + toHex(mMinRectVoltageDyn) + "mMaxRectVoltageDyn" + toHex(mMaxRectVoltageDyn)); Log.v(LOGTAG, "mSetRectVoltageDyn" + toHex(mSetRectVoltageDyn) + "mAlert" + toHex(mAlert) + "mReserved1" + toHex(mReserved1) + "mReserved2" + toHex(mReserved2)); if (VDBG) Log.v(LOGTAG, "mOptValidity " + toHex(mOptValidity) + "mRectVoltage " + toHex(mRectVoltage) + "mRectCurrent " + toHex(mRectCurrent) + "mOutputVoltage " + toHex(mOutputVoltage)); if (VDBG) Log.v(LOGTAG, "mOutputCurrent " + toHex(mOutputCurrent) + "mTemperature " + toHex(mTemperature) + "mMinRectVoltageDyn " + toHex(mMinRectVoltageDyn) + "mMaxRectVoltageDyn " + toHex(mMaxRectVoltageDyn)); if (VDBG) Log.v(LOGTAG, "mSetRectVoltageDyn " + toHex(mSetRectVoltageDyn) + "mAlert " + toHex(mAlert) + "mReserved1 " + toHex(mReserved1) + "mReserved2 " + toHex(mReserved2)); } /** Loading @@ -104,29 +114,61 @@ public class WipowerDynamicParam { */ public byte[] getValue() { byte[] res = new byte[20]; print(); res[0] = mOptValidity; res[1] = (byte)(LSB_MASK & mRectVoltage); res[2] = (byte)(MSB_MASK & mRectVoltage); res[2] = (byte)((MSB_MASK & mRectVoltage) >> 8); res[3] = (byte)(LSB_MASK & mRectCurrent); res[4] = (byte)(MSB_MASK & mRectCurrent); res[4] = (byte)((MSB_MASK & mRectCurrent) >> 8); res[5] = (byte)(LSB_MASK & mOutputVoltage); res[6] = (byte)(MSB_MASK & mOutputVoltage); res[6] = (byte)((MSB_MASK & mOutputVoltage) >> 8); res[7] = (byte)(LSB_MASK & mOutputCurrent); res[8] = (byte)(MSB_MASK & mOutputCurrent); res[8] = (byte)((MSB_MASK & mOutputCurrent) >> 8); res[9] = mTemperature; res[10] = (byte)(LSB_MASK & mMinRectVoltageDyn); res[11] = (byte)(MSB_MASK & mMinRectVoltageDyn); res[12] = (byte)(LSB_MASK & mMaxRectVoltageDyn); res[13] = (byte)(MSB_MASK & mMaxRectVoltageDyn); res[14] = (byte)(LSB_MASK & mSetRectVoltageDyn); res[15] = (byte)(MSB_MASK & mSetRectVoltageDyn); res[11] = (byte)((MSB_MASK & mMinRectVoltageDyn) >> 8); res[12] = (byte)(LSB_MASK & mSetRectVoltageDyn); res[13] = (byte)((MSB_MASK & mSetRectVoltageDyn) >> 8); res[14] = (byte)(LSB_MASK & mMaxRectVoltageDyn); res[15] = (byte)((MSB_MASK & mMaxRectVoltageDyn) >> 8); if((mAlert & 0x40) == 0x40) { res[16] = (byte)(mAlert ^ 0x40); } else { res[16] = mAlert; } Log.i(LOGTAG, "mPruDynamicParam.getValue" + res); Log.i(LOGTAG, "mPruDynamicParam.getValue"); return res; } void resetValues() { mOptValidity = 0x00; mRectVoltage = 0x00; mRectCurrent = 0x00; mOutputVoltage = 0x00; mOutputCurrent = 0x00; mTemperature = 0x00; mMinRectVoltageDyn = 0x00; mMaxRectVoltageDyn = 0x00; mSetRectVoltageDyn = 0x00; mAlert = 0x00; mReserved1 = 0x00; mReserved2 = 0x00; } public static short toUnsigned(byte b) { return (short)(b & 0xff); } public static short VREG_ADC_TO_mV(short adc){ return (short)((adc)*(VREG_ADC_TO_mV_RATIO)); } public static short IREG_ADC_TO_mA(short adc) { return (short)((adc)*(IREG_ADC_TO_mA_RATIO)); } /** * {@hide} * Sets the PRU dynamic parameter values in bytes Loading @@ -134,24 +176,72 @@ public class WipowerDynamicParam { * @return none */ public void setValue(byte[] value) { short tempmRectVoltage = 0x0000; short tempmRectCurrent = 0x0000; tempmRectVoltage = (short)toUnsigned(value[1]); tempmRectVoltage |= (short)(toUnsigned(value[2]) << 8); tempmRectCurrent = (short)toUnsigned(value[3]); tempmRectCurrent |= (short)(toUnsigned(value[4]) << 8); Log.i(LOGTAG, "tempmRectVoltage: " + tempmRectVoltage + "tempmRectCurrent: " + tempmRectCurrent); resetValues(); mOptValidity = value[0]; mRectVoltage = (short)(VREG_ADC_TO_mV(tempmRectVoltage)); mRectCurrent = (short)(IREG_ADC_TO_mA(tempmRectCurrent)); mOutputVoltage = (short)toUnsigned(value[5]); mOutputVoltage |= (short)(toUnsigned(value[6]) << 8); mOutputCurrent = (short)toUnsigned(value[7]); mOutputCurrent |= (short)(toUnsigned(value[8]) << 8); mTemperature = value[9]; mMinRectVoltageDyn = (short)toUnsigned(value[10]); mMinRectVoltageDyn |= (short)(toUnsigned(value[11]) << 8); mSetRectVoltageDyn = (short)toUnsigned(value[12]); mSetRectVoltageDyn |= (short)(toUnsigned(value[13]) << 8); mMaxRectVoltageDyn = (short)toUnsigned(value[14]); mMaxRectVoltageDyn |= (short)(toUnsigned(value[15]) << 8); mAlert = value[16]; mReserved1 = (short)(toUnsigned(value[17])); mReserved1 = (short)(toUnsigned(value[18]) << 8); mReserved2 = value[19]; Log.i(LOGTAG, "mPruDynamicParam.setValue"); print(); return; } /** * {@hide} * Sets the PRU dynamic parameter values for A4WP App in bytes * * @return none */ public void setAppValue(byte[] value) { resetValues(); mOptValidity = value[0]; mRectVoltage = value[1]; mRectVoltage |= (short)(8<<value[2]); mRectCurrent = value[3]; mRectCurrent |= (short)(8<<value[4]); mOutputVoltage = value[5]; mOutputVoltage |= (short)(8<<value[6]); mOutputCurrent = value[7]; mOutputCurrent |= (short)(8<<value[8]); mRectVoltage = (short)toUnsigned(value[1]); mRectVoltage |= (short)(toUnsigned(value[2]) << 8); mRectCurrent = (short)toUnsigned(value[3]); mRectCurrent |= (short)(toUnsigned(value[4]) << 8); mOutputVoltage = (short)toUnsigned(value[5]); mOutputVoltage |= (short)(toUnsigned(value[6]) << 8); mOutputCurrent = (short)toUnsigned(value[7]); mOutputCurrent |= (short)(toUnsigned(value[8]) << 8); mTemperature = value[9]; mMinRectVoltageDyn = value[10]; mMinRectVoltageDyn = (short)(8<<value[11]); mMaxRectVoltageDyn = value[12]; mMaxRectVoltageDyn |= (short)(8<<value[13]); mSetRectVoltageDyn = value[14]; mSetRectVoltageDyn |= (short)(8<<value[15]); mMinRectVoltageDyn = (short)toUnsigned(value[10]); mMinRectVoltageDyn |= (short)(toUnsigned(value[11]) << 8); mSetRectVoltageDyn = (short)toUnsigned(value[12]); mSetRectVoltageDyn |= (short)(toUnsigned(value[13]) << 8); mMaxRectVoltageDyn = (short)toUnsigned(value[14]); mMaxRectVoltageDyn |= (short)(toUnsigned(value[15]) << 8); mAlert = value[16]; mReserved1 = (short)(toUnsigned(value[17])); mReserved1 = (short)(toUnsigned(value[18]) << 8); mReserved2 = value[19]; Log.i(LOGTAG, "mPruDynamicParam.setAppValue"); print(); return; } } Loading core/java/android/wipower/WipowerManager.java +40 −7 Original line number Diff line number Diff line Loading @@ -54,7 +54,7 @@ import android.os.SystemProperties; public final class WipowerManager { private static final String TAG = "WipowerManager"; private static final boolean DBG = true; private static final boolean VDBG = true; private static final boolean VDBG = false; private static IWipower mService; private static ArrayList<WipowerManagerCallback> mCallbacks; Loading Loading @@ -100,6 +100,15 @@ public final class WipowerManager { ON }; /** * Wipower power applied event * {@hide} */ public enum PowerApplyEvent { OFF, ON }; /* helper function to invoke callbacks to application layer*/ void updateWipowerState(WipowerState state){ if (mCallbacks != null) { Loading Loading @@ -133,11 +142,22 @@ public final class WipowerManager { } } void updatePowerApplyAlert(PowerApplyEvent alert){ if (mCallbacks != null) { int n = mCallbacks.size(); if (VDBG) Log.v(TAG,"Broadcasting updatePowerApplyAlert() to " + n + " receivers."); for (int i = 0; i < n; i++) { mCallbacks.get(i).onPowerApply(alert); } } } /* helper function to invoke callbacks to application layer*/ void updateWipowerReady(){ if (mCallbacks != null) { int n = mCallbacks.size(); Log.v(TAG,"Broadcasting updateWipowerReady " + n + " receivers."); if (VDBG) Log.v(TAG,"Broadcasting updateWipowerReady " + n + " receivers."); for (int i = 0; i < n; i++) { mCallbacks.get(i).onWipowerReady(); } Loading Loading @@ -169,11 +189,24 @@ public final class WipowerManager { } public void onPowerApply(byte alert) { PowerApplyEvent s; if (alert == 0x1) { s = PowerApplyEvent.ON; } else { s = PowerApplyEvent.OFF; } if (VDBG) Log.v(TAG, "onPowerApply: alert" + alert); updatePowerApplyAlert(s); } public void onWipowerData(byte[] value) { Log.v(TAG, "onWipowerData: " + value); if (mPruData != null) { mPruData.setValue(value); mPruData.print(); updateWipowerData(mPruData); } else { Log.e(TAG, "mPruData is null"); Loading Loading @@ -241,7 +274,6 @@ public final class WipowerManager { Log.v(TAG, "Bound to Wipower Service"); mPruData = new WipowerDynamicParam(); mCallbacks = new ArrayList<WipowerManagerCallback>(); mCallbacks.add(callback); } static boolean isWipowerSupported() { Loading Loading @@ -340,9 +372,9 @@ public final class WipowerManager { Log.e(TAG, " Wipower Service not available"); } else { byte level = 0; if( powerlevel == PowerLevel.POWER_LEVEL_MINIMUM) level = 0; else if( powerlevel == PowerLevel.POWER_LEVEL_MEDIUM) level = 1; else if( powerlevel == PowerLevel.POWER_LEVEL_MAXIMUM) level = 2; if( powerlevel == PowerLevel.POWER_LEVEL_MINIMUM) level = (31/3); else if( powerlevel == PowerLevel.POWER_LEVEL_MEDIUM) level = ((31/3) * 2); else if( powerlevel == PowerLevel.POWER_LEVEL_MAXIMUM) level = 31; try { ret = mService.setCurrentLimit(level); } catch (android.os.RemoteException e) { Loading Loading @@ -451,6 +483,7 @@ public final class WipowerManager { * {@hide} */ public void registerCallback(WipowerManagerCallback callback) { if (VDBG) Log.v(TAG, "registerCallback:Service called"); if (mService == null) { Log.e(TAG, "registerCallback:Service not available"); } Loading core/java/android/wipower/WipowerManagerCallback.java +11 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ package android.wipower; import android.wipower.WipowerManager.WipowerState; import android.wipower.WipowerManager.WipowerAlert; import android.wipower.WipowerManager.PowerApplyEvent; /** * Application level callback for Wipower manager APIs. Loading Loading @@ -76,4 +77,14 @@ public interface WipowerManagerCallback * {@hide} */ void onWipowerData(WipowerDynamicParam value); /** * Indicates the Wipower Alert * * @param {@link WipowerAlert} * * {@hide} */ void onPowerApply(PowerApplyEvent alert); } Loading
core/java/android/wipower/IWipowerManagerCallback.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -41,4 +41,6 @@ interface IWipowerManagerCallback void onWipowerAlert(byte alert); void onWipowerData(in byte[] value); void onPowerApply(byte value); }
core/java/android/wipower/WipowerDynamicParam.java +128 −38 Original line number Diff line number Diff line Loading @@ -53,26 +53,30 @@ public class WipowerDynamicParam { private byte mReserved2; private static final String LOGTAG = "WipowerDynamicParam"; private static final boolean VDBG = false; private static final int MSB_MASK = 0xFF00; private static final int LSB_MASK = 0x00FF; /* ADC conversions for voaltag and current */ private static final float VREG_ADC_TO_mV_RATIO = ((float)(2.44/256)*10000); private static final float IREG_ADC_TO_mA_RATIO = ((float)(2.44/256)*500); /** * Default Constructor * {@hide} */ public WipowerDynamicParam() { mOptValidity = 0; mRectVoltage = 0; mRectCurrent = 0; mOutputVoltage = 0; mOutputCurrent = 0; mTemperature = 0; mMinRectVoltageDyn = 0; mMaxRectVoltageDyn = 0; mSetRectVoltageDyn = 0; mAlert = 0; mOptValidity = 0x00; mRectVoltage = 0x00; mRectCurrent = 0x00; mOutputVoltage = 0x00; mOutputCurrent = 0x00; mTemperature = 0x00; mMinRectVoltageDyn = 0x00; mMaxRectVoltageDyn = 0x00; mSetRectVoltageDyn = 0x00; mAlert = 0x00; mReserved1 = 0; mReserved2 = 0; } Loading @@ -90,9 +94,15 @@ public class WipowerDynamicParam { * {@hide} */ void print() { Log.v(LOGTAG, "mOptValidity" + toHex(mOptValidity) + "mRectVoltage" + toHex(mRectVoltage) + "mRectCurrent" + toHex(mRectCurrent) + "mOutputVoltage" + toHex(mOutputVoltage)); Log.v(LOGTAG, "mOutputCurrent" + toHex(mOutputCurrent) + "mTemperature" + toHex(mTemperature) + "mMinRectVoltageDyn" + toHex(mMinRectVoltageDyn) + "mMaxRectVoltageDyn" + toHex(mMaxRectVoltageDyn)); Log.v(LOGTAG, "mSetRectVoltageDyn" + toHex(mSetRectVoltageDyn) + "mAlert" + toHex(mAlert) + "mReserved1" + toHex(mReserved1) + "mReserved2" + toHex(mReserved2)); if (VDBG) Log.v(LOGTAG, "mOptValidity " + toHex(mOptValidity) + "mRectVoltage " + toHex(mRectVoltage) + "mRectCurrent " + toHex(mRectCurrent) + "mOutputVoltage " + toHex(mOutputVoltage)); if (VDBG) Log.v(LOGTAG, "mOutputCurrent " + toHex(mOutputCurrent) + "mTemperature " + toHex(mTemperature) + "mMinRectVoltageDyn " + toHex(mMinRectVoltageDyn) + "mMaxRectVoltageDyn " + toHex(mMaxRectVoltageDyn)); if (VDBG) Log.v(LOGTAG, "mSetRectVoltageDyn " + toHex(mSetRectVoltageDyn) + "mAlert " + toHex(mAlert) + "mReserved1 " + toHex(mReserved1) + "mReserved2 " + toHex(mReserved2)); } /** Loading @@ -104,29 +114,61 @@ public class WipowerDynamicParam { */ public byte[] getValue() { byte[] res = new byte[20]; print(); res[0] = mOptValidity; res[1] = (byte)(LSB_MASK & mRectVoltage); res[2] = (byte)(MSB_MASK & mRectVoltage); res[2] = (byte)((MSB_MASK & mRectVoltage) >> 8); res[3] = (byte)(LSB_MASK & mRectCurrent); res[4] = (byte)(MSB_MASK & mRectCurrent); res[4] = (byte)((MSB_MASK & mRectCurrent) >> 8); res[5] = (byte)(LSB_MASK & mOutputVoltage); res[6] = (byte)(MSB_MASK & mOutputVoltage); res[6] = (byte)((MSB_MASK & mOutputVoltage) >> 8); res[7] = (byte)(LSB_MASK & mOutputCurrent); res[8] = (byte)(MSB_MASK & mOutputCurrent); res[8] = (byte)((MSB_MASK & mOutputCurrent) >> 8); res[9] = mTemperature; res[10] = (byte)(LSB_MASK & mMinRectVoltageDyn); res[11] = (byte)(MSB_MASK & mMinRectVoltageDyn); res[12] = (byte)(LSB_MASK & mMaxRectVoltageDyn); res[13] = (byte)(MSB_MASK & mMaxRectVoltageDyn); res[14] = (byte)(LSB_MASK & mSetRectVoltageDyn); res[15] = (byte)(MSB_MASK & mSetRectVoltageDyn); res[11] = (byte)((MSB_MASK & mMinRectVoltageDyn) >> 8); res[12] = (byte)(LSB_MASK & mSetRectVoltageDyn); res[13] = (byte)((MSB_MASK & mSetRectVoltageDyn) >> 8); res[14] = (byte)(LSB_MASK & mMaxRectVoltageDyn); res[15] = (byte)((MSB_MASK & mMaxRectVoltageDyn) >> 8); if((mAlert & 0x40) == 0x40) { res[16] = (byte)(mAlert ^ 0x40); } else { res[16] = mAlert; } Log.i(LOGTAG, "mPruDynamicParam.getValue" + res); Log.i(LOGTAG, "mPruDynamicParam.getValue"); return res; } void resetValues() { mOptValidity = 0x00; mRectVoltage = 0x00; mRectCurrent = 0x00; mOutputVoltage = 0x00; mOutputCurrent = 0x00; mTemperature = 0x00; mMinRectVoltageDyn = 0x00; mMaxRectVoltageDyn = 0x00; mSetRectVoltageDyn = 0x00; mAlert = 0x00; mReserved1 = 0x00; mReserved2 = 0x00; } public static short toUnsigned(byte b) { return (short)(b & 0xff); } public static short VREG_ADC_TO_mV(short adc){ return (short)((adc)*(VREG_ADC_TO_mV_RATIO)); } public static short IREG_ADC_TO_mA(short adc) { return (short)((adc)*(IREG_ADC_TO_mA_RATIO)); } /** * {@hide} * Sets the PRU dynamic parameter values in bytes Loading @@ -134,24 +176,72 @@ public class WipowerDynamicParam { * @return none */ public void setValue(byte[] value) { short tempmRectVoltage = 0x0000; short tempmRectCurrent = 0x0000; tempmRectVoltage = (short)toUnsigned(value[1]); tempmRectVoltage |= (short)(toUnsigned(value[2]) << 8); tempmRectCurrent = (short)toUnsigned(value[3]); tempmRectCurrent |= (short)(toUnsigned(value[4]) << 8); Log.i(LOGTAG, "tempmRectVoltage: " + tempmRectVoltage + "tempmRectCurrent: " + tempmRectCurrent); resetValues(); mOptValidity = value[0]; mRectVoltage = (short)(VREG_ADC_TO_mV(tempmRectVoltage)); mRectCurrent = (short)(IREG_ADC_TO_mA(tempmRectCurrent)); mOutputVoltage = (short)toUnsigned(value[5]); mOutputVoltage |= (short)(toUnsigned(value[6]) << 8); mOutputCurrent = (short)toUnsigned(value[7]); mOutputCurrent |= (short)(toUnsigned(value[8]) << 8); mTemperature = value[9]; mMinRectVoltageDyn = (short)toUnsigned(value[10]); mMinRectVoltageDyn |= (short)(toUnsigned(value[11]) << 8); mSetRectVoltageDyn = (short)toUnsigned(value[12]); mSetRectVoltageDyn |= (short)(toUnsigned(value[13]) << 8); mMaxRectVoltageDyn = (short)toUnsigned(value[14]); mMaxRectVoltageDyn |= (short)(toUnsigned(value[15]) << 8); mAlert = value[16]; mReserved1 = (short)(toUnsigned(value[17])); mReserved1 = (short)(toUnsigned(value[18]) << 8); mReserved2 = value[19]; Log.i(LOGTAG, "mPruDynamicParam.setValue"); print(); return; } /** * {@hide} * Sets the PRU dynamic parameter values for A4WP App in bytes * * @return none */ public void setAppValue(byte[] value) { resetValues(); mOptValidity = value[0]; mRectVoltage = value[1]; mRectVoltage |= (short)(8<<value[2]); mRectCurrent = value[3]; mRectCurrent |= (short)(8<<value[4]); mOutputVoltage = value[5]; mOutputVoltage |= (short)(8<<value[6]); mOutputCurrent = value[7]; mOutputCurrent |= (short)(8<<value[8]); mRectVoltage = (short)toUnsigned(value[1]); mRectVoltage |= (short)(toUnsigned(value[2]) << 8); mRectCurrent = (short)toUnsigned(value[3]); mRectCurrent |= (short)(toUnsigned(value[4]) << 8); mOutputVoltage = (short)toUnsigned(value[5]); mOutputVoltage |= (short)(toUnsigned(value[6]) << 8); mOutputCurrent = (short)toUnsigned(value[7]); mOutputCurrent |= (short)(toUnsigned(value[8]) << 8); mTemperature = value[9]; mMinRectVoltageDyn = value[10]; mMinRectVoltageDyn = (short)(8<<value[11]); mMaxRectVoltageDyn = value[12]; mMaxRectVoltageDyn |= (short)(8<<value[13]); mSetRectVoltageDyn = value[14]; mSetRectVoltageDyn |= (short)(8<<value[15]); mMinRectVoltageDyn = (short)toUnsigned(value[10]); mMinRectVoltageDyn |= (short)(toUnsigned(value[11]) << 8); mSetRectVoltageDyn = (short)toUnsigned(value[12]); mSetRectVoltageDyn |= (short)(toUnsigned(value[13]) << 8); mMaxRectVoltageDyn = (short)toUnsigned(value[14]); mMaxRectVoltageDyn |= (short)(toUnsigned(value[15]) << 8); mAlert = value[16]; mReserved1 = (short)(toUnsigned(value[17])); mReserved1 = (short)(toUnsigned(value[18]) << 8); mReserved2 = value[19]; Log.i(LOGTAG, "mPruDynamicParam.setAppValue"); print(); return; } } Loading
core/java/android/wipower/WipowerManager.java +40 −7 Original line number Diff line number Diff line Loading @@ -54,7 +54,7 @@ import android.os.SystemProperties; public final class WipowerManager { private static final String TAG = "WipowerManager"; private static final boolean DBG = true; private static final boolean VDBG = true; private static final boolean VDBG = false; private static IWipower mService; private static ArrayList<WipowerManagerCallback> mCallbacks; Loading Loading @@ -100,6 +100,15 @@ public final class WipowerManager { ON }; /** * Wipower power applied event * {@hide} */ public enum PowerApplyEvent { OFF, ON }; /* helper function to invoke callbacks to application layer*/ void updateWipowerState(WipowerState state){ if (mCallbacks != null) { Loading Loading @@ -133,11 +142,22 @@ public final class WipowerManager { } } void updatePowerApplyAlert(PowerApplyEvent alert){ if (mCallbacks != null) { int n = mCallbacks.size(); if (VDBG) Log.v(TAG,"Broadcasting updatePowerApplyAlert() to " + n + " receivers."); for (int i = 0; i < n; i++) { mCallbacks.get(i).onPowerApply(alert); } } } /* helper function to invoke callbacks to application layer*/ void updateWipowerReady(){ if (mCallbacks != null) { int n = mCallbacks.size(); Log.v(TAG,"Broadcasting updateWipowerReady " + n + " receivers."); if (VDBG) Log.v(TAG,"Broadcasting updateWipowerReady " + n + " receivers."); for (int i = 0; i < n; i++) { mCallbacks.get(i).onWipowerReady(); } Loading Loading @@ -169,11 +189,24 @@ public final class WipowerManager { } public void onPowerApply(byte alert) { PowerApplyEvent s; if (alert == 0x1) { s = PowerApplyEvent.ON; } else { s = PowerApplyEvent.OFF; } if (VDBG) Log.v(TAG, "onPowerApply: alert" + alert); updatePowerApplyAlert(s); } public void onWipowerData(byte[] value) { Log.v(TAG, "onWipowerData: " + value); if (mPruData != null) { mPruData.setValue(value); mPruData.print(); updateWipowerData(mPruData); } else { Log.e(TAG, "mPruData is null"); Loading Loading @@ -241,7 +274,6 @@ public final class WipowerManager { Log.v(TAG, "Bound to Wipower Service"); mPruData = new WipowerDynamicParam(); mCallbacks = new ArrayList<WipowerManagerCallback>(); mCallbacks.add(callback); } static boolean isWipowerSupported() { Loading Loading @@ -340,9 +372,9 @@ public final class WipowerManager { Log.e(TAG, " Wipower Service not available"); } else { byte level = 0; if( powerlevel == PowerLevel.POWER_LEVEL_MINIMUM) level = 0; else if( powerlevel == PowerLevel.POWER_LEVEL_MEDIUM) level = 1; else if( powerlevel == PowerLevel.POWER_LEVEL_MAXIMUM) level = 2; if( powerlevel == PowerLevel.POWER_LEVEL_MINIMUM) level = (31/3); else if( powerlevel == PowerLevel.POWER_LEVEL_MEDIUM) level = ((31/3) * 2); else if( powerlevel == PowerLevel.POWER_LEVEL_MAXIMUM) level = 31; try { ret = mService.setCurrentLimit(level); } catch (android.os.RemoteException e) { Loading Loading @@ -451,6 +483,7 @@ public final class WipowerManager { * {@hide} */ public void registerCallback(WipowerManagerCallback callback) { if (VDBG) Log.v(TAG, "registerCallback:Service called"); if (mService == null) { Log.e(TAG, "registerCallback:Service not available"); } Loading
core/java/android/wipower/WipowerManagerCallback.java +11 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ package android.wipower; import android.wipower.WipowerManager.WipowerState; import android.wipower.WipowerManager.WipowerAlert; import android.wipower.WipowerManager.PowerApplyEvent; /** * Application level callback for Wipower manager APIs. Loading Loading @@ -76,4 +77,14 @@ public interface WipowerManagerCallback * {@hide} */ void onWipowerData(WipowerDynamicParam value); /** * Indicates the Wipower Alert * * @param {@link WipowerAlert} * * {@hide} */ void onPowerApply(PowerApplyEvent alert); }