发送数据的蓝牙格式
Bluetoothle format for sending data
目前我正在开发我的应用程序,它将在收到特定类型的数据后运行一些代码
因此,当我按下按钮时,我的 arduino 将发送以下内容:
对于按钮 1
ble_write(0x0A);
ble_write(0x01);
ble_write(0x00);
对于按钮 2:
ble_write(0x0A);
ble_write(0x02);
ble_write(0x00);
数据由我的 phone 接收,但问题是,当我按下按钮 2 时,它只会输出代码 1 而不是代码 2。这是我的应用程序的代码。
for (int i = 0; i < data.length; i += 3) {
if (data[i] == 0x0A) {
if (data[i + 1] == 0x01)
Toast.makeText(getApplicationContext(), "CODE 1", Toast.LENGTH_SHORT).show();
} else if (data[i] == 0x02) {
Toast.makeText(getApplicationContext(), "CODE 2", Toast.LENGTH_SHORT).show();
}
}
我觉得因为 for 循环它只占用一个字节并且总是将其视为代码 1。
我有点卡在处理这个问题上,任何帮助都会很棒。
只需移动大括号即可?
for (int i = 0; i < data.length; i += 3) {
if (data[i] == 0x0A) {
if (data[i + 1] == 0x01) { // <- added {
Toast.makeText(getApplicationContext(), "CODE 1", Toast.LENGTH_SHORT).show();
} else if (data[i + 1] == 0x02) { // added '+ 1'
Toast.makeText(getApplicationContext(), "CODE 2", Toast.LENGTH_SHORT).show();
}
} //<- added }
}
还是我漏掉了什么?
最后我决定将接收到的数据(byte[])通过标准字符集转换为字符串格式。 (UTF_8)
目前我正在开发我的应用程序,它将在收到特定类型的数据后运行一些代码
因此,当我按下按钮时,我的 arduino 将发送以下内容: 对于按钮 1
ble_write(0x0A);
ble_write(0x01);
ble_write(0x00);
对于按钮 2: ble_write(0x0A); ble_write(0x02); ble_write(0x00);
数据由我的 phone 接收,但问题是,当我按下按钮 2 时,它只会输出代码 1 而不是代码 2。这是我的应用程序的代码。
for (int i = 0; i < data.length; i += 3) {
if (data[i] == 0x0A) {
if (data[i + 1] == 0x01)
Toast.makeText(getApplicationContext(), "CODE 1", Toast.LENGTH_SHORT).show();
} else if (data[i] == 0x02) {
Toast.makeText(getApplicationContext(), "CODE 2", Toast.LENGTH_SHORT).show();
}
}
我觉得因为 for 循环它只占用一个字节并且总是将其视为代码 1。
我有点卡在处理这个问题上,任何帮助都会很棒。
只需移动大括号即可?
for (int i = 0; i < data.length; i += 3) {
if (data[i] == 0x0A) {
if (data[i + 1] == 0x01) { // <- added {
Toast.makeText(getApplicationContext(), "CODE 1", Toast.LENGTH_SHORT).show();
} else if (data[i + 1] == 0x02) { // added '+ 1'
Toast.makeText(getApplicationContext(), "CODE 2", Toast.LENGTH_SHORT).show();
}
} //<- added }
}
还是我漏掉了什么?
最后我决定将接收到的数据(byte[])通过标准字符集转换为字符串格式。 (UTF_8)