// Copyright (c) FIRST and other WPILib contributors. // Open Source Software; you can modify and/or share it under the terms of // the WPILib BSD license file in the root directory of this project. #include "HALSimWSClient.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace wpilibws; bool HALSimWSClient::Initialize() { bool result = true; runner.ExecSync([&](wpi::uv::Loop& loop) { simws = std::make_shared(loop, providers, simDevices); if (!simws->Initialize()) { result = false; return; } WSRegisterFunc registerFunc = [&](auto key, auto provider) { providers.Add(key, provider); }; HALSimWSProviderAddressableLED::Initialize(registerFunc); HALSimWSProviderAnalogIn::Initialize(registerFunc); HALSimWSProviderAnalogOut::Initialize(registerFunc); HALSimWSProviderBuiltInAccelerometer::Initialize(registerFunc); HALSimWSProviderDIO::Initialize(registerFunc); HALSimWSProviderDigitalPWM::Initialize(registerFunc); HALSimWSProviderDriverStation::Initialize(registerFunc); HALSimWSProviderEncoder::Initialize(registerFunc); HALSimWSProviderJoystick::Initialize(registerFunc); HALSimWSProviderPCM::Initialize(registerFunc); HALSimWSProviderPWM::Initialize(registerFunc); HALSimWSProviderRoboRIO::Initialize(registerFunc); HALSimWSProviderSolenoid::Initialize(registerFunc); simDevices.Initialize(loop); simws->Start(); }); return result; }