挖坑背景
公司要求根据协议向设备发送指令,指令中的数值由由用户输入。
//配置协议下发的数据
private static byte[] mVoltageBuf = {0x40, 0x40, 0x00, 0x08, (byte) 0x82, 0x06, (byte)0xf1, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
//提交按钮点击事件
voltageSetBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String number = voltageEt.getText().toString().trim();
if (TextUtils.isEmpty(number)) {
Toolkits.showToast(mContext, getString(R.string.voltage_toast));
return;
}
//将输入的内容转为double类型
double value = Double.parseDouble(number);
/*
将数值转成对应的byte数组
error: 1、value * 100此处进行断点调试,若输入16.06,value值为16.0599999995,精度出现缺失
2、Integer.toHexString((int) (value * 100))打印是一个长度为3的16进制字符串,