* Fix DriverMode settings
* Update FileVisionSource.java
* Sort modes by resolution
* Filter duplicated modes
* run spotless
* Fix calibration bug
* run format
* aaaaa
* Add hardware and platform support
* decrease timing sensitivity
* Better handle jvm exitg
* Make reboot happen immediately
* Cleanup restart
* Remove debug print
* Fix Jackson exploding when deserializing old versions of configs
* Add unit test for old config versions
* Run format
* Add a comment
* remove isvendorcam from pipeline manager
* oops
* Update QuirkyCamera to do name-based matching
* Add pi-cam exposure set
* Refactor QuirkyCamera
* Add PiCam quirk test, fix tests for no-name quirky cameras
* Apply Spotless
* Add pinhole model unit test
* Auto reconnect to unconnected cameras
* Refactor vision source manager to not suck
* Filter allowed video modes
* Run spotless
* Fix filtering
* Update VisionSourceManager.java
* Remove debug stuff
* Add unit tests, rebase
* run spotless
* Fix config test
* Fix settings not being saved
* run spotless
* oop
* kil debug prints if we have no usb cams to match
* whoooops
* add braudcast
* Actually save pipeline settings
* fix memes
* get right coeffs
* Run spotless
* run spotless
* rebase and add some prints
* Sorry min
* Oops reimpl matching
* Oops
* Don't start metrics thread if not on linux
* Add statusLED support
* [Hardware] Add status LED support
* [Hardware] Invalid LED port checks
* [Hardware] Check if statusLED exists in config
This makes it so that settings are written to disk 1 second after settings have stopped being changed. This means that while dragging sliders in the UI, settings won't be written repeatedly. This reduces wear on system storage and improves performance, as saving is expensive.
* Add camera config for calibration to test mode
* Add 3D capabilities to test mode
* Add resources to main for jar testmode
* Refactor path utilities for test mode
* Apply spotless
* [Server] Hardware Management
* [Server] Hardware Management
* [Server] Hardware Management
* [Server] Hardware Management
* [Server] Hardware Management
* [Server] Hardware Management
* Added metricsPublisher
* [Server] Hardware Management
* [Server] Hardware Management
* Fill in HardwareConfig, allow JSON Comments
* Use hardware config
* [Hardware Management] Use Hardware Config
* [Hardware Management] Use softPWM for dimming
* [Hardware] Added HardwareConfig Test
* [Hardware] Started HardwareManager
* Start metrics thread in hardwareManager
* [Hardware] Added Hardware Manager Test
* [Hardware] Spotless
* [Hardware] Added logging, cleaned up HardwareConfig
* [Hardware] Added logging to PWM class
* [Hardware] Rebase off master, fix merge conflicts
* [Hardware] Ignore metrics commands if on pi
* [Hardware] Remove GPIO provision after shutdown
* [Hardware] Switch over to diozero
* [Hardware] Use broadcom pins
* [Hardware] Fix PWM port
* [Hardware] Use jpi instead of pigpio
* [Hardware] Use dizero-core
* [Hardware] No need to close LED
* [Hardware] Switch to jpigpio
* [Hardware] Initalize JPiGPIO in unit tests
* [Hardware] Use dutyCycle for LED dimming
* [Hardware] Add blink test to HardwareManager
* [Hardware] Fix PWM port
* [Hardware] Fix HardwareManagerTest
* [Hardware] Fix HardwareManagerTest
* [Hardware] Use waves for LED blinking
* [Hardware] Make blinking part of PWM
* [Hardware] Add API methods to hardware Manager
* [Hardware] Only start pigpio if on pi
* [Hardware] Merge PWM classes into GPIO
* [Hardware] Add Hardware stuff to VisionModules
* [Hardware] Remove random semicolon
Co-authored-by: Banks Troutman <btrout.dhrs@gmail.com>
* Add overload to logger.error() for Throwable to print stack trace
* Replaced all e.printStackTrace() with logger.error()
* Log level dependent on dev or release
* Add TimedTaskManager
* Remove LoopingRunnable, refactor ScriptManager
Refactored ScriptRunner as a runnable to be used with TimedTaskManager
* Add task cancellation
* Apply Spotless
* Fix scriptmanager call
* Selectively send pipeline changes
* Make input and output both rotated
* Notify UI of driver mode change over NT
* Fix "show multiple"
* Rename extent to fullness, fix area filtering
This is a breaking change to docs (make sure we note area is out of 100 and is percentage)
* Apply stream divisor to both streams
Co-authored-by: Banks T <btrout.dhrs@gmail.com>