| import android.widget.ListView; | import android.widget.ListView; | ||||
| import android.widget.TextView; | import android.widget.TextView; | ||||
| import androidx.annotation.NonNull; | |||||
| import androidx.annotation.Nullable; | |||||
| import com.pingwang.bluetoothlib.bean.BleValueBean; | import com.pingwang.bluetoothlib.bean.BleValueBean; | ||||
| import com.pingwang.bluetoothlib.bean.SupportUnitBean; | import com.pingwang.bluetoothlib.bean.SupportUnitBean; | ||||
| import com.pingwang.bluetoothlib.device.BleDevice; | import com.pingwang.bluetoothlib.device.BleDevice; | ||||
| import com.pingwang.bluetoothlib.listener.OnCallbackBle; | import com.pingwang.bluetoothlib.listener.OnCallbackBle; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.base.BleBaseActivity; | |||||
| import java.lang.ref.WeakReference; | import java.lang.ref.WeakReference; | ||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.List; | import java.util.List; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.base.BleBaseActivity; | |||||
| import androidx.annotation.NonNull; | |||||
| import androidx.annotation.Nullable; | |||||
| import cn.net.aicare.modulelibrary.module.HeightWeightScale.HeightBodyFatBleData; | import cn.net.aicare.modulelibrary.module.HeightWeightScale.HeightBodyFatBleData; | ||||
| import cn.net.aicare.modulelibrary.module.HeightWeightScale.HeightBodyFatBleUntils; | import cn.net.aicare.modulelibrary.module.HeightWeightScale.HeightBodyFatBleUntils; | ||||
| } | } | ||||
| @Override | @Override | ||||
| public void onAdc(int workMode, int status, int adcType, int adc, int arithmetic) { | |||||
| public void onAdc(int workMode, int status, int adcType, long adc, int arithmetic) { | |||||
| mMHandler.removeMessages(ADC); | mMHandler.removeMessages(ADC); | ||||
| logList.add(0, "阻抗数据 模式:" + workMode + " 测量状态: " + status + "\n 阻抗类型: " + adcType | logList.add(0, "阻抗数据 模式:" + workMode + " 测量状态: " + status + "\n 阻抗类型: " + adcType | ||||
| + " 阻抗: " + adc + " 算法位: " + arithmetic); | + " 阻抗: " + adc + " 算法位: " + arithmetic); | ||||
| listAdapter.notifyDataSetChanged(); | listAdapter.notifyDataSetChanged(); | ||||
| } | } | ||||
| @Override | @Override | ||||
| public void onHeart(int workMode, int status, int heart) { | public void onHeart(int workMode, int status, int heart) { | ||||
| logList.add(0, "心率数据 模式:" + workMode + " 测量状态: " + status + " 心率: " + heart); | logList.add(0, "心率数据 模式:" + workMode + " 测量状态: " + status + " 心率: " + heart); | 
| import com.pingwang.bluetoothlib.device.BleDevice; | import com.pingwang.bluetoothlib.device.BleDevice; | ||||
| import com.pingwang.bluetoothlib.listener.OnBleHandshakeListener; | import com.pingwang.bluetoothlib.listener.OnBleHandshakeListener; | ||||
| import com.pingwang.bluetoothlib.listener.OnCallbackBle; | import com.pingwang.bluetoothlib.listener.OnCallbackBle; | ||||
| import java.util.ArrayList; | |||||
| import java.util.List; | |||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.base.BleAppBaseActivity; | import aicare.net.cn.sdk.ailinksdkdemoandroid.base.BleAppBaseActivity; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.dialog.DialogStringImageAdapter; | import aicare.net.cn.sdk.ailinksdkdemoandroid.dialog.DialogStringImageAdapter; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.dialog.ShowListDialogFragment; | import aicare.net.cn.sdk.ailinksdkdemoandroid.dialog.ShowListDialogFragment; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.L; | import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.L; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.MyBleStrUtils; | import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.MyBleStrUtils; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.TimeUtils; | import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.TimeUtils; | ||||
| import java.util.ArrayList; | |||||
| import java.util.List; | |||||
| import butterknife.BindView; | import butterknife.BindView; | ||||
| import cn.net.aicare.modulelibrary.module.scooter.BleWeatherBean; | import cn.net.aicare.modulelibrary.module.scooter.BleWeatherBean; | ||||
| import cn.net.aicare.modulelibrary.module.scooter.OnScooterBleOTAListener; | |||||
| import cn.net.aicare.modulelibrary.module.scooter.SkateboardBleConfig; | import cn.net.aicare.modulelibrary.module.scooter.SkateboardBleConfig; | ||||
| import cn.net.aicare.modulelibrary.module.scooter.SkateboardDevice; | import cn.net.aicare.modulelibrary.module.scooter.SkateboardDevice; | ||||
| * 滑板车界面 | * 滑板车界面 | ||||
| */ | */ | ||||
| public class SkateboardDataActivity extends BleAppBaseActivity implements OnCallbackBle, View.OnClickListener, SkateboardDevice.onNotifyData, | public class SkateboardDataActivity extends BleAppBaseActivity implements OnCallbackBle, View.OnClickListener, SkateboardDevice.onNotifyData, | ||||
| RtkOtaManager.OnRtkOtaInfoListener, ShowListDialogFragment.onDialogListener, OnBleHandshakeListener { | |||||
| RtkOtaManager.OnRtkOtaInfoListener, ShowListDialogFragment.onDialogListener, OnBleHandshakeListener , OnScooterBleOTAListener { | |||||
| private final int REFRESH_DATA = 1; | private final int REFRESH_DATA = 1; | ||||
| // mRtkOtaManager.startOta(mRtkOtaType, step); | // mRtkOtaManager.startOta(mRtkOtaType, step); | ||||
| } else if (mDevice != null) { | } else if (mDevice != null) { | ||||
| mDevice.setOnBleOTAListener(SkateboardDataActivity.this); | |||||
| mDevice.setOnScooterBleOTAListener(SkateboardDataActivity.this); | |||||
| mDevice.setUpdateData(byFileName, mOTAType, mOTAScope); | mDevice.setUpdateData(byFileName, mOTAType, mOTAScope); | ||||
| } | } | ||||
| } | } | 
| import com.pingwang.bluetoothlib.utils.BleDensityUtil; | import com.pingwang.bluetoothlib.utils.BleDensityUtil; | ||||
| import com.pingwang.bluetoothlib.utils.BleLog; | import com.pingwang.bluetoothlib.utils.BleLog; | ||||
| import com.pingwang.bluetoothlib.utils.BleStrUtils; | import com.pingwang.bluetoothlib.utils.BleStrUtils; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.base.BleBaseActivity; | |||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.TimeUtils; | |||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.List; | import java.util.List; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.base.BleBaseActivity; | |||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.utils.TimeUtils; | |||||
| import androidx.annotation.NonNull; | import androidx.annotation.NonNull; | ||||
| import androidx.annotation.Nullable; | import androidx.annotation.Nullable; | ||||
| import cn.net.aicare.modulelibrary.module.sphygmomanometer.SphyBleConfig; | import cn.net.aicare.modulelibrary.module.sphygmomanometer.SphyBleConfig; | ||||
| @Override | @Override | ||||
| public void onData(byte[] status, int type) { | public void onData(byte[] status, int type) { | ||||
| String data = ""; | String data = ""; | ||||
| if (status != null) | |||||
| if (status != null) { | |||||
| data = BleStrUtils.byte2HexStr(status); | data = BleStrUtils.byte2HexStr(status); | ||||
| } | |||||
| if (type == 100) { | if (type == 100) { | ||||
| mList.add(TimeUtils.getTime() + "send->" + data); | mList.add(TimeUtils.getTime() + "send->" + data); | ||||
| } else { | } else { | ||||
| mHandler.sendEmptyMessage(REFRESH_DATA); | mHandler.sendEmptyMessage(REFRESH_DATA); | ||||
| } | } | ||||
| @Override | |||||
| public void getSphyVoice(byte cmd) { | |||||
| } | |||||
| @Override | @Override | ||||
| public void sphyDataNow(int dia, int sys, int decimal, int pul, int unit) { | public void sphyDataNow(int dia, int sys, int decimal, int pul, int unit) { | ||||
| String diaStr = BleDensityUtil.getInstance().holdDecimals(dia, decimal); | String diaStr = BleDensityUtil.getInstance().holdDecimals(dia, decimal); | 
| } | } | ||||
| @Override | |||||
| public void onHistoryNum(long allNum, long sendNum) { | |||||
| } | |||||
| @Override | |||||
| public void onHistory(long time, byte[] value) { | |||||
| } | |||||
| @Override | |||||
| public void onHistoryLast(long time) { | |||||
| } | |||||
| @Override | |||||
| public void onDelHistory(int result) { | |||||
| } | |||||
| @Override | @Override | ||||
| public void onData(byte[] status,int type) { | public void onData(byte[] status,int type) { | ||||
| String data = ""; | String data = ""; | 
| import android.widget.ListView; | import android.widget.ListView; | ||||
| import android.widget.RadioButton; | import android.widget.RadioButton; | ||||
| import androidx.annotation.Nullable; | |||||
| import com.pingwang.bluetoothlib.bean.BleValueBean; | import com.pingwang.bluetoothlib.bean.BleValueBean; | ||||
| import com.pingwang.bluetoothlib.config.CmdConfig; | import com.pingwang.bluetoothlib.config.CmdConfig; | ||||
| import com.pingwang.bluetoothlib.device.BleDevice; | import com.pingwang.bluetoothlib.device.BleDevice; | ||||
| import com.pingwang.bluetoothlib.device.SendBleBean; | import com.pingwang.bluetoothlib.device.SendBleBean; | ||||
| import com.pingwang.bluetoothlib.listener.OnCallbackBle; | import com.pingwang.bluetoothlib.listener.OnCallbackBle; | ||||
| import com.pingwang.bluetoothlib.utils.BleStrUtils; | import com.pingwang.bluetoothlib.utils.BleStrUtils; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.base.BleBaseActivity; | |||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.config.BleDeviceConfig; | |||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.dialog.AddUserDialog; | |||||
| import java.lang.ref.WeakReference; | import java.lang.ref.WeakReference; | ||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.List; | import java.util.List; | ||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.base.BleBaseActivity; | |||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.config.BleDeviceConfig; | |||||
| import aicare.net.cn.sdk.ailinksdkdemoandroid.dialog.AddUserDialog; | |||||
| import androidx.annotation.Nullable; | |||||
| import cn.net.aicare.modulelibrary.module.BodyFatScale.AppHistoryRecordBean; | import cn.net.aicare.modulelibrary.module.BodyFatScale.AppHistoryRecordBean; | ||||
| import cn.net.aicare.modulelibrary.module.BodyFatScale.BodyFatBleUtilsData; | import cn.net.aicare.modulelibrary.module.BodyFatScale.BodyFatBleUtilsData; | ||||
| import cn.net.aicare.modulelibrary.module.BodyFatScale.BodyFatDataUtil; | import cn.net.aicare.modulelibrary.module.BodyFatScale.BodyFatDataUtil; | ||||
| @Override | @Override | ||||
| public void requestSynTime() { | public void requestSynTime() { | ||||
| mlogList.add(0, "同步时间"); | mlogList.add(0, "同步时间"); | ||||
| if (bodyFatBleUtilsData != null) | |||||
| if (bodyFatBleUtilsData != null) { | |||||
| bodyFatBleUtilsData.sendData(BodyFatDataUtil.getInstance().synTime()); | bodyFatBleUtilsData.sendData(BodyFatDataUtil.getInstance().synTime()); | ||||
| } | |||||
| } | } | ||||
| @Override | @Override | ||||
| msg = msg + status + " 成功"; | msg = msg + status + " 成功"; | ||||
| } else if (status == BodyFatDataUtil.STATUS_FAIL) { | } else if (status == BodyFatDataUtil.STATUS_FAIL) { | ||||
| msg = msg + status + " 失败"; | msg = msg + status + " 失败"; | ||||
| } else if (status == BodyFatDataUtil.STATUS_NOSUPORT) { | |||||
| } else if (status == BodyFatDataUtil.STATUS_NOT_SUPPORT) { | |||||
| msg = msg + status + " 不支持"; | msg = msg + status + " 不支持"; | ||||
| } | } | ||||
| mlogList.add(0, msg); | mlogList.add(0, msg); | 
| import android.widget.Toast; | import android.widget.Toast; | ||||
| import com.elinkthings.bleotalibrary.listener.OnBleOTAListener; | import com.elinkthings.bleotalibrary.listener.OnBleOTAListener; | ||||
| import com.elinkthings.bleotalibrary.netstrap.OPLOtaManager; | |||||
| import com.pingwang.bluetoothlib.bean.BleValueBean; | import com.pingwang.bluetoothlib.bean.BleValueBean; | ||||
| import com.pingwang.bluetoothlib.config.CmdConfig; | import com.pingwang.bluetoothlib.config.CmdConfig; | ||||
| import com.pingwang.bluetoothlib.device.BleDevice; | import com.pingwang.bluetoothlib.device.BleDevice; | ||||
| msg = msg + status + " 成功"; | msg = msg + status + " 成功"; | ||||
| } else if (status == BodyFatDataUtil.STATUS_FAIL) { | } else if (status == BodyFatDataUtil.STATUS_FAIL) { | ||||
| msg = msg + status + " 失败"; | msg = msg + status + " 失败"; | ||||
| } else if (status == BodyFatDataUtil.STATUS_NOSUPORT) { | |||||
| } else if (status == BodyFatDataUtil.STATUS_NOT_SUPPORT) { | |||||
| msg = msg + status + " 不支持"; | msg = msg + status + " 不支持"; | ||||
| } | } | ||||
| mList.add(0, msg); | mList.add(0, msg); | ||||
| String path = uri.getPath(); | String path = uri.getPath(); | ||||
| mList.add(0, "ota准备就绪,请勿操作"); | mList.add(0, "ota准备就绪,请勿操作"); | ||||
| listAdapter.notifyDataSetChanged(); | listAdapter.notifyDataSetChanged(); | ||||
| bodyFatBleUtilsData.initOtaUtil(this, uri, new OnBleOTAListener() { | |||||
| OPLOtaManager build = OPLOtaManager.newBuilder(this).setFilePath(uri).setOnBleOTAListener(new OnBleOTAListener() { | |||||
| @Override | @Override | ||||
| public void onOtaSuccess() { | public void onOtaSuccess() { | ||||
| mList.add(0, "ota成功"); | mList.add(0, "ota成功"); | ||||
| listAdapter.notifyDataSetChanged(); | listAdapter.notifyDataSetChanged(); | ||||
| } | } | ||||
| } | } | ||||
| }); | |||||
| } else { | |||||
| }).build(bodyFatBleUtilsData.getBleDevice()); | |||||
| build.startOta(); | |||||
| } | } | ||||
| } | } | ||||