You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Air_Ground_CEC/src/main/keyboard.cpp

58 lines
1.0 KiB

#include <termio.h>
#include <stdio.h>
#include "Hardwarelistener.h"
#include <iostream>
using namespace std;
int scanKeyboard()
{
int in;
struct termios new_settings;
struct termios stored_settings;
//设置终端参数
tcgetattr(0,&stored_settings);
new_settings = stored_settings;
new_settings.c_lflag &= (~ICANON);
new_settings.c_cc[VTIME] = 0;
tcgetattr(0,&stored_settings);
new_settings.c_cc[VMIN] = 1;
tcsetattr(0,TCSANOW,&new_settings);
in = getchar();
tcsetattr(0,TCSANOW,&stored_settings);
return in;
}
//测试函数
int listenkeyboard(Tello T, sockaddr_in serveraddr){
while(1){
switch(scanKeyboard())
{
case (int)'w':
cout << "forward"<< endl;
T.forward(serveraddr);
break;
case (int)'s':
cout << "back" << endl;
T.back(serveraddr);
break;
case (int)'a':
cout << "left" <<endl;
T.left(serveraddr);
break;
case (int)'d':
cout << "right"<<endl;
T.right(serveraddr);
break;
}
}
return 0;
// while(1){
// printf("%d\n",scanKeyboard());
// }
}