智能小车57:手机端发送命令
1.按钮事件
case R.id.goFront:
bluetoothMessage.sendMsg("u");
break;
case R.id.goLeft:
bluetoothMessage.sendMsg("l");
break;
case R.id.goRight:
bluetoothMessage.sendMsg("r");
break;
case R.id.goBack:
bluetoothMessage.sendMsg("d");
break;
case R.id.btnStop:
bluetoothMessage.sendMsg("s");
break;
2.使用Socket发送方法
public void sendMsg(String cmd) {
try {
String msg = CzProtocol.createPacket(cmd);
if (socket != null) {
try {
socket.getOutputStream().write(msg.getBytes());
} catch (IOException e) {
e.printStackTrace();
//发送发生异常,重连Socket
SubThreadToast.toast(context,"发送发生异常,重连Socket");
}
} else {
//子线程调用toast,得这样写
SubThreadToast.toast(context,"未连接,不能执行");
showBlueList();
}
}catch(Exception e){
e.printStackTrace();
}
}
3.构造数据包方法
public static String createPacket(String data){
StringBuffer sb=new StringBuffer();
int maxLen=59;
if(data==null||data.length()==0){
System.out.println("不能发送空数据");
return null;
}
if(data.length()>maxLen){
System.out.println("数据最长为"+maxLen);
return null;
}
byte[] datas=data.getBytes();
sb.append(STARTFLAG);
sb.append((char)datas.length);
byte xor=datas[0];
for(int i=1;i<datas.length;i++){
xor=(byte) (xor^datas[i]);
}
sb.append((char)xor);
for(int i=0;i<datas.length;i++){
sb.append((char)datas[i]);
}
return sb.toString();
}
文/程忠 浏览次数:0次 2020-06-06 22:45:50
case R.id.goFront:
bluetoothMessage.sendMsg("u");
break;
case R.id.goLeft:
bluetoothMessage.sendMsg("l");
break;
case R.id.goRight:
bluetoothMessage.sendMsg("r");
break;
case R.id.goBack:
bluetoothMessage.sendMsg("d");
break;
case R.id.btnStop:
bluetoothMessage.sendMsg("s");
break;
2.使用Socket发送方法
public void sendMsg(String cmd) {
try {
String msg = CzProtocol.createPacket(cmd);
if (socket != null) {
try {
socket.getOutputStream().write(msg.getBytes());
} catch (IOException e) {
e.printStackTrace();
//发送发生异常,重连Socket
SubThreadToast.toast(context,"发送发生异常,重连Socket");
}
} else {
//子线程调用toast,得这样写
SubThreadToast.toast(context,"未连接,不能执行");
showBlueList();
}
}catch(Exception e){
e.printStackTrace();
}
}
3.构造数据包方法
public static String createPacket(String data){
StringBuffer sb=new StringBuffer();
int maxLen=59;
if(data==null||data.length()==0){
System.out.println("不能发送空数据");
return null;
}
if(data.length()>maxLen){
System.out.println("数据最长为"+maxLen);
return null;
}
byte[] datas=data.getBytes();
sb.append(STARTFLAG);
sb.append((char)datas.length);
byte xor=datas[0];
for(int i=1;i<datas.length;i++){
xor=(byte) (xor^datas[i]);
}
sb.append((char)xor);
for(int i=0;i<datas.length;i++){
sb.append((char)datas[i]);
}
return sb.toString();
}
相关阅读
评论:
↓ 广告开始-头部带绿为生活 ↓
↑ 广告结束-尾部支持多点击 ↑