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