#include "gui/model/Model.hpp" #include "params.h" #include "vehicle.h" #include "vehicle_state.h" #include <common/TouchGFXInit.hpp> #include <gui_generated/common/SimConstants.hpp> #include <platform/driver/touch/SDL2TouchController.hpp> #include <platform/hal/simulator/sdl2/HALSDL2.hpp> #include <simulator/mainBase.hpp> #include <stdlib.h> #include <touchgfx/hal/NoDMA.hpp> #include <touchgfx/lcd/LCD.hpp> using namespace touchgfx; #ifdef __linux__ int main(int argc, char **argv) { #else #include <shellapi.h> #ifdef _UNICODE #error Cannot run in unicode mode #endif int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { int argc; char **argv = touchgfx::HALSDL2::getArgv(&argc); #endif touchgfx::NoDMA dma; // For windows/linux, DMA transfers are simulated LCD &lcd = setupLCD(); touchgfx::SDL2TouchController tc; touchgfx::HAL &hal = touchgfx::touchgfx_generic_init<touchgfx::HALSDL2>( dma, lcd, tc, SIM_WIDTH, SIM_HEIGHT, 0, 0); setupSimulator(argc, argv, hal); // Ensure there is a console window to print to using printf() or // std::cout, and read from using e.g. fgets or std::cin. // Alternatively, instead of using printf(), always use // touchgfx_printf() which will ensure there is a console to write // to. // touchgfx_enable_stdio(); touchgfx::HAL::getInstance()->taskEntry(); // Never returns return EXIT_SUCCESS; } // Stubs extern "C" { VehicleState vehicle_state; void params_dec(ParamType param) {} void params_inc(ParamType param) {} void params_broadcast(ParamType param) {} void vehicle_select_mission(Mission mission) {} Params params; }