Quote:
Originally Posted by RufflesRidge
Continuing to parrot this rhetoric at every opportunity over a season after No-Ack commands have been implemented in the Jaguar firmware and LabVIEW libraries doesn't seem quite right.
Now if you want to complain about the C++ and Java libraries not implementing them, that would probably be more appropriate.
|
I suggested an alternative method using a state-machine for each Jaguar. There are still many deficiencies of the protocol, as the isochronous updates only apply to set commands, not set configuration, and configuration is volatile so it must be re-sent periodically if a device resets, or if the software wishes to change it (e.g. gain scheduled PID). A purely isochronous protocol would be significantly better.
When I implemented a rewrite of WPIlib in LabVIEW, I removed all CAN support because it wasn't worth the trouble. In fact, I removed almost all FPGA functionality that wasn't commonly used to improve efficiency. I only kept PWM, Analog input, Accumulator, DI, Relay, Solenoid, Encoder, and Counter. I will heavily consider adding CAN support back in for 2015, if CTRE improves the protocol design.
As for C++/Java libraries not implementing them, then the isochronous no-ack set command messages would be a good step.
If you would like any advice at all on how FRC-can operates or implementation advice from a CAN message standpoint (not java specific), I can answer questions, but I am not a Java programmer.