Added disk usage percentage hardware stat
Updated Settings-General UI to have table-layout for metrics and other info
Added a `synchronized` modifier to the command runner due to some InterruptedThreadExceptions that were spuriously showing up while getting stats. Added additional stack trace logging when issues arise.
Changes exposure setters to accept a floating point input (rather than integer)
Updates the UI to change exposure in increments of 0.1 (rather than 1.0)
Updates quirky PI camera logic to use the raw_ interface with scaling/offset logic matching the GPU-accelerated pi3 camera logic from Declan.
Adds logic to disable auto-white-balance in the PI camera, which should yield more consistent vision processing results.
* Added input and output frame file save routines
* First pass at review items
* Revised logic to not crash on start and pass tests
* Updated build.gradle to force line endings. Spotless passes now.
* Reverted lineEndings to not force Unix.
Gerth needs to fix up his dev pc.
Co-authored-by: Banks T <btrout.dhrs@gmail.com>
* Rename MJPEG streams when camera name changes
* Change camera name to HTTP request
This allows us to wait for it to for sure be done
* Fix reload logic
* whee lnt
* Reload on backend connect too
* Update CameraAndPipelineSelect.vue
* Change chessboard size to be squares not interior corners
This reduces ambiguity
* Force users to select resolution
This forces the correct video mode index to be selected. Otherwise the 0th camera videomode index will be used, as it's zero-inited. This is undesirable.
* Make target model an enum
This will allow the UI to remember the currently selected target.
* 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>