* Demonstrates some basic types that you can use as parameters
* and return values in AIDL.
*/
- void updateCurrTempValue(double value,double animal);
- void updateResultTempValue(double value,double animal);
+ void updateCurrTempValue(double value,double animal,double tempOut);
+ void updateResultTempValue(double value,double animal,double tempOut);
}
public static final String ACTION_TEMP_RESULT = "com.ic.action.temp_result";
public static final String KEY_TEMP_BODY = "body"; // double 体温
public static final String KEY_TEMP_WRIST = "wrist"; // double 腕温
+ public static final String KEY_TEMP_OUT = "out"; // double 腕温
private static final String TXT_ACTION = "action.ic.srvPushTxt";
private static final String TYPE_KEY = "msgType";
}
//发送一次广播给 心率 launcher
- sendHeartBroadcast(event.getHeart());
+ sendHeartBroadcast(event.getHeart(),event.getOxygen());
}
@Subscribe(threadMode = ThreadMode.MAIN)
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(TemperatureResultEvent event) {
if (tempProcess != null) {
- tempProcess.sendCurrTempValue(event.value, event.animal);
+ tempProcess.sendCurrTempValue(event.value, event.animal,event.tempOut);
}
if (akProcess != null) {
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(TemperatureResultCompleteEvent event) {
- sendTempBroadcast(event.value, event.animal);
+ sendTempBroadcast(event.value, event.animal,event.tempOut);
if (tempProcess != null) {
- tempProcess.sendResultTempValue(event.value, event.animal);
+ tempProcess.sendResultTempValue(event.value, event.animal,event.tempOut);
}
if (akProcess != null) {
}
//发送一次广播给 心率 launcher
- sendHeartBroadcast(event.heart);
+ sendHeartBroadcast(event.heart,event.oxygen);
}
@Subscribe(threadMode = ThreadMode.MAIN)
//testBatteryBroadcast(this,"ddddddddddddtttttttttttttttttttttttt");
}
- private void sendHeartBroadcast(int count) {
+ private void sendHeartBroadcast(int count,int spo2) {
Intent pedIntent = new Intent();
pedIntent.setAction(HEART_ACTION);
pedIntent.putExtra("BLOOD_HEART", count);
- Log.i(TAG,"sendHeartBroadcast "+HEART_ACTION+" BLOOD_HEART "+count);
+ pedIntent.putExtra("BLOOD_SPO2", spo2);
+ Log.i(TAG,"sendHeartBroadcast "+HEART_ACTION+" BLOOD_HEART "+count+" BLOOD_SPO2 "+spo2);
sendBroadcast(pedIntent);
}
- private void sendTempBroadcast(double value, double animal) {
+ private void sendTempBroadcast(double value, double animal,double tempOut) {
Intent pedIntent = new Intent();
pedIntent.setAction(ACTION_TEMP_RESULT);
pedIntent.putExtra(KEY_TEMP_WRIST, value);
pedIntent.putExtra(KEY_TEMP_BODY, animal);
+ pedIntent.putExtra(KEY_TEMP_OUT, tempOut);
sendBroadcast(pedIntent);
}
public class TemperatureResultCompleteEvent {
public double value;
public double animal;
+ public double tempOut;
- public TemperatureResultCompleteEvent(double value, double animal) {
+ public TemperatureResultCompleteEvent(double value, double animal,double tempOut) {
this.value = value;
this.animal = animal;
+ this.tempOut = tempOut;
}
}
public class TemperatureResultEvent {
public double value;
public double animal;
+ public double tempOut;
- public TemperatureResultEvent(double value, double animal) {
+
+ public TemperatureResultEvent(double value, double animal,double tempOut) {
this.value = value;
this.animal = animal;
+ this.tempOut = tempOut;
}
}
public void run() {
double testValue = 0.0;
double animal = 0.0;
- int delay_times_in_seconds=20;
+ double tempout = 0.0;
+ int delay_times_in_seconds=10;
boolean[] state = HardwareUtils.isTemperatureDevAvailable();
IcLog.i(TAG, "TemperatureRunnable :"+state[0]+" state[1]:"+state[1]);
if(state[0]) { //have temp
// }
while (true) {
testValue = HardwareUtils.getNdkTemperatureValue();
- animal = HardwareUtils.getBodyTempFromWristTemp(testValue, room_temperature);
- IcLog.i(TAG, "getNdkTemperatureValue Value:" + testValue);
- EventBus.getDefault().post(new TemperatureResultEvent(testValue, animal));
+ tempout = HardwareUtils.getNdkTemperatureOutValue();
+ if (tempout<0 || tempout > 60 )
+ tempout=0;
+ if(tempout>0 ){
+ animal = HardwareUtils.getBodyTempFromWristTemp(testValue, tempout);
+ }else {
+ animal = HardwareUtils.getBodyTempFromWristTemp(testValue, room_temperature);
+ }
+ IcLog.i(TAG, "getNdkTemperatureValue Value:" + testValue + " TempOut:"+tempout+" bodyTemp:"+animal);
+ EventBus.getDefault().post(new TemperatureResultEvent(testValue, animal,tempout));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
- EventBus.getDefault().post(new TemperatureResultCompleteEvent(testValue, animal));
+ EventBus.getDefault().post(new TemperatureResultCompleteEvent(testValue, animal,tempout));
}
public static double div(double value1, int value2, int scale) {
}
};
- public void sendCurrTempValue(double value,double animal) {
+ public void sendCurrTempValue(double value,double animal,double tempOut) {
int N = 0;
IcLog.d(TAG, "sendCurrTempValue "+value);
try {
N = mCallbacks.beginBroadcast();
for (int i = 0; i < N; i++) {
- mCallbacks.getBroadcastItem(i).updateCurrTempValue(value,animal);
+ mCallbacks.getBroadcastItem(i).updateCurrTempValue(value,animal,tempOut);
}
} catch (NullPointerException e) {
IcLog.e(TAG, "",e);
}
}
- public void sendResultTempValue(double value,double animal) {
+ public void sendResultTempValue(double value,double animal,double tempOut) {
int N = 0;
try {
N = mCallbacks.beginBroadcast();
for (int i = 0; i < N; i++) {
- mCallbacks.getBroadcastItem(i).updateResultTempValue(value,animal);
+ mCallbacks.getBroadcastItem(i).updateResultTempValue(value,animal,tempOut);
}
} catch (NullPointerException e) {
IcLog.e(TAG, "",e);
return 0;
}
}
-
+ public static double getNdkTemperatureOutValue() {
+ try {
+ return ICJniUtils.getTemperatureOrigin();
+ } catch (Exception e) {
+ IcLog.e(TAG, "",e);
+ return 0;
+ }
+ }
public static double getBodyTempFromWristTemp(double wrist_temp,double ref_temp) {
try {
return ICJniUtils.getBodyTempFromWristTemp(wrist_temp,ref_temp);