mirror of
https://github.com/Sani7/remote-ui.git
synced 2026-10-26 21:51:13 +01:00
client Not fully working
still linking errors
This commit is contained in:
+37
-4
@@ -7,14 +7,47 @@ add_subdirectory(qwt)
|
|||||||
|
|
||||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
file(GLOB_RECURSE SOURCES "*.[hc]pp")
|
file(GLOB_RECURSE ui "ui/*.[hc]pp")
|
||||||
file(GLOB_RECURSE UI_SOURCES "*.ui")
|
|
||||||
|
|
||||||
set(PROJECT_SOURCES
|
set(PROJECT_SOURCES
|
||||||
${SOURCES}
|
${ui}
|
||||||
${UI_SOURCES}
|
helpers.cpp
|
||||||
|
helpers.hpp
|
||||||
|
IterableEnum.hpp
|
||||||
|
main.cpp
|
||||||
|
mainwindow.cpp
|
||||||
|
mainwindow.hpp
|
||||||
|
mainwindow.ui
|
||||||
|
networkerror.cpp
|
||||||
|
networkerror.hpp
|
||||||
|
networkerror.ui
|
||||||
|
simulator_base.cpp
|
||||||
|
simulator_base.hpp
|
||||||
|
web_socket_wrapper.cpp
|
||||||
|
web_socket_wrapper.hpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
file(GLOB_RECURSE sims "simulators/*.cpp")
|
||||||
|
|
||||||
|
# Loop through each .cpp file and create a library for it
|
||||||
|
foreach(sim ${sims})
|
||||||
|
# Extract the base name of the file (without the directory and extension)
|
||||||
|
get_filename_component(LIB_NAME ${sim} NAME_WE)
|
||||||
|
|
||||||
|
# Create a library for each .cpp file
|
||||||
|
add_library(ui_${LIB_NAME} SHARED ${CMAKE_CURRENT_SOURCE_DIR}/simulators/${LIB_NAME}.hpp ${CMAKE_CURRENT_SOURCE_DIR}/simulators/${LIB_NAME}.cpp ${CMAKE_CURRENT_SOURCE_DIR}/simulators/${LIB_NAME}.ui simulator_base.cpp)
|
||||||
|
target_link_libraries(ui_${LIB_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Widgets qwt magic_enum::magic_enum nlohmann_json::nlohmann_json)
|
||||||
|
target_include_directories(ui_${LIB_NAME} PUBLIC ${CMAKE_CURRENT_LIST_DIR}/ui ${PROJECT_BINARY_DIR}/)
|
||||||
|
|
||||||
|
set_target_properties(
|
||||||
|
ui_${LIB_NAME}
|
||||||
|
PROPERTIES
|
||||||
|
AUTOUIC ON
|
||||||
|
AUTOMOC ON
|
||||||
|
AUTORCC ON
|
||||||
|
)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
|
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
|
||||||
qt_add_executable(Simulator-CVS_I10
|
qt_add_executable(Simulator-CVS_I10
|
||||||
MANUAL_FINALIZATION
|
MANUAL_FINALIZATION
|
||||||
|
|||||||
+19
-9
@@ -1,21 +1,31 @@
|
|||||||
#include "mainwindow.hpp"
|
#include "mainwindow.hpp"
|
||||||
#include "ui_mainwindow.h"
|
#include "ui_mainwindow.h"
|
||||||
|
|
||||||
#include "can_debugger.hpp"
|
typedef Simulator_base *(*Get_UI)(Web_socket_wrapper*, QWidget*);
|
||||||
#include "cvs_i10.hpp"
|
|
||||||
#include "scope_mux_tester.hpp"
|
|
||||||
#include "test.hpp"
|
|
||||||
|
|
||||||
MainWindow::MainWindow(QUrl ws_url, QWidget *parent)
|
MainWindow::MainWindow(QUrl ws_url, QWidget *parent)
|
||||||
: QMainWindow(parent), ui(new Ui::MainWindow), m_web_socket(new Web_socket_wrapper(ws_url)),
|
: QMainWindow(parent), ui(new Ui::MainWindow), m_web_socket(new Web_socket_wrapper(ws_url)),
|
||||||
m_error_dialog(new NetworkError(this))
|
m_error_dialog(new NetworkError(this))
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
INSERT_SIMULATOR(Cable_Tester);
|
QLibrary lib;
|
||||||
INSERT_SIMULATOR(Can_Debugger);
|
QDirIterator it(QCoreApplication::applicationDirPath(), QStringList() << "*.so" << "*.dll", QDir::Files, QDirIterator::Subdirectories);
|
||||||
INSERT_SIMULATOR(Scope_Mux_Tester);
|
while (it.hasNext())
|
||||||
INSERT_SIMULATOR(CVS_I10);
|
{
|
||||||
INSERT_SIMULATOR(Test_Sim);
|
lib.setFileName(it.next());
|
||||||
|
lib.load();
|
||||||
|
auto loaded_ui = Get_UI(lib.resolve("get_ui"));
|
||||||
|
if (loaded_ui == nullptr)
|
||||||
|
{
|
||||||
|
SPDLOG_INFO("{} NOT FOUND", lib.fileName().toStdString());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
auto widget = loaded_ui(m_web_socket.get(), this);
|
||||||
|
m_sims.insert(std::make_pair(widget->sim_name(), widget));
|
||||||
|
lib.unload();
|
||||||
|
}
|
||||||
|
// Insert debug sims here
|
||||||
|
//INSERT_SIMULATOR(SIM_NAME);
|
||||||
|
|
||||||
m_error_dialog->set_error("Connection timed out\nCheck if the server is running");
|
m_error_dialog->set_error("Connection timed out\nCheck if the server is running");
|
||||||
ui->connection->setText("Connected to " + ws_url.toString());
|
ui->connection->setText("Connected to " + ws_url.toString());
|
||||||
|
|||||||
@@ -14,6 +14,8 @@
|
|||||||
using json = nlohmann::json;
|
using json = nlohmann::json;
|
||||||
|
|
||||||
#define PUSH_UI_ITEM(item) push_ui_item(ui->item)
|
#define PUSH_UI_ITEM(item) push_ui_item(ui->item)
|
||||||
|
#define EXPORT_UI(client) \
|
||||||
|
extern "C" Q_DECL_EXPORT Simulator_base* get_ui(Web_socket_wrapper *api, QWidget *parent) { return new client(api, parent); }
|
||||||
|
|
||||||
class Simulator_base : public QMainWindow
|
class Simulator_base : public QMainWindow
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
#include "can_debugger.hpp"
|
#include "can_debugger.hpp"
|
||||||
#include "ui_can_debugger.h"
|
#include "ui_can_debugger.h"
|
||||||
|
|
||||||
|
EXPORT_UI(Can_Debugger);
|
||||||
|
|
||||||
Can_Debugger::Can_Debugger(Web_socket_wrapper *web_socket, QWidget *parent)
|
Can_Debugger::Can_Debugger(Web_socket_wrapper *web_socket, QWidget *parent)
|
||||||
: Simulator_base("Can Debugger", web_socket, parent), ui(new Ui::Can_Debugger)
|
: Simulator_base("Can Debugger", web_socket, parent), ui(new Ui::Can_Debugger)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
#include "test.hpp"
|
#include "test.hpp"
|
||||||
#include "ui_test.h"
|
#include "ui_test.h"
|
||||||
|
|
||||||
|
EXPORT_UI(Test_Sim);
|
||||||
|
|
||||||
Test_Sim::Test_Sim(Web_socket_wrapper *web_socket, QWidget *parent)
|
Test_Sim::Test_Sim(Web_socket_wrapper *web_socket, QWidget *parent)
|
||||||
: Simulator_base("Test Sim", web_socket, parent), ui(new Ui::Test_Sim)
|
: Simulator_base("Test Sim", web_socket, parent), ui(new Ui::Test_Sim)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user