[sim] Add GUI support for the REV PH (#6704)

This commit is contained in:
Wispy
2024-07-15 19:28:05 -05:00
committed by GitHub
parent cd6b70af0e
commit 7d64d4e24c
7 changed files with 375 additions and 68 deletions

View File

@@ -4,6 +4,7 @@
#include <glass/Context.h>
#include <glass/Storage.h>
#include <glass/hardware/Pneumatic.h>
#include <glass/other/Plot.h>
#include <cstdio>
@@ -26,6 +27,7 @@
#include "HALSimGuiExt.h"
#include "NetworkTablesSimGui.h"
#include "PCMSimGui.h"
#include "PHSimGui.h"
#include "PWMSimGui.h"
#include "PowerDistributionSimGui.h"
#include "RelaySimGui.h"
@@ -85,9 +87,43 @@ __declspec(dllexport)
PowerDistributionSimGui::Initialize();
PWMSimGui::Initialize();
RelaySimGui::Initialize();
PHSimGui::Initialize();
RoboRioSimGui::Initialize();
TimingGui::Initialize();
HALSimGui::halProvider->RegisterModel(
"AllPneumaticControls",
[] {
return PCMSimGui::PCMsAnyInitialized() || PHSimGui::PHsAnyInitialized();
},
[] {
return std::make_unique<glass::AllPneumaticControlsModel>(
PCMSimGui::GetPCMsModel(), PHSimGui::GetPHsModel());
});
HALSimGui::halProvider->RegisterView(
"Solenoids", "AllPneumaticControls",
[](glass::Model* model) {
auto pneumaticModel =
static_cast<glass::AllPneumaticControlsModel*>(model);
return PCMSimGui::PCMsAnySolenoids(pneumaticModel->pcms.get()) ||
PHSimGui::PHsAnySolenoids(pneumaticModel->phs.get());
},
[](glass::Window* win, glass::Model* model) {
win->SetFlags(ImGuiWindowFlags_AlwaysAutoResize);
win->SetDefaultPos(290, 20);
return glass::MakeFunctionView([=] {
auto pneumaticModel =
static_cast<glass::AllPneumaticControlsModel*>(model);
glass::DisplayPneumaticControlsSolenoids(
pneumaticModel->pcms.get(),
HALSimGui::halProvider->AreOutputsEnabled());
glass::DisplayPneumaticControlsSolenoids(
pneumaticModel->phs.get(),
HALSimGui::halProvider->AreOutputsEnabled());
});
});
HALSimGui::mainMenu.AddMainMenu([] {
if (ImGui::BeginMenu("Hardware")) {
HALSimGui::halProvider->DisplayMenu();