浏览代码

更新体温计解析

master
陈福行 6 个月前
父节点
当前提交
3d5b90c3e3
共有 1 个文件被更改,包括 22 次插入65 次删除
  1. 22
    65
      app/src/main/java/aicare/net/cn/sdk/ailinksdkdemoandroid/TempCmdActivity.java

+ 22
- 65
app/src/main/java/aicare/net/cn/sdk/ailinksdkdemoandroid/TempCmdActivity.java 查看文件

import android.widget.EditText; import android.widget.EditText;
import android.widget.ListView; import android.widget.ListView;
import android.widget.RadioButton; import android.widget.RadioButton;
import android.widget.Toast;


import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
private RadioButton rb_single; private RadioButton rb_single;
private RadioButton rb_c; private RadioButton rb_c;
private EditText et_temp; private EditText et_temp;
private EditText et_history;


private int stamp = 0;// 历史记录最新一条的时间戳 private int stamp = 0;// 历史记录最新一条的时间戳


findViewById(R.id.btnBattery).setOnClickListener(this); findViewById(R.id.btnBattery).setOnClickListener(this);
findViewById(R.id.btn_get_did).setOnClickListener(this); findViewById(R.id.btn_get_did).setOnClickListener(this);
findViewById(R.id.clear).setOnClickListener(this); findViewById(R.id.clear).setOnClickListener(this);
findViewById(R.id.btnSetTime).setOnClickListener(this);
et_type = findViewById(R.id.et_type); et_type = findViewById(R.id.et_type);


btn_get_history = findViewById(R.id.btn_get_history); btn_get_history = findViewById(R.id.btn_get_history);
rb_single = findViewById(R.id.rb_single); rb_single = findViewById(R.id.rb_single);
rb_c = findViewById(R.id.rb_c); rb_c = findViewById(R.id.rb_c);
et_temp = findViewById(R.id.et_temp); et_temp = findViewById(R.id.et_temp);
et_history = findViewById(R.id.et_history);
btn_del_history = findViewById(R.id.btn_del_history); btn_del_history = findViewById(R.id.btn_del_history);


btn_get_history.setOnClickListener(this); btn_get_history.setOnClickListener(this);
break; break;
case R.id.btn_get_history: case R.id.btn_get_history:
// 读取历史记录 // 读取历史记录
// try {
// int size = Integer.parseInt(et_history.getText().toString());
// mBleDevice.getHistory(size, stamp);
// } catch (Exception ignored) {}
try {
String time = et_history.getText().toString();
if (time.isEmpty()) {
mBleDevice.getHistoryNew(0);
} else {
mBleDevice.getHistoryNew(Long.parseLong(time));
}
} catch (Exception e) {
Toast.makeText(this, "请按规则来", Toast.LENGTH_SHORT).show();
}

mBleDevice.getHistoryNew(0);
break; break;
case R.id.btn_get_mode: case R.id.btn_get_mode:
// 获取设备测温模式 // 获取设备测温模式
} }
break; break;
case R.id.btn_del_history: case R.id.btn_del_history:
mBleDevice.delHistoryNew();
mBleDevice.getHistoryNew(3);
break;

case R.id.btnSetTime:
mBleDevice.setUnixStampNew(System.currentTimeMillis());
break; break;
} }
} }
if (isDestroyed() || isFinishing()) { if (isDestroyed() || isFinishing()) {
return; return;
} }
int stamp = (int) (System.currentTimeMillis() / 1000);
long stamp = System.currentTimeMillis();
mList.add("同步Unix时间戳:" + stamp); mList.add("同步Unix时间戳:" + stamp);
mHandler.sendEmptyMessage(REFRESH_DATA); mHandler.sendEmptyMessage(REFRESH_DATA);
mBleDevice.setUnixStampNew(stamp); mBleDevice.setUnixStampNew(stamp);


//-----------------通知------------------- //-----------------通知-------------------


private long lastTime;


private class NotifyData implements TempDeviceData.onNotifyData { private class NotifyData implements TempDeviceData.onNotifyData {
@Override @Override
mHandler.sendEmptyMessage(REFRESH_DATA); mHandler.sendEmptyMessage(REFRESH_DATA);
} }


@Override
public void mcuHistory(int maxSize, int curSize, List<TempDeviceData.HistoryBean> list) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
String str = "MCU上发历史记录:\n总条数:" + maxSize + ";此次发送:" + curSize;
for (int i = 0; i < list.size(); i++) {
TempDeviceData.HistoryBean bean = list.get(i);
str += "\n";
str += i + ":" + sdf.format(bean.getStamp());
str += "\n温度值:" + bean.getTemp() + ";单位:" + bean.getUnit() + ";小数点:" + bean.getDecimal();

// 把最新的一条时间戳保存起来
if (i == list.size() - 1) {
stamp = bean.getStamp();
}
}
mList.add(str);
mHandler.sendEmptyMessage(REFRESH_DATA);
}


@Override @Override
public void mcuGetMode(int mode) { public void mcuGetMode(int mode) {




@Override @Override
public void onHistoryNum(long allNum, long sendNum) {
if (allNum == sendNum) {
//这里在前那一次数据
mList.add(TimeUtils.getTime() + "历史记录获取完成");
public void offlineData(int totalNum, int sendNum, List<TempDeviceData.HistoryBean> list) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
String str = "MCU上发历史记录:\n总条数:" + totalNum + ";已发送:" + sendNum;
for (int i = 0; i < list.size(); i++) {
TempDeviceData.HistoryBean bean = list.get(i);
str += "\n";
str += i + ":" + sdf.format(bean.getStamp());
str += "\n温度值:" + bean.getTemp() + ";单位:" + bean.getUnit() + ";小数点:" + bean.getDecimal();
}
mList.add(str);
if (totalNum != sendNum) {
//离线数据获取未完成,继续获取
mBleDevice.getHistoryNew(1);
} else { } else {
mList.add(TimeUtils.getTime() + "历史记录获取未完成: 下次获取时间: " + lastTime);
mBleDevice.getHistoryNew(lastTime);
mList.add(TimeUtils.getTime() + "历史记录获取完成");
} }
mHandler.sendEmptyMessage(REFRESH_DATA); mHandler.sendEmptyMessage(REFRESH_DATA);
} }

@Override
public void onHistory(long time, byte[] value) {
mList.add(TimeUtils.getTime() + "历史记录: " + TimeUtils.getTime(time*1000) + " 数据: " + BleStrUtils.byte2HexStr(value));
mHandler.sendEmptyMessage(REFRESH_DATA);
}

@Override
public void onHistoryLast(long time) {
lastTime = time;
mList.add(TimeUtils.getTime() + "最新一条历史记录: 时间" + time);
et_history.setText(lastTime+"");
mHandler.sendEmptyMessage(REFRESH_DATA);
}

@Override
public void onDelHistory(int result) {
mList.add(TimeUtils.getTime() + "删除历史记录结果: " + (result == 0 ? "成功" : "失败"));
mHandler.sendEmptyMessage(REFRESH_DATA);
}
} }


@Override @Override

正在加载...
取消
保存