| 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 |