SCRIPT: wpiformat

This commit is contained in:
PJ Reiniger
2025-11-07 20:01:58 -05:00
committed by Peter Johnson
parent ae6bdc9d25
commit 2109161534
749 changed files with 5504 additions and 3936 deletions

View File

@@ -48,9 +48,9 @@ class AddressableLEDsModel : public wpi::glass::LEDDisplaysModel {
size_t GetNumLEDDisplays() override { return m_models.size(); }
void ForEachLEDDisplay(
wpi::util::function_ref<void(wpi::glass::LEDDisplayModel& model, int channel)> func)
override;
void ForEachLEDDisplay(wpi::util::function_ref<
void(wpi::glass::LEDDisplayModel& model, int channel)>
func) override;
private:
std::vector<std::unique_ptr<AddressableLEDModel>> m_models;
@@ -83,7 +83,9 @@ bool AddressableLEDsModel::Exists() {
}
void AddressableLEDsModel::ForEachLEDDisplay(
wpi::util::function_ref<void(wpi::glass::LEDDisplayModel& model, int channel)> func) {
wpi::util::function_ref<void(wpi::glass::LEDDisplayModel& model,
int channel)>
func) {
for (int i = 0; i < static_cast<int>(m_models.size()); ++i) {
if (m_models[i]) {
func(*m_models[i], i);
@@ -109,7 +111,8 @@ void AddressableLEDGui::Initialize() {
win->SetFlags(ImGuiWindowFlags_AlwaysAutoResize);
win->SetDefaultPos(290, 100);
return wpi::glass::MakeFunctionView([=] {
wpi::glass::DisplayLEDDisplays(static_cast<AddressableLEDsModel*>(model));
wpi::glass::DisplayLEDDisplays(
static_cast<AddressableLEDsModel*>(model));
});
});
}

View File

@@ -56,9 +56,9 @@ class AnalogInputsSimModel : public wpi::glass::AnalogInputsModel {
bool Exists() override { return true; }
void ForEachAnalogInput(
wpi::util::function_ref<void(wpi::glass::AnalogInputModel& model, int index)> func)
override;
void ForEachAnalogInput(wpi::util::function_ref<
void(wpi::glass::AnalogInputModel& model, int index)>
func) override;
private:
// indexed by channel
@@ -81,7 +81,9 @@ void AnalogInputsSimModel::Update() {
}
void AnalogInputsSimModel::ForEachAnalogInput(
wpi::util::function_ref<void(wpi::glass::AnalogInputModel& model, int index)> func) {
wpi::util::function_ref<void(wpi::glass::AnalogInputModel& model,
int index)>
func) {
for (int32_t i = 0, iend = static_cast<int32_t>(m_models.size()); i < iend;
++i) {
if (auto model = m_models[i].get()) {
@@ -108,7 +110,8 @@ void AnalogInputSimGui::Initialize() {
win->SetFlags(ImGuiWindowFlags_AlwaysAutoResize);
win->SetDefaultPos(640, 20);
return wpi::glass::MakeFunctionView([=] {
wpi::glass::DisplayAnalogInputs(static_cast<AnalogInputsSimModel*>(model));
wpi::glass::DisplayAnalogInputs(
static_cast<AnalogInputsSimModel*>(model));
});
});
}

View File

@@ -138,7 +138,8 @@ class DIOsSimModel : public wpi::glass::DIOsModel {
bool Exists() override { return true; }
void ForEachDIO(
wpi::util::function_ref<void(wpi::glass::DIOModel& model, int index)> func) override;
wpi::util::function_ref<void(wpi::glass::DIOModel& model, int index)>
func) override;
private:
// indexed by channel
@@ -210,7 +211,8 @@ void DIOsSimModel::Update() {
}
void DIOsSimModel::ForEachDIO(
wpi::util::function_ref<void(wpi::glass::DIOModel& model, int index)> func) {
wpi::util::function_ref<void(wpi::glass::DIOModel& model, int index)>
func) {
const int32_t numDIO = m_dioModels.size();
for (int32_t i = 0; i < numDIO; ++i) {
if (auto model = m_dioModels[i].get()) {
@@ -237,7 +239,7 @@ void DIOSimGui::Initialize() {
win->SetDefaultPos(470, 20);
return wpi::glass::MakeFunctionView([=] {
wpi::glass::DisplayDIOs(static_cast<DIOsSimModel*>(model),
HALSimGui::halProvider->AreOutputsEnabled());
HALSimGui::halProvider->AreOutputsEnabled());
});
});
}

View File

@@ -214,8 +214,12 @@ class FMSSimModel : public wpi::glass::FMSModel {
public:
FMSSimModel();
wpi::glass::BooleanSource* GetFmsAttachedData() override { return &m_fmsAttached; }
wpi::glass::BooleanSource* GetDsAttachedData() override { return &m_dsAttached; }
wpi::glass::BooleanSource* GetFmsAttachedData() override {
return &m_fmsAttached;
}
wpi::glass::BooleanSource* GetDsAttachedData() override {
return &m_dsAttached;
}
wpi::glass::IntegerSource* GetAllianceStationIdData() override {
return &m_allianceStationId;
}
@@ -223,7 +227,9 @@ class FMSSimModel : public wpi::glass::FMSModel {
wpi::glass::BooleanSource* GetEStopData() override { return &m_estop; }
wpi::glass::BooleanSource* GetEnabledData() override { return &m_enabled; }
wpi::glass::BooleanSource* GetTestData() override { return &m_test; }
wpi::glass::BooleanSource* GetAutonomousData() override { return &m_autonomous; }
wpi::glass::BooleanSource* GetAutonomousData() override {
return &m_autonomous;
}
wpi::glass::StringSource* GetGameSpecificMessageData() override {
return &m_gameMessage;
}
@@ -562,10 +568,11 @@ void KeyboardJoystick::EditKey(const char* label, int* key) {
char editLabel[32];
if (s_keyEdit == key) {
wpi::util::format_to_n_c_str(editLabel, sizeof(editLabel), "(press key)###edit");
wpi::util::format_to_n_c_str(editLabel, sizeof(editLabel),
"(press key)###edit");
} else {
wpi::util::format_to_n_c_str(editLabel, sizeof(editLabel), "{}###edit",
GetKeyName(*key));
GetKeyName(*key));
}
if (ImGui::SmallButton(editLabel)) {
@@ -842,7 +849,8 @@ void KeyboardJoystick::ClearKey(int key) {
}
}
GlfwKeyboardJoystick::GlfwKeyboardJoystick(wpi::glass::Storage& storage, int index)
GlfwKeyboardJoystick::GlfwKeyboardJoystick(wpi::glass::Storage& storage,
int index)
: KeyboardJoystick{storage, index} {
// set up a default keyboard config for 0, 1, and 2
if (index == 0) {
@@ -1216,7 +1224,8 @@ bool FMSSimModel::IsReadOnly() {
static void DisplaySystemJoystick(SystemJoystick& joy, int i) {
char label[64];
wpi::util::format_to_n_c_str(label, sizeof(label), "{}: {}", i, joy.GetName());
wpi::util::format_to_n_c_str(label, sizeof(label), "{}: {}", i,
joy.GetName());
// highlight if any buttons pressed
bool anyButtonPressed = joy.IsAnyButtonPressed();
@@ -1250,7 +1259,8 @@ static void DisplaySystemJoysticks() {
DisplaySystemJoystick(*joy, i + GLFW_JOYSTICK_LAST + 1);
if (ImGui::BeginPopupContextItem()) {
char buf[64];
wpi::util::format_to_n_c_str(buf, sizeof(buf), "{} Settings", joy->GetName());
wpi::util::format_to_n_c_str(buf, sizeof(buf), "{} Settings",
joy->GetName());
if (ImGui::MenuItem(buf)) {
if (auto win = DriverStationGui::dsManager->GetWindow(buf)) {
@@ -1300,8 +1310,8 @@ static void DisplayJoysticks() {
joy.sys = payload_sys;
joy.guid = payload_sys->GetGUID();
std::string_view name{payload_sys->GetName()};
joy.useGamepad =
wpi::util::starts_with(name, "Xbox") || wpi::util::contains(name, "pad");
joy.useGamepad = wpi::util::starts_with(name, "Xbox") ||
wpi::util::contains(name, "pad");
}
ImGui::EndDragDropTarget();
}
@@ -1460,7 +1470,7 @@ void DriverStationGui::GlobalInit() {
for (auto&& joy : gKeyboardJoysticks) {
char label[64];
wpi::util::format_to_n_c_str(label, sizeof(label), "{} Settings",
joy->GetName());
joy->GetName());
if (auto win = dsManager->AddWindow(
label, [j = joy.get()] { j->SettingsDisplay(); },

View File

@@ -93,7 +93,9 @@ class EncoderSimModel : public wpi::glass::EncoderModel {
}
wpi::glass::IntegerSource* GetCountData() override { return &m_count; }
wpi::glass::DoubleSource* GetPeriodData() override { return &m_period; }
wpi::glass::BooleanSource* GetDirectionData() override { return &m_direction; }
wpi::glass::BooleanSource* GetDirectionData() override {
return &m_direction;
}
wpi::glass::DoubleSource* GetDistanceData() override { return &m_distance; }
wpi::glass::DoubleSource* GetRateData() override { return &m_rate; }
@@ -201,8 +203,8 @@ class EncodersSimModel : public wpi::glass::EncodersModel {
bool Exists() override { return true; }
void ForEachEncoder(
wpi::util::function_ref<void(wpi::glass::EncoderModel& model, int index)> func)
override;
wpi::util::function_ref<void(wpi::glass::EncoderModel& model, int index)>
func) override;
private:
std::vector<std::unique_ptr<EncoderSimModel>> m_models;
@@ -224,7 +226,8 @@ void EncodersSimModel::Update() {
}
void EncodersSimModel::ForEachEncoder(
wpi::util::function_ref<void(wpi::glass::EncoderModel& model, int index)> func) {
wpi::util::function_ref<void(wpi::glass::EncoderModel& model, int index)>
func) {
for (int32_t i = 0, iend = static_cast<int32_t>(m_models.size()); i < iend;
++i) {
if (auto model = m_models[i].get()) {

View File

@@ -6,7 +6,7 @@
namespace wpi::glass {
class EncodersModel;
} // namespace glass
} // namespace wpi::glass
namespace halsimgui {

View File

@@ -95,9 +95,9 @@ void HALProvider::Show(ViewEntry* entry, wpi::glass::Window* window) {
// the window might exist and we're just not associated to it yet
if (!window) {
window = GetOrAddWindow(
entry->name, true,
entry->showDefault ? wpi::glass::Window::kShow : wpi::glass::Window::kHide);
window = GetOrAddWindow(entry->name, true,
entry->showDefault ? wpi::glass::Window::kShow
: wpi::glass::Window::kHide);
}
if (!window) {
return;

View File

@@ -23,9 +23,10 @@ void NetworkTablesSimGui::Initialize() {
wpi::gui::AddEarlyExecute([] { gNetworkTablesModel->Update(); });
gNetworkTablesWindow = std::make_unique<wpi::glass::Window>(
wpi::glass::GetStorageRoot().GetChild("NetworkTables View"), "NetworkTables");
gNetworkTablesWindow->SetView(
std::make_unique<wpi::glass::NetworkTablesView>(gNetworkTablesModel.get()));
wpi::glass::GetStorageRoot().GetChild("NetworkTables View"),
"NetworkTables");
gNetworkTablesWindow->SetView(std::make_unique<wpi::glass::NetworkTablesView>(
gNetworkTablesModel.get()));
gNetworkTablesWindow->SetDefaultPos(250, 277);
gNetworkTablesWindow->SetDefaultSize(750, 185);
gNetworkTablesWindow->DisableRenamePopup();
@@ -35,8 +36,9 @@ void NetworkTablesSimGui::Initialize() {
gNetworkTablesInfoWindow = std::make_unique<wpi::glass::Window>(
wpi::glass::GetStorageRoot().GetChild("NetworkTables Info"),
"NetworkTables Info");
gNetworkTablesInfoWindow->SetView(wpi::glass::MakeFunctionView(
[&] { wpi::glass::DisplayNetworkTablesInfo(gNetworkTablesModel.get()); }));
gNetworkTablesInfoWindow->SetView(wpi::glass::MakeFunctionView([&] {
wpi::glass::DisplayNetworkTablesInfo(gNetworkTablesModel.get());
}));
gNetworkTablesInfoWindow->SetDefaultPos(250, 130);
gNetworkTablesInfoWindow->SetDefaultSize(750, 145);
gNetworkTablesInfoWindow->SetDefaultVisibility(wpi::glass::Window::kHide);

View File

@@ -103,8 +103,8 @@ class PCMSimModel : public wpi::glass::PneumaticControlModel {
CompressorSimModel* GetCompressor() override { return &m_compressor; }
void ForEachSolenoid(
wpi::util::function_ref<void(wpi::glass::SolenoidModel& model, int index)> func)
override;
wpi::util::function_ref<void(wpi::glass::SolenoidModel& model, int index)>
func) override;
std::string_view GetName() override { return "PCM"; }
@@ -126,7 +126,8 @@ class PCMsSimModel : public wpi::glass::PneumaticControlsModel {
bool Exists() override { return true; }
void ForEachPneumaticControl(
wpi::util::function_ref<void(wpi::glass::PneumaticControlModel& model, int index)>
wpi::util::function_ref<void(wpi::glass::PneumaticControlModel& model,
int index)>
func) override;
private:
@@ -151,7 +152,8 @@ void PCMSimModel::Update() {
}
void PCMSimModel::ForEachSolenoid(
wpi::util::function_ref<void(wpi::glass::SolenoidModel& model, int index)> func) {
wpi::util::function_ref<void(wpi::glass::SolenoidModel& model, int index)>
func) {
if (m_solenoidInitCount == 0) {
return;
}
@@ -179,7 +181,8 @@ void PCMsSimModel::Update() {
}
void PCMsSimModel::ForEachPneumaticControl(
wpi::util::function_ref<void(wpi::glass::PneumaticControlModel& model, int index)>
wpi::util::function_ref<void(wpi::glass::PneumaticControlModel& model,
int index)>
func) {
int32_t numCTREPCMs = m_models.size();
for (int32_t i = 0; i < numCTREPCMs; ++i) {
@@ -220,7 +223,8 @@ void PCMSimGui::Initialize() {
[] { return std::make_unique<PCMsSimModel>(); });
SimDeviceGui::GetDeviceTree().Add(
HALSimGui::halProvider->GetModel("CTREPCMs"), [](wpi::glass::Model* model) {
HALSimGui::halProvider->GetModel("CTREPCMs"),
[](wpi::glass::Model* model) {
wpi::glass::DisplayCompressorsDevice(
static_cast<PCMsSimModel*>(model),
HALSimGui::halProvider->AreOutputsEnabled());

View File

@@ -98,8 +98,8 @@ class PHSimModel : public wpi::glass::PneumaticControlModel {
CompressorSimModel* GetCompressor() override { return &m_compressor; }
void ForEachSolenoid(
wpi::util::function_ref<void(wpi::glass::SolenoidModel& model, int index)> func)
override;
wpi::util::function_ref<void(wpi::glass::SolenoidModel& model, int index)>
func) override;
std::string_view GetName() override { return "PH"; }
@@ -121,7 +121,8 @@ class PHsSimModel : public wpi::glass::PneumaticControlsModel {
bool Exists() override { return true; }
void ForEachPneumaticControl(
wpi::util::function_ref<void(wpi::glass::PneumaticControlModel& model, int index)>
wpi::util::function_ref<void(wpi::glass::PneumaticControlModel& model,
int index)>
func) override;
private:
@@ -146,7 +147,8 @@ void PHSimModel::Update() {
}
void PHSimModel::ForEachSolenoid(
wpi::util::function_ref<void(wpi::glass::SolenoidModel& model, int index)> func) {
wpi::util::function_ref<void(wpi::glass::SolenoidModel& model, int index)>
func) {
if (m_solenoidInitCount == 0) {
return;
}
@@ -174,7 +176,8 @@ void PHsSimModel::Update() {
}
void PHsSimModel::ForEachPneumaticControl(
wpi::util::function_ref<void(wpi::glass::PneumaticControlModel& model, int index)>
wpi::util::function_ref<void(wpi::glass::PneumaticControlModel& model,
int index)>
func) {
int32_t numREVPHs = m_models.size();
for (int32_t i = 0; i < numREVPHs; ++i) {

View File

@@ -47,7 +47,8 @@ class PWMsSimModel : public wpi::glass::PWMsModel {
bool Exists() override { return true; }
void ForEachPWM(
wpi::util::function_ref<void(wpi::glass::PWMModel& model, int index)> func) override;
wpi::util::function_ref<void(wpi::glass::PWMModel& model, int index)>
func) override;
private:
// indexed by channel
@@ -70,7 +71,8 @@ void PWMsSimModel::Update() {
}
void PWMsSimModel::ForEachPWM(
wpi::util::function_ref<void(wpi::glass::PWMModel& model, int index)> func) {
wpi::util::function_ref<void(wpi::glass::PWMModel& model, int index)>
func) {
const int32_t numPWM = m_sources.size();
for (int32_t i = 0; i < numPWM; ++i) {
if (auto model = m_sources[i].get()) {
@@ -98,7 +100,7 @@ void PWMSimGui::Initialize() {
win->SetDefaultPos(910, 20);
return wpi::glass::MakeFunctionView([=] {
wpi::glass::DisplayPWMs(static_cast<PWMsSimModel*>(model),
HALSimGui::halProvider->AreOutputsEnabled());
HALSimGui::halProvider->AreOutputsEnabled());
});
});
}

View File

@@ -78,7 +78,8 @@ class PowerDistributionsSimModel : public wpi::glass::PowerDistributionsModel {
bool Exists() override { return true; }
void ForEachPowerDistribution(
wpi::util::function_ref<void(wpi::glass::PowerDistributionModel& model, int index)>
wpi::util::function_ref<void(wpi::glass::PowerDistributionModel& model,
int index)>
func) override;
private:
@@ -101,7 +102,8 @@ void PowerDistributionsSimModel::Update() {
}
void PowerDistributionsSimModel::ForEachPowerDistribution(
wpi::util::function_ref<void(wpi::glass::PowerDistributionModel& model, int index)>
wpi::util::function_ref<void(wpi::glass::PowerDistributionModel& model,
int index)>
func) {
for (int32_t i = 0, iend = static_cast<int32_t>(m_models.size()); i < iend;
++i) {

View File

@@ -48,9 +48,13 @@ class RoboRioSimModel : public wpi::glass::RoboRioModel {
bool Exists() override { return true; }
wpi::glass::RoboRioRailModel* GetUser3V3Rail() override { return &m_user3V3Rail; }
wpi::glass::RoboRioRailModel* GetUser3V3Rail() override {
return &m_user3V3Rail;
}
wpi::glass::DoubleSource* GetVInVoltageData() override { return &m_vInVoltage; }
wpi::glass::DoubleSource* GetVInVoltageData() override {
return &m_vInVoltage;
}
wpi::glass::DoubleSource* GetBrownoutVoltage() override {
return &m_brownoutVoltage;
}

View File

@@ -23,7 +23,7 @@ using namespace halsimgui;
namespace {
#define DEFINE_SIMVALUESOURCE(Type, TYPE, v_type) \
class Sim##Type##ValueSource : public wpi::glass::Type##Source { \
class Sim##Type##ValueSource : public wpi::glass::Type##Source { \
public: \
explicit Sim##Type##ValueSource(HAL_SimValueHandle handle, \
const char* device, const char* name) \
@@ -90,7 +90,8 @@ class SimDevicesModel : public wpi::glass::Model {
}
private:
wpi::util::DenseMap<HAL_SimValueHandle, std::unique_ptr<wpi::glass::DataSource>>
wpi::util::DenseMap<HAL_SimValueHandle,
std::unique_ptr<wpi::glass::DataSource>>
m_sources;
};
} // namespace
@@ -151,7 +152,7 @@ static void DisplaySimValue(const char* name, void* data,
case HAL_BOOLEAN: {
bool v = value->data.v_boolean;
if (wpi::glass::DeviceBoolean(name, direction == HAL_SimValueOutput, &v,
model->GetSource(handle))) {
model->GetSource(handle))) {
valueCopy.data.v_boolean = v ? 1 : 0;
HAL_SetSimValue(handle, valueCopy);
}
@@ -159,8 +160,8 @@ static void DisplaySimValue(const char* name, void* data,
}
case HAL_DOUBLE:
if (wpi::glass::DeviceDouble(name, direction == HAL_SimValueOutput,
&valueCopy.data.v_double,
model->GetSource(handle))) {
&valueCopy.data.v_double,
model->GetSource(handle))) {
HAL_SetSimValue(handle, valueCopy);
}
break;
@@ -168,21 +169,23 @@ static void DisplaySimValue(const char* name, void* data,
int32_t numOptions = 0;
const char** options = HALSIM_GetSimValueEnumOptions(handle, &numOptions);
if (wpi::glass::DeviceEnum(name, direction == HAL_SimValueOutput,
&valueCopy.data.v_enum, options, numOptions,
model->GetSource(handle))) {
&valueCopy.data.v_enum, options, numOptions,
model->GetSource(handle))) {
HAL_SetSimValue(handle, valueCopy);
}
break;
}
case HAL_INT:
if (wpi::glass::DeviceInt(name, direction == HAL_SimValueOutput,
&valueCopy.data.v_int, model->GetSource(handle))) {
&valueCopy.data.v_int,
model->GetSource(handle))) {
HAL_SetSimValue(handle, valueCopy);
}
break;
case HAL_LONG:
if (wpi::glass::DeviceLong(name, direction == HAL_SimValueOutput,
&valueCopy.data.v_long, model->GetSource(handle))) {
&valueCopy.data.v_long,
model->GetSource(handle))) {
HAL_SetSimValue(handle, valueCopy);
}
break;
@@ -234,7 +237,8 @@ void SimDeviceGui::Initialize() {
});
}
wpi::glass::DataSource* SimDeviceGui::GetValueSource(HAL_SimValueHandle handle) {
wpi::glass::DataSource* SimDeviceGui::GetValueSource(
HAL_SimValueHandle handle) {
return gSimDevicesModel->GetSource(handle);
}

View File

@@ -64,9 +64,9 @@ int HALSIM_InitExtension(void) {
HAL_RegisterExtension(
HALSIMGUI_EXT_GETGUICONTEXT,
reinterpret_cast<void*>((GetGuiContextFn)&gui::GetCurrentContext));
HAL_RegisterExtension(
HALSIMGUI_EXT_GETGLASSCONTEXT,
reinterpret_cast<void*>((GetGlassContextFn)&wpi::glass::GetCurrentContext));
HAL_RegisterExtension(HALSIMGUI_EXT_GETGLASSCONTEXT,
reinterpret_cast<void*>(
(GetGlassContextFn)&wpi::glass::GetCurrentContext));
HALSimGui::GlobalInit();
DriverStationGui::GlobalInit();