mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
42 lines
1.4 KiB
C++
42 lines
1.4 KiB
C++
|
|
/*----------------------------------------------------------------------------*/
|
||
|
|
/* Copyright (c) 2019-2020 FIRST. All Rights Reserved. */
|
||
|
|
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
||
|
|
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
||
|
|
/* the project. */
|
||
|
|
/*----------------------------------------------------------------------------*/
|
||
|
|
|
||
|
|
#include "glass/hardware/AnalogGyro.h"
|
||
|
|
|
||
|
|
#include "glass/DataSource.h"
|
||
|
|
#include "glass/other/DeviceTree.h"
|
||
|
|
|
||
|
|
using namespace glass;
|
||
|
|
|
||
|
|
void glass::DisplayAnalogGyroDevice(AnalogGyroModel* model, int index) {
|
||
|
|
char name[32];
|
||
|
|
std::snprintf(name, sizeof(name), "AnalogGyro[%d]", index);
|
||
|
|
if (BeginDevice(name)) {
|
||
|
|
// angle
|
||
|
|
if (auto angleData = model->GetAngleData()) {
|
||
|
|
double value = angleData->GetValue();
|
||
|
|
if (DeviceDouble("Angle", false, &value, angleData)) {
|
||
|
|
model->SetAngle(value);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// rate
|
||
|
|
if (auto rateData = model->GetRateData()) {
|
||
|
|
double value = rateData->GetValue();
|
||
|
|
if (DeviceDouble("Rate", false, &value, rateData)) {
|
||
|
|
model->SetRate(value);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
EndDevice();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void glass::DisplayAnalogGyrosDevice(AnalogGyrosModel* model) {
|
||
|
|
model->ForEachAnalogGyro(
|
||
|
|
[&](AnalogGyroModel& gyro, int i) { DisplayAnalogGyroDevice(&gyro, i); });
|
||
|
|
}
|