|
| 1 | +#include "ExpansionHubNtState.h" |
| 2 | + |
| 3 | +#include "networktables/NetworkTableInstance.h" |
| 4 | + |
| 5 | +using namespace eh; |
| 6 | + |
| 7 | +void ExpansionHubNtState::Initialize(const nt::NetworkTableInstance& instance, |
| 8 | + int deviceNum) { |
| 9 | + if (isConnectedPublisher) { |
| 10 | + return; |
| 11 | + } |
| 12 | + |
| 13 | + nt::PubSubOptions options; |
| 14 | + options.sendAll = true; |
| 15 | + options.keepDuplicates = true; |
| 16 | + options.periodic = 0.005; |
| 17 | + |
| 18 | + auto busIdStr = std::to_string(deviceNum); |
| 19 | + |
| 20 | + for (int i = 0; i < static_cast<int>(motors.size()); i++) { |
| 21 | + motors[i].Initialize(instance, i, busIdStr, options); |
| 22 | + } |
| 23 | + |
| 24 | + for (int i = 0; i < static_cast<int>(servos.size()); i++) { |
| 25 | + servos[i].Initialize(instance, i, busIdStr, options); |
| 26 | + } |
| 27 | + |
| 28 | + transactionTimePublisher = |
| 29 | + instance.GetIntegerTopic("/rhsp/" + busIdStr + "/transactionTime") |
| 30 | + .Publish(options); |
| 31 | + |
| 32 | + batteryVoltagePublisher = |
| 33 | + instance.GetDoubleTopic("/rhsp/" + busIdStr + "/battery") |
| 34 | + .Publish(options); |
| 35 | + isConnectedPublisher = |
| 36 | + instance.GetBooleanTopic("/rhsp/" + busIdStr + "/connected") |
| 37 | + .Publish(options); |
| 38 | + |
| 39 | + numCrcFailuresPublisher = |
| 40 | + instance.GetIntegerTopic("/rhsp/" + busIdStr + "/numCrcFailures") |
| 41 | + .Publish(options); |
| 42 | + |
| 43 | + numMissedSendLoopsPublisher = |
| 44 | + instance.GetIntegerTopic("/rhsp/" + busIdStr + "/numMissedSendLoops") |
| 45 | + .Publish(options); |
| 46 | + |
| 47 | + numNacksPublisher = |
| 48 | + instance.GetIntegerTopic("/rhsp/" + busIdStr + "/numNacks") |
| 49 | + .Publish(options); |
| 50 | +} |
0 commit comments