Previously, negative output voltages were unpacked incorrectly.
Now, they're requested as percentages, unpacked, and then scaled
in software based on the bus voltage. The output voltage and
bus voltage shouldn't ever be out of sync, since they're in
the same message.
Change-Id: I745fffd0faa6cbaab967240271e6cfa8653212e2
Calling CANJaguar::Disable() now makes NetComms stop periodic
setpoint messages, so the motor actually stops until EnableControl()
is called again.
Change-Id: Ib4eb4ad5f729be5c74e799f02ed000511de1e03d
The CANJaguar class now stores a controlEnabled flag. When disabled, it
won't verify the control mode, which involves sending enable messages.
Change-Id: I8baa48eec31de6b4d3fee2b5a074320542a1bbef
This previous caused a bug where the Jaguar would sometimes
behave as if it were in the wrong mode, even when everything was
verfied.
Change-Id: Id5b96e0f7e64066eaaa0e5be4ba53fca76ba0703
Previously, the voltage was requested as a percentage and decoded as
a number of volts, which resulted in values being scaled wrong. The
correct message is requested now.
Change-Id: I5e81c7a4a2e2698f2e8a84ba747217e0e14f7676
All status data is now in 3 messages automatically sent periodically
by the Jaguar, removing the need to send several hundred requests
every second.
The C++ integration test was also updated to be more robust against
timing problems.
Change-Id: I13bacc6c8173ea1a2291a96ad3bd80ff5b18d16f
The C++ and Java CANJaguar constructors now wait up to 50 ms for the status
data to arrive at least one time. They break early if it arrives sooner.
This allows status getters to always work immediately after the object is
constructed.
Change-Id: I4a1f1538837c11b24d45e87251743b6c106ddefb
For example, it's no longer possible to compile a program that uses position
control without specifying a position reference, or one that uses an encoder
as a position reference without specifying a CPR. This eliminates a lot of
common CANJaguar mistakes.
Change-Id: I2b5fe1e2884cf3a0f9d5ccd233da4c2c9c1cff4c
All configuration messages are now verified.
All status messages are requested as periodic messages and retrieved on-demand.
All relevant configuration data is re-sent after a power cycle.
Change-Id: I3322d8b41d6fe058ad404b781f54e9c6153981bf
AnalogModule and DigitalModule classes still exist, at least until they are
refactored into the classes that use them.
Change-Id: I5544d5418822f19d54ba0a5d651e64fad8b7b10d
Made a toplevel directory for C++ and C++ tests
Change-Id: I4bc2074a7036ec7fe79568b411637a5bee9eb5b3
Added the C++ testing framework and one test
Change-Id: I1e80a1e16b251a49666820a9d4c8caa025da9785