添加魔方控制功能

This commit is contained in:
lixiaopeng
2022-08-31 12:35:39 +08:00
parent b18cae9677
commit 7ecb84db58

View File

@@ -75,6 +75,16 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis
private BluetoothMonitorReceiver mBluetoothReceiver = null;
private BluetoothAdapter mBluetoothAdapter;
private List<BluetoothDevice> mAreadlyConnectedList = new ArrayList<>();//已连接设备集合
private int numberA = 0;
private boolean isLongPressA = false;
private int numberB = 0;
private boolean isLongPressB = false;
private int numberC = 0;
private boolean isLongPressC = false;
private int numberD = 0;
private boolean isLongPressD = false;
private int numberE = 0;
private boolean isLongPressE = false;
@Override
@@ -226,15 +236,128 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis
}
return true;
}
Log.e("liyz", "onKeyDown keyCode = " + keyCode + "--action = " + event.getAction() + "---" + event);
return super.onKeyDown(keyCode, event);
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
// Log.d("liyz", "dispatchKeyEvent code = " + event.getKeyCode() + "--action = " + event.getAction() + "----" + event);
if (event.getKeyCode() == KeyEvent.KEYCODE_A) { //单击向左变道,长按-1
if (event.getAction() == KeyEvent.ACTION_DOWN) {
numberA++;
Log.e("liyz", "numberA --1-- = " + numberA);
if (numberA > 2) {
if (!isLongPressA) {
ToastUtils.showShort("方块 长按A -1 ");
sendAcc(true, -1);
isLongPressA = true;
}
}
} else if (event.getAction() == KeyEvent.ACTION_UP) {
if (numberA == 1) {
ToastUtils.showShort("方块 单击A ← 向左变道 ");
CallerAutoPilotManager.INSTANCE.sendOperatorChangeLaneLeft();
}
numberA = 0;
isLongPressA = false;
}
return true;
} else if (event.getKeyCode() == KeyEvent.KEYCODE_B) { //单击向右变道,长按-2
if (event.getAction() == KeyEvent.ACTION_DOWN) {
numberB++;
if (numberB > 2) {
if (!isLongPressB) {
ToastUtils.showShort("方块 长按B -2 ");
sendAcc(true, -2);
isLongPressB = true;
}
}
} else if (event.getAction() == KeyEvent.ACTION_UP) {
if (numberB == 1) {
ToastUtils.showShort("方块 单击B → 向右变道 ");
CallerAutoPilotManager.INSTANCE.sendOperatorChangeLaneRight();
}
numberB = 0;
isLongPressB = false;
}
return true;
} else if (event.getKeyCode() == KeyEvent.KEYCODE_C) { //单击鸣笛,
if (event.getAction() == KeyEvent.ACTION_DOWN) {
numberC++;
if (numberC > 2) {
if (!isLongPressC) {
ToastUtils.showShort("方块 长按 C ");
isLongPressC = true;
}
}
} else if (event.getAction() == KeyEvent.ACTION_UP) {
if (numberC == 1) {
ToastUtils.showShort("方块 单击C 单击鸣笛 ");
CallerAutoPilotManager.INSTANCE.sendOperatorSetHorn(1);
if (timerHorn == null) {
timerHorn = new Timer();
}
timerHorn.schedule(new TimerTask() {
@Override
public void run() {
CallerAutoPilotManager.INSTANCE.sendOperatorSetHorn(2);
timerHorn = null;
}
}, 500);
}
numberC = 0;
isLongPressC = false;
}
return true;
} else if (event.getKeyCode() == KeyEvent.KEYCODE_D) { //单击开启自动驾驶,
if (event.getAction() == KeyEvent.ACTION_DOWN) {
numberD++;
if (numberD > 2) {
if (!isLongPressD) {
ToastUtils.showShort("方块 长按 D ");
isLongPressD = true;
}
}
} else if (event.getAction() == KeyEvent.ACTION_UP) {
if (numberD == 1) {
ToastUtils.showShort("方块 单击D 开启自动驾驶 ");
CallerAutoPilotManager.INSTANCE.setControlAutopilotCarAuto(true);
}
numberD = 0;
isLongPressD = false;
}
return true;
} else if (event.getKeyCode() == KeyEvent.KEYCODE_E) { //单击复原,
if (event.getAction() == KeyEvent.ACTION_DOWN) {
numberE++;
if (numberE > 2) {
if (!isLongPressE) {
ToastUtils.showShort("方块 长按 E ");
isLongPressE = true;
}
}
} else if (event.getAction() == KeyEvent.ACTION_UP) {
if (numberE == 1) {
ToastUtils.showShort("方块 单击E 复原 ");
sendAcc(false, 0.0);
}
numberE = 0;
isLongPressE = false;
}
return true;
}
return super.dispatchKeyEvent(event);
}
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
// Log.d("liyz", "dispatchTouchEvent event.getX() = " + event.getX() + "--event.getY() = " + event.getY() + "--action = " + event.getAction());
Log.d("liyz", "dispatchTouchEvent event.getX() = " + event.getX() + "--event.getY() = " + event.getY() + "--action = " + event.getAction());
if (event.getX() == -1469.6875 && event.getY() == 530.0) { //向左变道
// ToastUtils.showShort("← 向左变道");
// MogoMapUIController.getInstance().setLockMode( true );
CallerAutoPilotManager.INSTANCE.sendOperatorChangeLaneLeft();
return true;
@@ -273,36 +396,6 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis
return super.dispatchTouchEvent(event);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
//← x:-1469.6875 y530.0
//↑ x:-1096.25 y132.5
//→ x:-863.4375 y: 690.0
//↓ x:-1096.25 y1099.0
//O x:-1096.25 y690.0
// Log.d("liyz", "onTouchEvent event.getX() = " + event.getX() + "--event.getY() = " + event.getY());
if (event.getX() == -1469.6875 && event.getY() == 530.0) {
// ToastUtils.showShort("←");
return true;
} else if (event.getX() == -1096.25 && event.getY() == 132.5) {
// ToastUtils.showShort("↑");
return true;
} else if (event.getX() == -863.4375 && event.getY() == 690.0) {
// ToastUtils.showShort("→");
return true;
} else if (event.getX() == -1096.25 && event.getY() == 1099.0) {
// ToastUtils.showShort("↓");
return true;
} else if (event.getX() == -1096.25 && event.getY() == 690.0) {
// ToastUtils.showShort("O");
return true;
}
return super.onTouchEvent(event);
}
@Override
public void onSkinModeChange(int skinMode) {
if (skinMode == 0) {
@@ -366,12 +459,12 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis
boolean isConnected = (boolean) isConnectedMethod.invoke(device, (Object[]) null);
// Log.e("liyz", "showBondedDevice Name:" + device.getName() + " Mac:" + device.getAddress() + "---isConnected = " + isConnected);
mAreadlyConnectedList.add(device);
if (device.getName().equals("JX-05")) {
SharedPrefsMgr.getInstance(getContext()).putString("BT_MAC", device.getAddress());
}
// if (device.getName().equals("JX-05")) { //TODO
// SharedPrefsMgr.getInstance(getContext()).putString("BT_MAC", device.getAddress());
// }
if (!isConnected) {
UiThreadHandler.postDelayed(() -> {
connectBluetooth(); //主动连接一次
// connectBluetooth(); //主动连接一次
}, 4000L);
}
} catch (NoSuchMethodException e) {
@@ -387,7 +480,7 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis
@Subscribe(threadMode = ThreadMode.MAIN)
public void onAutoConnection(ConnectBluetoothEvent event) {
connectBluetooth();
// connectBluetooth();
}
/**
@@ -405,6 +498,7 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis
pos = i;
}
}
// Log.d("liyz", "connectBluetooth macAddress = " + macAddress + "---pos = " + pos);
if (mAreadlyConnectedList.size() > pos && (pos >= 0)) {
method.invoke(mAreadlyConnectedList.get(pos));