diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index dc04706..0000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,237 +0,0 @@ -cmake_minimum_required(VERSION 3.0.2) -project(Air_Ground_CEC) - -## Compile as C++11, supported in ROS Kinetic and newer -add_compile_options(-std=c++11) - -## Find catkin macros and libraries -## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) -## is used, also find other catkin packages -find_package(catkin REQUIRED COMPONENTS - roscpp - std_msgs - cv_bridge - sensor_msgs - image_transport -) - -## System dependencies are found with CMake's conventions -# find_package(Boost REQUIRED COMPONENTS system) - - -## Uncomment this if the package has a setup.py. This macro ensures -## modules and global scripts declared therein get installedsudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf' -## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html -# catkin_python_setup() - -################################################ -## Declare ROS messages, services and actions ## -################################################ - -## To declare and build messages, services or actions from within this -## package, follow these steps: -## * Let MSG_DEP_SET be the set of packages whose message types you use in -## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). -## * In the file package.xml: -## * add a build_depend tag for "message_generation" -## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET -## * If MSG_DEP_SET isn't empty the following dependency has been pulled in -## but can be declared for certainty nonetheless: -## * add a exec_depend tag for "message_runtime" -## * In this file (CMakeLists.txt): -## * add "message_generation" and every package in MSG_DEP_SET to -## find_package(catkin REQUIRED COMPONENTS ...) -## * add "message_runtime" and every package in MSG_DEP_SET to -## catkin_package(CATKIN_DEPENDS ...) -## * uncomment the add_*_files sections below as needed -## and list every .msg/.srv/.action file to be processed -## * uncomment the generate_messages entry below -## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) - -## Generate messages in the 'msg' folder -# add_message_files( -# FILES -# Message1.msg -# Message2.msg -# ) - -## Generate services in the 'srv' folder -# add_service_files( -# FILES -# Service1.srv -# Service2.srv -# ) - -## Generate actions in the 'action' folder -# add_action_files( -# FILES -# Action1.action -# Action2.action -# ) - -## Generate added messages and services with any dependencies listed here -# generate_messages( -# DEPENDENCIES -# std_msgs # Or other packages containing msgs -# ) - -################################################ -## Declare ROS dynamic reconfigure parameters ## -################################################ - -## To declare and build dynamic reconfigure parameters within this -## package, follow these steps: -## * In the file package.xml: -## * add a build_depend and a exec_depend tag for "dynamic_reconfigure" -## * In this file (CMakeLists.txt): -## * add "dynamic_reconfigure" to -## find_package(catkin REQUIRED COMPONENTS ...) -## * uncomment the "generate_dynamic_reconfigure_options" section below -## and list every .cfg file to be processed - -## Generate dynamic reconfigure parameters in the 'cfg' folder -# generate_dynamic_reconfigure_options( -# cfg/DynReconf1.cfg -# cfg/DynReconf2.cfg -# ) - -################################### -## catkin specific configuration ## -################################### -## The catkin_package macro generates cmake config files for your package -## Declare things to be passed to dependent projects -## INCLUDE_DIRS: uncomment this if your package contains header files -## LIBRARIES: libraries you create in this project that dependent projects also need -## CATKIN_DEPENDS: catkin_packages dependent projects also need -## DEPENDS: system dependencies of this project that dependent projects also need -catkin_package( -# INCLUDE_DIRS include -# LIBRARIES Air_Ground_CEC -# CATKIN_DEPENDS roscpp -# DEPENDS system_lib -) - -########### -## Build ## -########### - -find_package(OpenCV REQUIRED) -find_package(Qt5 REQUIRED COMPONENTS Widgets ) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTOUIC ON) -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -set(SOURCES - src/include/qnode.hpp - src/include/joystick.h - src/include/dashboard.h - src/main/main.cpp - src/main/mainwindow.cpp - src/main/qnode.cpp - src/main/joystick.cpp - src/main/dashboard.cpp - src/ui/mainwindow.hpp - src/ui/mainwindow.ui - -) - -QT5_add_resources(qrc_Files src/resources/images.qrc) -## Specify additional locations of header files -## Your package locations should be listed before other locations -include_directories( - include/Air_Ground_CEC - ${catkin_INCLUDE_DIRS} - ${OpenCV_INCLUDE_DIRS} -) - -add_executable(Air_Ground_CEC ${SOURCES} ${qrc_Files}) -target_link_libraries(Air_Ground_CEC - Qt5::Widgets - ${catkin_LIBRARIES} - ${OpenCV_LIBRARIES} -) - -## Declare a C++ library -# add_library(${PROJECT_NAME} -# src/${PROJECT_NAME}/Air_Ground_CEC.cpp -# ) - -## Add cmake target dependencies of the library -## as an example, code may need to be generated before libraries -## either from message generation or dynamic reconfigure -# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) - -## Declare a C++ executable -## With catkin_make all packages are built within a single CMake context -## The recommended prefix ensures that target names across packages don't collide -# add_executable(${PROJECT_NAME}_node src/Air_Ground_CEC_node.cpp) - -## Rename C++ executable without prefix -## The above recommended prefix causes long target names, the following renames the -## target back to the shorter version for ease of user use -## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node" -# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "") - -## Add cmake target dependencies of the executable -## same as for the library above -# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) - -## Specify libraries to link a library or executable target against -# target_link_libraries(${PROJECT_NAME}_node -# ${catkin_LIBRARIES} -# ) - -############# -## Install ## -############# - -# all install targets should use catkin DESTINATION variables -# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html - -## Mark executable scripts (Python etc.) for installation -## in contrast to setup.py, you can choose the destination -# catkin_install_python(PROGRAMS -# scripts/my_python_script -# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} -# ) - -## Mark executables for installation -## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html -# install(TARGETS ${PROJECT_NAME}_node -# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} -# ) - -## Mark libraries for installation -## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html -# install(TARGETS ${PROJECT_NAME} -# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -# RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION} -# ) - -## Mark cpp header files for installation -# install(DIRECTORY include/${PROJECT_NAME}/ -# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} -# FILES_MATCHING PATTERN "*.h" -# PATTERN ".svn" EXCLUDE -# ) - -## Mark other files for installation (e.g. launch and bag files, etc.) -# install(FILES -# # myfile1 -# # myfile2 -# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} -# ) - -############# -## Testing ## -############# - -## Add gtest based cpp test target and link libraries -# catkin_add_gtest(${PROJECT_NAME}-test test/test_Air_Ground_CEC.cpp) -# if(TARGET ${PROJECT_NAME}-test) -# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) -# endif() - -## Add folders to be run by python nosetests -# catkin_add_nosetests(test) diff --git a/README.md b/README.md deleted file mode 100644 index 0d88f33..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Air-ground-CEC - -test \ No newline at end of file diff --git a/doc/空地协同无人侦察系统-软件设计规格说明书.doc b/doc/空地协同无人侦察系统-软件设计规格说明书.doc deleted file mode 100644 index 21c3aba..0000000 Binary files a/doc/空地协同无人侦察系统-软件设计规格说明书.doc and /dev/null differ diff --git a/doc/空地协同无人侦察系统-软件需求构思及描述.docx b/doc/空地协同无人侦察系统-软件需求构思及描述.docx deleted file mode 100644 index 98af291..0000000 Binary files a/doc/空地协同无人侦察系统-软件需求构思及描述.docx and /dev/null differ diff --git a/doc/空地协同无人侦察系统-软件需求规格说明书.docx b/doc/空地协同无人侦察系统-软件需求规格说明书.docx deleted file mode 100644 index 8083faa..0000000 Binary files a/doc/空地协同无人侦察系统-软件需求规格说明书.docx and /dev/null differ diff --git a/model/UML设计图.vsdx b/model/UML设计图.vsdx deleted file mode 100755 index ac1e19d..0000000 Binary files a/model/UML设计图.vsdx and /dev/null differ diff --git a/package.xml b/package.xml deleted file mode 100644 index 9c40002..0000000 --- a/package.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - Air_Ground_CEC - 0.1.0 - The Air_Ground_CEC package - - - - - jackyma - - - - - - Apache 2.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - catkin - roscpp - roscpp - roscpp - - opencv2 - opencv2 - opencv2 - - message_generation - message_generation - message_runtime - - std_msgs sensor_msgs cv_bridge image_transport - std_msgs sensor_msgs cv_bridge image_transport - std_msgs sensor_msgs cv_bridge image_transport - - - - - - - diff --git a/src/Djitellowhite/Djitellowhite.cpp b/src/Djitellowhite/Djitellowhite.cpp deleted file mode 100644 index c8a8f52..0000000 --- a/src/Djitellowhite/Djitellowhite.cpp +++ /dev/null @@ -1,146 +0,0 @@ -#include"Djitellowhite.h" -#include -#include - - -#include -#include -#include - -#include -#include - -using namespace cv; -using namespace std; -Tello::Tello(const char* IP) { - this->stream_on=false; - this->host = inet_addr(IP); - cout << "create successfully!" << endl; - -} -Tello::~Tello() {} -void Tello::set_conf(int socket){ - this->sock = socket; -} -void Tello::get_connect(sockaddr_in serveraddr) { - char tmp[10] = {"command"}; - send_message(tmp,serveraddr,0);// 0 -> timeout - cout << "connect successfully!" <host; -} -void Tello::takeoff(sockaddr_in serveraddr) { - char tmp[10] = {"takeoff"}; - send_message(tmp,serveraddr,0);// 0 -> timeout - cout << "takeoff successfully!" < timeout - cout << "land successfully!" <sock,buffer,strlen(buffer),0,(struct sockaddr *)&server_addr, sizeof(server_addr)); - return true; -} -void* Tello::udp_response_receiver(void* arg){ - //int m_SockServer; //创建socket对象 - //sockaddr_in serveraddr; //创建sockaddr_in对象储存自身信息(当有多个端口,可以多个绑定) - //sockaddr_in serveraddrfrom; - - //serveraddr.sin_family = AF_INET; //设置服务器地址家族 - //serveraddr.sin_port = htons(8889); //设置服务器端口号 - //serveraddr.sin_addr.s_addr = inet_addr("0.0.0.0"); - //m_SockServer = socket(AF_INET, SOCK_DGRAM, 0); //创建一个临时变量并赋值给m_SockServer - //int i = bind(m_SockServer, (sockaddr*)&serveraddr, sizeof(serveraddr)); //把名字和套接字绑定 - //std::cout << "bind:" << i << std::endl; - - int socket = *(int *)arg; - - cout << "receive start" << endl; - while(1){ - char buffer[20]; - int iret; - memset(buffer,0,sizeof(buffer)); - - iret = recv(socket, buffer,20,MSG_WAITALL); - if(iret > 0 && iret <10){ - printf("Message from tello: %s\n", buffer); - } - } -} -void Tello::forward(sockaddr_in serveraddr){ - char tmp[15] = {"forward 20"}; - send_message(tmp,serveraddr,0);// 0 -> timeout - cout << "forward successfully!" < timeout - cout << "back successfully!" < timeout - cout << "left successfully!" < timeout - cout << "right successfully!" < timeout - cout << "up successfully!" < timeout - cout << "down successfully!" < timeout - cout << "cw successfully!" < timeout - cout << "ccw successfully!" <stream_on = true; - - cout << "vid"; - VideoCapture cap("udp://@0.0.0.0:11111"); - cout << "cap"; - if(!cap.isOpened()){ - cout << "fuck off"; - return; - } - - Mat frame; - cout << "continue!"; - while(1){ - cap>>frame; - if(frame.empty()) - break; - imshow("video",frame); - waitKey(20); - - } - cap.release(); - - -} diff --git a/src/Djitellowhite/Djitellowhite.h b/src/Djitellowhite/Djitellowhite.h deleted file mode 100644 index bfaa936..0000000 --- a/src/Djitellowhite/Djitellowhite.h +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef _DJITELLOWHITE_H -#define _DJITELLOWHITE_H -#include -#include -#include -#include -#include -#include -/*Library for interacting with DJI Ryze Tello drones.*/ - - -//coding = utf - 8 - -/* """C++ wrapper to interact with the Ryze Tello drone using the official Tello api. - Tello API documentation: - [1.3](https://dl-cdn.ryzerobotics.com/downloads/tello/20180910/Tello%20SDK%20Documentation%20EN_1.3.pdf) -*/ - -#define RESPONSE_TIMEOUT 7 //in seconds -#define TAKEOFF_TIMEOUT 20 //in seconds -#define FRAME_GRAB_TIMEOUT 3 -#define TIME_BTW_COMMANDS 0.1 //in seconds -#define TIME_BTW_RC_CONTROL_COMMANDS 0.001 //in seconds -#define RETRY_COUNT 3 //number of retries after a failed command - - -//Video stream, server socket -#define VS_UDP_IP "0.0.0.0" -#define VS_UDP_PORT 11111 - -#define CONTROL_UDP_PORT 8889 -#define STATE_UDP_PORT 8890 - -#define BUFFER_SIZE 1024 -//Constants for video settings -#define BITRATE_AUTO 0 -#define BITRATE_1MBPS 1 -#define BITRATE_2MBPS 2 -#define BITRATE_3MBPS 3 -#define BITRATE_4MBPS 4 -#define BITRATE_5MBPS 5 -#define RESOLUTION_480P "low" -#define RESOLUTION_720P "high" -#define FPS_5 "low" -#define FPS_15 "middle" -#define FPS_30 "high" -#define CAMERA_FORWARD 0 -#define CAMERA_DOWNWARD 1 -//日志模块暂时不写 - -class Tello { -private: - int sock; - bool stream_on; - unsigned long host; -public: - Tello(const char* IP); - ~Tello(); - void set_conf(int socket); - unsigned long gethost(); - void get_connect(sockaddr_in serveraddr); - void takeoff(sockaddr_in serveraddr); - void land(sockaddr_in serveraddr); - void forward(sockaddr_in serveraddr); - void back(sockaddr_in serveraddr); - void left(sockaddr_in serveraddr); - void right(sockaddr_in serveraddr); - void up(sockaddr_in serveraddr); - void down(sockaddr_in serveraddr); - void cw(sockaddr_in serveraddr); - void ccw(sockaddr_in serveraddr); - bool send_message(char* msg,sockaddr_in server_addr,int timeout = RESPONSE_TIMEOUT); - static void *udp_response_receiver(void* arg); - void get_video(sockaddr_in serveraddr); -}; - - - - -#endif diff --git a/src/Djitellowhite/Djitellowhite.o b/src/Djitellowhite/Djitellowhite.o deleted file mode 100644 index 12a9638..0000000 Binary files a/src/Djitellowhite/Djitellowhite.o and /dev/null differ diff --git a/src/Djitellowhite/Hardwarelistener.h b/src/Djitellowhite/Hardwarelistener.h deleted file mode 100644 index 599fa82..0000000 --- a/src/Djitellowhite/Hardwarelistener.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _HARDWARELISTENER_H -#define _HARDWARELISTENER_H -#include "Djitellowhite.h" -int listenkeyboard(Tello T,sockaddr_in serveraddr); -int scanKeyboard(); -#endif diff --git a/src/Djitellowhite/Triplet.cpp b/src/Djitellowhite/Triplet.cpp deleted file mode 100644 index 9c0ef65..0000000 --- a/src/Djitellowhite/Triplet.cpp +++ /dev/null @@ -1,45 +0,0 @@ -#include"Djitellowhite.h" -#include"Hardwarelistener.h" -#include -using namespace std; -int main(void){ - Tello T("192.168.10.1"); - int socket_fd, err; - - if((socket_fd = socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP))==-1) - { - cout << "initialized error" << endl; - cout << 0; - return -1; - } - - //cout << 1 << socket_fd; - T.set_conf(socket_fd); - - pthread_t thread_receive; - err = pthread_create(&thread_receive,nullptr,T.udp_response_receiver,&socket_fd); - sleep(3); - struct sockaddr_in serveraddr; - memset(&serveraddr,0,sizeof(serveraddr)); - serveraddr.sin_family=AF_INET; - serveraddr.sin_addr.s_addr=T.gethost(); - serveraddr.sin_port=htons(CONTROL_UDP_PORT); - - - - if(err!=0) - { - cout << err << " " << "can't create thread"; - } - - T.get_connect(serveraddr); - //sleep(1); - //T.takeoff(serveraddr); - T.get_video(serveraddr); - sleep(5); - //T.land(serveraddr); - - pthread_join(thread_receive,NULL); - listenkeyboard(T,serveraddr); - return 0; -} diff --git a/src/Djitellowhite/keyboard.cpp b/src/Djitellowhite/keyboard.cpp deleted file mode 100644 index dcf3ade..0000000 --- a/src/Djitellowhite/keyboard.cpp +++ /dev/null @@ -1,57 +0,0 @@ -#include -#include -#include "Hardwarelistener.h" -#include - -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" < -#include -#include -#include -#include -#include -#include -#include -#define PORT 8890 - -void udp_server(int sockfd) -{ - - socklen_t len; - char buf[1024] = {0}; - struct sockaddr_in server_addr; - int n; - int opt = 1; - len = sizeof(server_addr); - memset(&buf, 0, sizeof(buf)); - server_addr.sin_family = AF_INET; - server_addr.sin_addr.s_addr = htonl(INADDR_ANY); - server_addr.sin_port = htons(PORT); - - setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)); //当服务器非正常断开的时候重启服务器,不会进入TIME_WAIT状态 - - if (bind(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) { - printf("can not bind\n"); - exit(1); - } - - while (1) { - printf("========wait for client's request========\n"); - n = recvfrom(sockfd, buf, sizeof(buf), 0, (struct sockaddr *)&server_addr, &len); - buf[n] = '\0'; - printf("receive client's data: %s\n", buf); - sendto(sockfd, buf, n, 0, (struct sockaddr *)&server_addr, len); - printf("send data to client: %s\n", buf); - } - - close(sockfd); -} - -int main(int argc, char **argv) -{ - int sockfd; - - if ((sockfd = socket(PF_INET, SOCK_DGRAM, 0)) < 0) { - printf("create socket false\n"); - exit(1); - } - - udp_server(sockfd); - - exit(0); -} - - diff --git a/src/Djitellowhite/test b/src/Djitellowhite/test deleted file mode 100755 index 5becd75..0000000 Binary files a/src/Djitellowhite/test and /dev/null differ diff --git a/src/include/dashboard.h b/src/include/dashboard.h deleted file mode 100644 index cf3d39a..0000000 --- a/src/include/dashboard.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef DASHBOARD_H -#define DASHBOARD_H - -#include - -class DashBoard : public QWidget { - Q_OBJECT - public: - enum Gear { - kGear_1 = 1, - kGear_2, - kGear_3, - kGear_4, - kGear_5, - kGear_6, - kGear_7, - kGear_8, - kGear_D, - kGear_N, - kGear_P, - kGear_R - }; - - public: - explicit DashBoard(QWidget* parent = nullptr); - - public slots: - void set_gear(const Gear gear); - void set_rpm(const int rpm); - void set_speed(const int speed); - void set_temperature(const double temperature); - void set_oil(const int oil); - - protected: - void paintEvent(QPaintEvent* event); - - private: - void draw_tachometer(QPainter& painter); // 转速表 - void draw_speedometer(QPainter& painter); // 迈速表 - void draw_gear(QPainter& painter); // 挡位 - void draw_thermometer(QPainter& painter); // 水箱温度计 - void draw_oil_meter(QPainter& painter); // 油表 - - private: - Gear _gear{kGear_N}; - int _rpm; - int _speed; - double _temperature; - int _oil; - QWidget* parent; -}; - -#endif // DASHBOARD_H diff --git a/src/include/joystick.h b/src/include/joystick.h deleted file mode 100644 index 26969d3..0000000 --- a/src/include/joystick.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef JOYSTICK_H -#define JOYSTICK_H - -#include -#include -#include -#include -#include -#include -#include -class JoyStick : public QWidget { - Q_OBJECT - - public: - JoyStick(QWidget *parent = 0); - ~JoyStick(); - enum { - upleft = 0, - up, - upright, - left, - stop, - right, - downleft, - down, - downright - }; - signals: - void keyNumchanged(int num); - - protected: - void paintEvent(QPaintEvent *event) override; - void mouseMoveEvent(QMouseEvent *event) override; - void mouseReleaseEvent(QMouseEvent *event) override; - void mousePressEvent(QMouseEvent *event) override; - // void resizeEvent(QResizeEvent *event)override; - private: - int mouseX; - int mouseY; - int JoyStickX; //摇杆 - int JoyStickY; - int JoyStickR; - int padX; //底盘 - int padY; - int padR; - double handPadDis; //两圆圆心距离 - bool mousePressed; - QTimer *tim; - - private: - double Pointdis(int a, int b, int x, int y); //两点距离 - int getKeyNum(); -}; - -#endif // JoyStick_H diff --git a/src/include/qnode.hpp b/src/include/qnode.hpp deleted file mode 100644 index 9f99191..0000000 --- a/src/include/qnode.hpp +++ /dev/null @@ -1,64 +0,0 @@ -#ifndef Air_Ground_CEC_QNODE_HPP_ -#define Air_Ground_CEC_QNODE_HPP_ - -#ifndef Q_MOC_RUN -#include -#endif -#include - -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -using namespace std; - -class QNode : public QThread{ - Q_OBJECT - -public: - QNode(int argc, char **argv); - virtual ~QNode(); - bool init(); - void SubAndPubTopic(); - void KeyboardMove(char key, float speed_linear, float speed_trun); - -Q_SIGNALS: - void speed_x(double x); - void speed_th(double th); - void power(float p); - -private: - int init_argc; - char **init_argv; - ros::Publisher chatter_publisher; - ros::Subscriber chatter_subscriber; - ros::Publisher cmd_pub; - ros::Subscriber cmdVel_sub; - ros::Subscriber power_sub; - - QString odom_topic; - QString batteryState_topic; - - - void speedCallback(const nav_msgs::Odometry::ConstPtr& msg); - void powerCallback(const std_msgs::Float32& message_holder); - void myCallback(const std_msgs::Float64& message_holder); - -}; - -#endif - diff --git a/src/main/dashboard.cpp b/src/main/dashboard.cpp deleted file mode 100644 index d5a6ed3..0000000 --- a/src/main/dashboard.cpp +++ /dev/null @@ -1,384 +0,0 @@ -#include "../include/dashboard.h" - -#include -#include -#include - -#include - -#include "QDebug" -DashBoard::DashBoard(QWidget* parent) - : QWidget(parent), - _gear(kGear_1), - _rpm(0), - _speed(0), - _temperature(0), - _oil(0) { - QFontDatabase::addApplicationFont(":/fonts/DejaVuSans.ttf"); - this->resize(parent->size()); - this->parent = parent; -} - -void DashBoard::set_gear(const DashBoard::Gear gear) { - _gear = gear; - update(); -} - -void DashBoard::set_rpm(const int rpm) { - _rpm = rpm; - update(); -} - -void DashBoard::set_speed(const int speed) { - _speed = speed; - _rpm = speed; - update(); -} - -void DashBoard::set_temperature(const double temperature) { - _temperature = temperature; - update(); -} - -void DashBoard::set_oil(const int oil) { - _oil = oil; - update(); -} - -void DashBoard::paintEvent(QPaintEvent* event) { - this->resize(parent->size()); - QWidget::paintEvent(event); - - int side = qMin(int(parent->width() / 1.8), parent->height()); - - QPainter painter(this); - painter.setRenderHint(QPainter::Antialiasing); - painter.translate(parent->width() / 2, parent->height() / 2); - painter.scale(side / 200.0, side / 200.0); - painter.setPen(Qt::NoPen); - painter.setBrush(Qt::NoBrush); - - draw_tachometer(painter); - draw_speedometer(painter); - draw_gear(painter); - draw_thermometer(painter); - draw_oil_meter(painter); -} - -void DashBoard::draw_tachometer(QPainter& painter) { - static QColor normal_color(26, 245, 245, 245); - static QColor overrun_color(245, 64, 64, 225); - - // 绘制表盘外檐 - painter.save(); - painter.setPen(QPen(normal_color, 1, Qt::SolidLine)); - QRect rect(-95, -95, 190, 190); - painter.drawArc(rect, 0, 270 * 16); - painter.restore(); - - // 绘制红色区域 - painter.save(); - static QRectF rectangle_outer(-95, -95, 190, 190); - static QRectF rectangle_inner(-87, -87, 174, 174); - painter.setBrush(overrun_color); - QPainterPath path; - path.arcTo(rectangle_outer, 0.0, 108.0); - path.arcTo(rectangle_inner, 108, -108); - painter.drawPath(path); - painter.restore(); - - // 绘制大刻度 - painter.save(); - painter.setPen(QPen(normal_color, 1, Qt::SolidLine)); - painter.rotate(90); - for (int i = 0; i < 21; ++i) { - painter.drawLine(88, 0, 94, 0); - painter.rotate(13.5); - } - painter.restore(); - - // 绘制小刻度 - painter.save(); - painter.setPen(QPen(normal_color, 1, Qt::SolidLine)); - painter.rotate(90); - for (int i = 0; i < 100; ++i) { - painter.drawLine(91, 0, 94, 0); - painter.rotate(2.7); - } - painter.restore(); - - // 绘制表盘数字 - painter.save(); - painter.rotate(90); - painter.setPen(normal_color); - painter.setFont(QFont("Times", 14)); - for (int i = 0; i < 11; ++i) { - painter.save(); - if (i > 6) { - painter.setPen(overrun_color); - } - painter.rotate(27.0 * i); - painter.translate(76, 0); - painter.rotate(270 - 27.0 * i); - painter.drawText(QRect(-20, -10, 40, 20), Qt::AlignCenter, - QString::number(i)); - painter.restore(); - } - painter.restore(); - - // 绘制指针 - static const QPoint hand[] = {QPoint(-4, 0), QPoint(0, 94), QPoint(4, 0), - QPoint(0, -6)}; - static QColor hand_color(26, 245, 245, 176); - painter.save(); - painter.setPen(Qt::NoPen); - painter.setBrush(hand_color); - painter.rotate(27.0 * (_rpm / 10.0)); - painter.drawConvexPolygon(hand, 4); - painter.restore(); - - // 绘制文字 - painter.save(); - painter.setPen(normal_color); - painter.setFont(QFont("DejaVu Sans", 8)); - painter.drawText(QRect(-50, -70, 100, 50), Qt::AlignCenter, "×10"); - painter.setFont(QFont("DejaVu Sans", 8, 50, true)); - painter.drawText(QRect(-50, 34, 32, 16), Qt::AlignCenter, "CM/S"); - painter.restore(); -} - -void DashBoard::draw_speedometer(QPainter& painter) { - painter.save(); - - painter.setPen(QColor(64, 64, 245)); - painter.setFont(QFont("DejaVu Sans", 6, 50, true)); - painter.drawText(QRect(80, 50, 70, 20), Qt::AlignCenter, "SPEED"); - - painter.setPen(QColor(26, 245, 245)); - painter.setFont(QFont("DejaVu Sans", 24, 63, true)); - painter.drawText(QRect(80, 50, 70, 50), Qt::AlignBottom | Qt::AlignLeft, - QString("%0").arg(QString::number(_speed), 3, '0')); - - painter.setPen(QColor(26, 245, 245)); - painter.setFont(QFont("DejaVu Sans", 8, 63, true)); - painter.drawText(QRect(145, 75, 40, 20), Qt::AlignBottom | Qt::AlignLeft, - "cm/s"); - - painter.restore(); -} - -void DashBoard::draw_gear(QPainter& painter) { - static QRect gear_rect(0, 0, 80, 80); - static QRect suffix_rect(48, 48, 32, 32); - static QFont suffix_font("DejaVu Sans", 16, 63, true); - - painter.save(); - painter.setPen(QPen(QColor(26, 245, 245), 1, Qt::SolidLine)); - painter.setFont(QFont("DejaVu Sans", 48, 63, true)); - - switch (_gear) { - case kGear_1: - painter.drawText(gear_rect, Qt::AlignCenter, QString::number(_gear)); - painter.setFont(suffix_font); - painter.drawText(suffix_rect, Qt::AlignCenter, "st"); - break; - case kGear_2: - painter.drawText(gear_rect, Qt::AlignCenter, QString::number(_gear)); - painter.setFont(suffix_font); - painter.drawText(suffix_rect, Qt::AlignCenter, "nd"); - break; - case kGear_3: - painter.drawText(gear_rect, Qt::AlignCenter, QString::number(_gear)); - painter.setFont(suffix_font); - painter.drawText(suffix_rect, Qt::AlignCenter, "rd"); - break; - case kGear_4: - case kGear_5: - case kGear_6: - case kGear_7: - case kGear_8: - painter.drawText(gear_rect, Qt::AlignCenter, QString::number(_gear)); - painter.setFont(suffix_font); - painter.drawText(suffix_rect, Qt::AlignCenter, "th"); - break; - case kGear_D: - painter.drawText(gear_rect, Qt::AlignCenter, "D"); - break; - case kGear_N: - painter.drawText(gear_rect, Qt::AlignCenter, "N"); - break; - case kGear_P: - painter.drawText(gear_rect, Qt::AlignCenter, "P"); - break; - case kGear_R: - painter.drawText(gear_rect, Qt::AlignCenter, "R"); - break; - default: - break; - } - - painter.restore(); -} - -void DashBoard::draw_thermometer(QPainter& painter) { - painter.save(); - - painter.drawImage(QRect(115, -60, 8, 16), - QImage("://images/temperature-icon.png")); - - painter.translate(-160, 100); - - static QColor normal_color(26, 245, 245, 245); - static QColor overrun_color(245, 64, 64, 225); - - // 绘制表盘外檐 - painter.save(); - painter.setPen(QPen(normal_color, 1, Qt::SolidLine)); - QRect rect(-300, -300, 600, 600); - painter.drawArc(rect, 12 * 16, 20 * 16); - painter.restore(); - - // 绘制刻度 - painter.save(); - painter.setPen(QPen(normal_color, 1, Qt::SolidLine)); - painter.rotate(-12); - painter.drawLine(300, 0, 306, 0); - painter.rotate(-10); - painter.drawLine(300, 0, 304, 0); - painter.rotate(-10); - painter.drawLine(300, 0, 306, 0); - painter.restore(); - - // 绘制刻度值 - painter.save(); - painter.setPen(normal_color); - painter.setFont(QFont("DejaVu Sans", 6)); - - painter.rotate(-12); - painter.save(); - painter.translate(316, 0); - painter.rotate(12); - painter.drawText(QRect(-20, -10, 40, 20), Qt::AlignCenter, - QString::number(0) + "°C"); - painter.restore(); - - painter.rotate(-10); - painter.save(); - painter.translate(317, 0); - painter.rotate(22); - painter.drawText(QRect(-20, -10, 40, 20), Qt::AlignCenter, - QString::number(50) + "°C"); - painter.restore(); - - painter.rotate(-10); - painter.save(); - painter.translate(320, 0); - painter.rotate(32); - painter.drawText(QRect(-20, -10, 40, 20), Qt::AlignCenter, - QString::number(100) + "°C"); - painter.restore(); - - painter.restore(); - - // 绘制红色区域 - painter.save(); - static QRectF rectangle_outer(-304, -304, 608, 608); - static QRectF rectangle_inner(-300.5, -300.5, 601, 601); - painter.setBrush(overrun_color); - QPainterPath path; - path.arcTo(rectangle_outer, 28, 3.9); - path.arcTo(rectangle_inner, 31.9, -3.9); - painter.drawPath(path); - painter.restore(); - - // 绘制指针 - painter.save(); - painter.setPen(QPen(overrun_color, 1, Qt::SolidLine)); - painter.rotate(-12 - 0.2 * _temperature); - painter.drawLine(298, 0, 306, 0); - painter.restore(); - - painter.restore(); -} - -void DashBoard::draw_oil_meter(QPainter& painter) { - painter.save(); - - painter.drawImage(QRect(-130, -60, 16, 16), - QImage("://images/fuel-icon.png")); - - painter.translate(160, 100); - painter.rotate(180); - - static QColor normal_color(26, 245, 245, 245); - static QColor overrun_color(245, 64, 64, 225); - - // 绘制表盘外檐 - painter.save(); - painter.setPen(QPen(normal_color, 1, Qt::SolidLine)); - QRect rect(-300, -300, 600, 600); - painter.drawArc(rect, -12 * 16, -20 * 16); - painter.restore(); - - // 绘制刻度 - painter.save(); - painter.setPen(QPen(normal_color, 1, Qt::SolidLine)); - painter.rotate(12); - painter.drawLine(300, 0, 306, 0); - painter.rotate(10); - painter.drawLine(300, 0, 304, 0); - painter.rotate(10); - painter.drawLine(300, 0, 306, 0); - painter.restore(); - - // 绘制刻度值 - painter.save(); - painter.setPen(normal_color); - painter.setFont(QFont("DejaVu Sans", 6)); - - painter.rotate(12); - painter.save(); - painter.translate(316, 0); - painter.rotate(168); - painter.drawText(QRect(-20, -10, 40, 20), Qt::AlignCenter, - QString::number(0) + "%"); - painter.restore(); - - painter.rotate(10); - painter.save(); - painter.translate(317, 0); - painter.rotate(158); - painter.drawText(QRect(-20, -10, 40, 20), Qt::AlignCenter, - QString::number(50) + "%"); - painter.restore(); - - painter.rotate(10); - painter.save(); - painter.translate(320, 0); - painter.rotate(148); - painter.drawText(QRect(-20, -10, 40, 20), Qt::AlignCenter, - QString::number(100) + "%"); - painter.restore(); - - painter.restore(); - - // 绘制红色区域 - painter.save(); - static QRectF rectangle_outer(-304, -304, 608, 608); - static QRectF rectangle_inner(-300.5, -300.5, 601, 601); - painter.setBrush(overrun_color); - QPainterPath path; - path.arcTo(rectangle_outer, -12.1, -3.9); - path.arcTo(rectangle_inner, -16, 3.9); - painter.drawPath(path); - painter.restore(); - - // 绘制指针 - painter.save(); - painter.setPen(QPen(overrun_color, 1, Qt::SolidLine)); - painter.rotate(12 + 0.2 * _oil); - painter.drawLine(298, 0, 306, 0); - painter.restore(); - - painter.restore(); -} diff --git a/src/main/joystick.cpp b/src/main/joystick.cpp deleted file mode 100644 index 8d6eb41..0000000 --- a/src/main/joystick.cpp +++ /dev/null @@ -1,105 +0,0 @@ -#include "../include/joystick.h" - -#include -JoyStick::JoyStick(QWidget* parent) : QWidget(parent) { - setPalette(QPalette(Qt::white)); - resize(parent->width(), parent->height()); - setMinimumSize(100, 100); - mouseX = width() / 2; - mouseY = height() / 2; - tim = new QTimer(this); - connect(tim, &QTimer::timeout, this, - [=] { emit keyNumchanged(getKeyNum()); }); - // connect(this,&JoyStick::keyNumchanged,this,[=](int num){ - // qDebug()<pos().x(); - mouseY = event->pos().y(); - if (r == true) { - update(); - r = false; - } else { - r = true; - } -} -void JoyStick::mouseReleaseEvent(QMouseEvent* event) { - mouseX = width() / 2; - mouseY = height() / 2; - tim->stop(); - mousePressed = false; - emit keyNumchanged(JoyStick::stop); - update(); -} -void JoyStick::mousePressEvent(QMouseEvent* event) { - mouseX = event->pos().x(); - mouseY = event->pos().y(); - tim->start(100); - mousePressed = true; - update(); -} - -double JoyStick::Pointdis(int a, int b, int x, int y) { - return sqrt((double)((x - a) * (x - a) + (y - b) * (y - b))); -} -int JoyStick::getKeyNum() { - int x, y; - int keynum; - x = (int)(JoyStickX * 3.0 / (padR * 2)); - y = (int)(JoyStickY * 3.0 / (padR * 2)); - keynum = 3 * y + x; - return keynum; -} diff --git a/src/main/main.cpp b/src/main/main.cpp deleted file mode 100644 index e31bc33..0000000 --- a/src/main/main.cpp +++ /dev/null @@ -1,27 +0,0 @@ - -#include "../ui/mainwindow.hpp" - -#include - -#include - - - -int main(int argc, char** argv) -{ - - - QApplication app(argc, argv); - MainWindow CEC(0,0,0); - - CEC.show(); - return app.exec(); - - return(0); -} - - - -/* - * find . "(" -name "*.cpp" -or -name "*.h" -or -name "*.hpp" -or -name "*.qrc" ")" -print | xargs wc -l - */ diff --git a/src/main/qnode.cpp b/src/main/qnode.cpp deleted file mode 100644 index 0ee8df5..0000000 --- a/src/main/qnode.cpp +++ /dev/null @@ -1,78 +0,0 @@ -#include "../include/qnode.hpp" - -#include "sensor_msgs/image_encodings.h" - -QNode::QNode(int argc, char **argv) : init_argc(argc), init_argv(argv){ - - - -} - - -QNode::~QNode() { - if (ros::isStarted()) { - ros::shutdown(); // explicitly needed since we use ros::start(); - ros::waitForShutdown(); - } - wait(); -} - -bool QNode::init() { - QSettings topic_setting("ros_controller", "settings"); - odom_topic = topic_setting.value("topic/topic_odom", "odom").toString(); - batteryState_topic = - topic_setting.value("topic/topic_power", "battery_state").toString(); - ros::init(init_argc,init_argv,"Air_Ground_CEC", - ros::init_options::AnonymousName | ros::init_options::NoSigintHandler); - SubAndPubTopic(); - return true; -} - -void QNode::SubAndPubTopic(){ - ros::NodeHandle n; - //创建速度话题的订阅者 - cmdVel_sub = n.subscribe(odom_topic.toStdString(), 200, - &QNode::speedCallback, this); - //power_sub = n.subscribe(batteryState_topic.toStdString(), 1000, - // &QNode::powerCallback, this); - cmd_pub = n.advertise("cmd_vel", 1); -} - -void QNode::KeyboardMove(char key, float speed_linear, float speed_trun){ - std::map> moveBindings { - // {'key', {x, y, z, th}} - {'7', {1, 1, 0, 1}}, {'8', {1, 0, 0, 0}}, {'9', {1, -1, 0, -1}}, - {'4', {0, 0, 0, 1}}, {'5', {0, 0, 0, 0}}, {'6', {0, 0, 0, -1}}, - {'1', {-1, 1, 0, 1}}, {'2', {-1, 0, 0, 0}}, {'3', {-1, -1, 0, -1}} - }; - - float x = moveBindings[key][0]; - float y = moveBindings[key][1]; - float z = moveBindings[key][2]; - float th = moveBindings[key][3]; - - //计算线速度和角速度 - float speed = speed_linear; - float turn = speed_trun; - - - - geometry_msgs::Twist twist; - twist.linear.x = x * speed; - twist.linear.y = y * speed; - twist.linear.z = z * speed; - - twist.angular.x = 0; - twist.angular.y = 0; - twist.angular.z = th * turn; - - cmd_pub.publish(twist); - ros::spinOnce(); -} - -//速度回调函数 -void QNode::speedCallback(const nav_msgs::Odometry::ConstPtr& msg) -{ - emit speed_x(msg->twist.twist.linear.x); - emit speed_th(msg->twist.twist.angular.z); -} diff --git a/src/resources/images.qrc b/src/resources/images.qrc deleted file mode 100644 index 5b4cff0..0000000 --- a/src/resources/images.qrc +++ /dev/null @@ -1,20 +0,0 @@ - - - images/down.png - images/down_2.png - images/down_left.png - images/down_left_2.png - images/down_right.png - images/down_right_2.png - images/left.png - images/left_2.png - images/right.png - images/right_2.png - images/up.png - images/up_2.png - images/up_left.png - images/up_left_2.png - images/up_right.png - images/up_right_2.png - - diff --git a/src/resources/images/down.png b/src/resources/images/down.png deleted file mode 100644 index 1fdba49..0000000 Binary files a/src/resources/images/down.png and /dev/null differ diff --git a/src/resources/images/down_2.png b/src/resources/images/down_2.png deleted file mode 100644 index b0f2433..0000000 Binary files a/src/resources/images/down_2.png and /dev/null differ diff --git a/src/resources/images/down_left.png b/src/resources/images/down_left.png deleted file mode 100644 index d29e9dc..0000000 Binary files a/src/resources/images/down_left.png and /dev/null differ diff --git a/src/resources/images/down_left_2.png b/src/resources/images/down_left_2.png deleted file mode 100644 index dd21fc2..0000000 Binary files a/src/resources/images/down_left_2.png and /dev/null differ diff --git a/src/resources/images/down_right.png b/src/resources/images/down_right.png deleted file mode 100644 index f65187d..0000000 Binary files a/src/resources/images/down_right.png and /dev/null differ diff --git a/src/resources/images/down_right_2.png b/src/resources/images/down_right_2.png deleted file mode 100644 index 408b905..0000000 Binary files a/src/resources/images/down_right_2.png and /dev/null differ diff --git a/src/resources/images/left.png b/src/resources/images/left.png deleted file mode 100644 index 2b60f08..0000000 Binary files a/src/resources/images/left.png and /dev/null differ diff --git a/src/resources/images/left_2.png b/src/resources/images/left_2.png deleted file mode 100644 index 26ea2cc..0000000 Binary files a/src/resources/images/left_2.png and /dev/null differ diff --git a/src/resources/images/right.png b/src/resources/images/right.png deleted file mode 100644 index 0a6ca1d..0000000 Binary files a/src/resources/images/right.png and /dev/null differ diff --git a/src/resources/images/right_2.png b/src/resources/images/right_2.png deleted file mode 100644 index 581bbe8..0000000 Binary files a/src/resources/images/right_2.png and /dev/null differ diff --git a/src/resources/images/up.png b/src/resources/images/up.png deleted file mode 100644 index 5a5717f..0000000 Binary files a/src/resources/images/up.png and /dev/null differ diff --git a/src/resources/images/up_2.png b/src/resources/images/up_2.png deleted file mode 100644 index 200be6e..0000000 Binary files a/src/resources/images/up_2.png and /dev/null differ diff --git a/src/resources/images/up_left.png b/src/resources/images/up_left.png deleted file mode 100644 index 53d47cb..0000000 Binary files a/src/resources/images/up_left.png and /dev/null differ diff --git a/src/resources/images/up_left_2.png b/src/resources/images/up_left_2.png deleted file mode 100644 index b8824ba..0000000 Binary files a/src/resources/images/up_left_2.png and /dev/null differ diff --git a/src/resources/images/up_right.png b/src/resources/images/up_right.png deleted file mode 100644 index 21c37f5..0000000 Binary files a/src/resources/images/up_right.png and /dev/null differ diff --git a/src/resources/images/up_right_2.png b/src/resources/images/up_right_2.png deleted file mode 100644 index 1fa93ac..0000000 Binary files a/src/resources/images/up_right_2.png and /dev/null differ diff --git a/src/ui/Triplet/.gitignore b/src/ui/Triplet/.gitignore deleted file mode 100644 index fab7372..0000000 --- a/src/ui/Triplet/.gitignore +++ /dev/null @@ -1,73 +0,0 @@ -# This file is used to ignore files which are generated -# ---------------------------------------------------------------------------- - -*~ -*.autosave -*.a -*.core -*.moc -*.o -*.obj -*.orig -*.rej -*.so -*.so.* -*_pch.h.cpp -*_resource.rc -*.qm -.#* -*.*# -core -!core/ -tags -.DS_Store -.directory -*.debug -Makefile* -*.prl -*.app -moc_*.cpp -ui_*.h -qrc_*.cpp -Thumbs.db -*.res -*.rc -/.qmake.cache -/.qmake.stash - -# qtcreator generated files -*.pro.user* - -# xemacs temporary files -*.flc - -# Vim temporary files -.*.swp - -# Visual Studio generated files -*.ib_pdb_index -*.idb -*.ilk -*.pdb -*.sln -*.suo -*.vcproj -*vcproj.*.*.user -*.ncb -*.sdf -*.opensdf -*.vcxproj -*vcxproj.* - -# MinGW generated files -*.Debug -*.Release - -# Python byte code -*.pyc - -# Binaries -# -------- -*.dll -*.exe - diff --git a/src/ui/Triplet/Triplet.pro b/src/ui/Triplet/Triplet.pro deleted file mode 100644 index 06138d8..0000000 --- a/src/ui/Triplet/Triplet.pro +++ /dev/null @@ -1,38 +0,0 @@ -QT += core gui - -greaterThan(QT_MAJOR_VERSION, 4): QT += widgets - -CONFIG += c++11 - -# The following define makes your compiler emit warnings if you use -# any Qt feature that has been marked deprecated (the exact warnings -# depend on your compiler). Please consult the documentation of the -# deprecated API in order to know how to port your code away from it. -DEFINES += QT_DEPRECATED_WARNINGS - -# You can also make your code fail to compile if it uses deprecated APIs. -# In order to do so, uncomment the following line. -# You can also select to disable deprecated APIs only up to a certain version of Qt. -#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 - -SOURCES += \ - main.cpp \ - mainwindow.cpp - -HEADERS += \ - mainwindow.h - -FORMS += \ - mainwindow.ui - -# Default rules for deployment. -qnx: target.path = /tmp/$${TARGET}/bin -else: unix:!android: target.path = /opt/$${TARGET}/bin -!isEmpty(target.path): INSTALLS += target - -INCLUDEPATH += /usr/local/include \ -/usr/local/include/opencv2 \ -/usr/local/include/opencv4 - - -LIBS += /usr/local/lib/libopencv_world.so diff --git a/src/ui/Triplet/hello.txt b/src/ui/Triplet/hello.txt deleted file mode 100644 index d00491f..0000000 --- a/src/ui/Triplet/hello.txt +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/src/ui/Triplet/main.cpp b/src/ui/Triplet/main.cpp deleted file mode 100644 index fd3e533..0000000 --- a/src/ui/Triplet/main.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "mainwindow.h" - -#include - -int main(int argc, char *argv[]) -{ - QApplication a(argc, argv); - MainWindow w; - w.show(); - return a.exec(); -} diff --git a/src/ui/Triplet/mainwindow.cpp b/src/ui/Triplet/mainwindow.cpp deleted file mode 100644 index 5a195f4..0000000 --- a/src/ui/Triplet/mainwindow.cpp +++ /dev/null @@ -1,45 +0,0 @@ -#include "mainwindow.h" -#include "ui_mainwindow.h" - -MainWindow::MainWindow(QWidget *parent) - : QMainWindow(parent) - , ui(new Ui::MainWindow) -{ - ui->setupUi(this); - timer = new QTimer(this); - connect(timer, SIGNAL(timeout()), this, SLOT(importFrame())); - - //InitVideo(); -} - -void MainWindow::importFrame() -{ - capture >> frame; - cvtColor(frame, frame, CV_BGR2RGB); - QImage srcQImage = QImage((uchar*)(frame.data), frame.cols, frame.rows, QImage::Format_RGB888); - ui->label->setPixmap(QPixmap::fromImage(srcQImage)); - ui->label->resize(srcQImage.size()); - ui->label->show(); -} - - - - -MainWindow::~MainWindow() -{ - delete ui; -} - - - -void MainWindow::on_PLAY_clicked() -{ - capture.open("udp://@0.0.0.0:11111"); - timer->start(30); -} - -void MainWindow::on_CLOSE_clicked() -{ - timer->stop(); - capture.release(); -} diff --git a/src/ui/Triplet/mainwindow.h b/src/ui/Triplet/mainwindow.h deleted file mode 100644 index b959c59..0000000 --- a/src/ui/Triplet/mainwindow.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef MAINWINDOW_H -#define MAINWINDOW_H - -#include -#include -#include -#include "opencv2/opencv.hpp" -#include -#include -#include -#include - -using namespace std; -using namespace cv; - -QT_BEGIN_NAMESPACE -namespace Ui { class MainWindow; } -QT_END_NAMESPACE - -class MainWindow : public QMainWindow -{ - Q_OBJECT - -public: - MainWindow(QWidget *parent = nullptr); - ~MainWindow(); - VideoCapture cap; - void InitVideo(); - - -private slots: - - - void importFrame();//read video - - void on_PLAY_clicked();//start video - - void on_CLOSE_clicked();//finish video - -private: - Ui::MainWindow *ui; - VideoCapture capture; - QTimer *timer; - Mat frame; - bool isCamerea = 0; -}; -#endif // MAINWINDOW_H diff --git a/src/ui/mainwindow.hpp b/src/ui/mainwindow.hpp deleted file mode 100644 index 3a50f5e..0000000 --- a/src/ui/mainwindow.hpp +++ /dev/null @@ -1,64 +0,0 @@ -#ifndef MAINWINDOW_H -#define MAINWINDOW_H - -#include -#include -#include - -#include "ui_mainwindow.h" -#include "../include/joystick.h" -#include "../include/qnode.hpp" -#include "../include/dashboard.h" - -namespace Ui { -class MainWindow; -} - -class MainWindow : public QMainWindow -{ - Q_OBJECT - -public: - explicit MainWindow(int argc, char **argv, QWidget *parent = 0); - ~MainWindow(); - enum { - upleft = 0, - up, - upright, - left, - stop, - right, - downleft, - down, - downright - }; - - - -public slots: - void slot_keyboard_control(); - //void slot_command_control(int linear, int angular); - void slot_rockKeyChange(int); - void slot_speed_x(double x); - void slot_speed_th(double th); - void Slider_raw_valueChanged(int v); - void Slider_linear_valueChanged(int v); - - - -private: - Ui::MainWindow *ui; - QNode qnode; - JoyStick *rock_widget; - DashBoard *m_DashBoard_x; - DashBoard *m_DashBoard_th; - - void initUis(); - void setBtnStyles(); - void connections(); - - - -}; - -#endif // MAINWINDOW_H diff --git a/test/TestContent.txt b/test/TestContent.txt deleted file mode 100644 index 5e075fe..0000000 --- a/test/TestContent.txt +++ /dev/null @@ -1,2 +0,0 @@ -opencvtest.cpp is used to detect whether the virtual machine can be connected to the camera -g++ `pkg-config opencv4 --cflags` opencvtest.cpp -o example `pkg-config opencv4 --libs` diff --git a/test/open b/test/open deleted file mode 100755 index c1e7131..0000000 Binary files a/test/open and /dev/null differ diff --git a/test/opencvtest.cpp b/test/opencvtest.cpp deleted file mode 100644 index 9184440..0000000 --- a/test/opencvtest.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include -#include -using namespace cv; -int main() { - - VideoCapture cap(0); - - if (!cap.isOpened()) { - std::cout << "!!!"; - return -1; - } - Mat frame; - bool judge = true; - namedWindow("test1"); - while (judge) - { - cap >> frame; - if (frame.empty()) break; - imshow("test1", frame); - if (27 == waitKey(30)) { - break; - } - } - destroyWindow("test1"); - return 0; -}