-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.1","enabled":true,"outputFile":"IcL02WorkService_V59_202105291708_release.apk","fullName":"IcL02WorkServiceRelease","baseName":"IcL02WorkService-release"},"path":"IcL02WorkService_V59_202105291708_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.1","enabled":true,"outputFile":"IcL02WorkService_V59_202106171726_release.apk","fullName":"IcL02WorkServiceRelease","baseName":"IcL02WorkService-release"},"path":"IcL02WorkService_V59_202106171726_release.apk","properties":{}}]
\ No newline at end of file
public void setDate(String date) {
this.date = date;
}
+
+ @Override
+ public String toString() {
+ return "RecordParcelable{" +
+ "number=" + number +
+ ", distance='" + distance + '\'' +
+ ", calorie='" + calorie + '\'' +
+ ", date='" + date + '\'' +
+ '}';
+ }
}
mIsBusy = true;
switch (eventType) {
case TEST_STEP://脚步
- ThreadPoolManager.getInstance().execute(new PedRunnable(mApp.getApplicationContext(), mApp.getRepository()));
+ ThreadPoolManager.getInstance().execute(new PedRunnable(mApp.getApplicationContext(),
+ mApp.getRepository()));
break;
case STEP_RECORD:
ThreadPoolManager.getInstance().execute(new PedRecordRunnable(mApp.getRepository()));
+ "spo2= " + values[3]
+ "Weared= " + values[4]
);
-
ndkHeart = (int) values[0];//调用底层函数保证状态更新。
ndkHigh = (int) values[1];
ndkLow = (int) values[2];
package com.ic.work.hardware;
+import android.content.ContentValues;
import android.content.Context;
+import android.net.Uri;
+import com.ic.work.SensorDataService;
import com.ic.work.db.PedInjection;
import com.ic.work.db.entity.PedEntity;
import com.ic.work.utils.PedUtil;
public class PedBaseRunnable {
+ private final Context mContext;
private PedInjection mPedInjection;
private int mHeight;
private int mWeight;
protected PedBaseRunnable(Context context, PedInjection pedInjection) {
mPedInjection = pedInjection;
+ this.mContext = context;
mHeight = SPUtils.getPedHeightSP(context);
mWeight = SPUtils.getPedWighttSP(context);
}
return mPedInjection.queryDBPedCount();
}
- private List<PedEntity> queryTimePedEntity(OffsetDateTime time){
+ private List<PedEntity> queryTimePedEntity(OffsetDateTime time) {
return mPedInjection.queryDBPedDate(time);
}
protected void updateDBPedEntity(PedEntity entity) {
int number = entity.getPedNumber();
+ //更新到全局公用数据中去
+ ContentValues contentValues = new ContentValues();
+ contentValues.put("s_key", "sport_step_count");
+ contentValues.put("s_value", number);
+ mContext.getContentResolver().insert(
+ Uri.parse(SensorDataService.SETTINGS), contentValues
+ );
entity.setPedDistance(getDistanceValue(number));
entity.setPedCalorie(getCalorieValue(number));
mPedInjection.updateDBPedDate(entity);
}
- protected void updateCountDB(int ped,OffsetDateTime dateTime){
+ protected void updateCountDB(int ped, OffsetDateTime dateTime) {
if (isCheckPedInjection()) {
return;
}
int size = queryDBPedCount();
- if(size == 0){
+ if (size == 0) {
//如果数据库中无记录,把当前数据插入到数据库中
insertDBPedEntity(ped, dateTime, size);
- }else {
+ } else {
//2.去查询数据中是否有记录。
List<PedEntity> todayPed = queryTimePedEntity(dateTime);
if (todayPed != null && todayPed.size() > 0) {
entity.setPedDistance(getDistanceValue(number));
entity.setPedCalorie(getCalorieValue(number));
entity.setPedDate(date);
-
return entity;
}
private String getCalorieValue(int number) {
BigDecimal bg = new BigDecimal(PedUtil.calcConsumeEnergy(mHeight, mWeight, number));
- return String.valueOf(bg.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue());
+ String value = String.valueOf(bg.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue());
+ //保存一份到数据库中
+ ContentValues contentValues = new ContentValues();
+ contentValues.put("s_key", "sport_calorie_value");
+ contentValues.put("s_value", value);
+ mContext.getContentResolver().insert(Uri.parse(SensorDataService.SETTINGS), contentValues);
+ return value;
}
private String getDistanceValue(int number) {
import com.ic.work.db.entity.PedEntity;
import com.ic.work.event.PedRecordResultEvent;
import com.ic.work.event.TaskFinishedEvent;
+import com.ic.work.utils.ICLogger;
import org.greenrobot.eventbus.EventBus;
import org.threeten.bp.format.DateTimeFormatter;
@Override
public void run() {
- List<PedEntity> query = mPedDb.queryDBPedAllList();
- List<RecordParcelable> recordList = new ArrayList<>();
- for (int i=0; i< query.size(); i++){
- RecordParcelable recordP = new RecordParcelable();
- recordP.setNumber(query.get(i).getPedNumber());
- recordP.setCalorie(query.get(i).getPedCalorie());
- recordP.setDistance(query.get(i).getPedDistance());
- recordP.setDate(query.get(i).getPedDate().format(formatter));
-
- recordList.add(recordP);
- }
- //发送数据到主线程
+ List<PedEntity> query = mPedDb.queryDBPedAllList();
+ List<RecordParcelable> recordList = new ArrayList<>();
+ for (int i = 0; i < query.size(); i++) {
+ RecordParcelable recordP = new RecordParcelable();
+ recordP.setNumber(query.get(i).getPedNumber());
+ recordP.setCalorie(query.get(i).getPedCalorie());
+ recordP.setDistance(query.get(i).getPedDistance());
+ recordP.setDate(query.get(i).getPedDate().format(formatter));
+ ICLogger.d("recordP == > " + recordP.toString());
+ recordList.add(recordP);
+ }
+ //发送数据到主线程
EventBus.getDefault().post(new PedRecordResultEvent(recordList));
//add by TrillGates notify task finished.
EventBus.getDefault().post(new TaskFinishedEvent());
}
+
+ public static double l56A(double bodyTemp, double innerTemp) {
+ double dx;
+ if (innerTemp <= 40.5f) {
+ dx = 0.7229f * innerTemp - 24.707f;
+ } else if (innerTemp > 40.5f && innerTemp <= 42.15) {
+ dx = 0.742f * innerTemp - 25.4852f;
+ } else {
+ dx = 5.77f;
+ }
+ return bodyTemp - dx;
+ }
+
+
}
if ("l004pt".equals(property)) {
double bodyTempResult = AlgorithmUtils.l004Pt(bodyTemp, evnTemp);
ICLogger.d("bodyTempResult == > " + bodyTempResult);
+ //这个是换算后的腕温
+ bodyTemp = bodyTempResult;
if (bodyTempResult != -1) {
//越接近34.1越准确
ICLogger.d("bodyTempResult == > " + bodyTempResult);
IcLog.d(TAG, "evnTemp == > " + evnTemp + " resultEnvTemp = > " + resultEnvTemp);
IcLog.d(TAG, "bodyTemp == > " + bodyTemp + " resultBodyTemp = > " + lastBodyTemp);
+ } else if ("L56A".equals(property)) {
+ double bodyTempResult = AlgorithmUtils.l56A(bodyTemp, evnTemp);
+ bodyTemp = bodyTempResult;
+ ICLogger.d("bodyTempResult == > " + bodyTempResult);
+ if (bodyTempResult != -1) {
+ //越接近34.1越准确
+ ICLogger.d("bodyTempResult == > " + bodyTempResult);
+ lastBodyTemp = getBodyTemp(bodyTempResult, 26.1f);
+ ICLogger.d("final body temp == > " + lastBodyTemp);
+ ICLogger.d("final wrist temp == > " + bodyTempResult);
+ }
} else {
-
- // double bodyTempResult = AlgorithmUtils.l004Pt(bodyTemp, evnTemp);
+ // double bodyTempResult = AlgorithmUtils.l004Pt(bodyTemp, evnTemp);
ICLogger.d("wrist TempResult == > " + bodyTemp);
if (bodyTemp != -1) {
//越接近34.1越准确
lastBodyTemp = getBodyTemp(bodyTemp, 26.1f);
ICLogger.d("final body temp == > " + lastBodyTemp);
-
}
}