Bot releases are hidden (Show)
General improvements to PidController
applyAsDouble
and isInTolerance
isInTolerance
to not use clock to check tolerance stability any longer, but rather use the error velocity to determine that.
Clock
and thus it was removed from usePublished by tomtzook 9 months ago
Action
from inside another Action
.DeviceInterface
to use a better defined id for devices.Published by tomtzook 9 months ago
Watchdog
. Useful for tracking execution of looping code flows.
Watchdog
s can be created from FlashLibControl.newWatchdog
and will be tracked by a separate threadLoopingRobotBase
updated to use a Watchdog
Published by tomtzook 10 months ago
PidController
D component to take period into accountPublished by tomtzook 12 months ago
InstanceId
for null pointer checksInstanceIdGenerator
to support better generation of machine id
Published by tomtzook about 1 year ago
Actions.waitUntil
LoggerFactory
. Property files define logger functionality depending on implementation.SynchronousScheduler
.ServiceRegistry
: registers and tracks castle's com.castle.concurrent.service.Service
. Useful for creating services (mostly multithreaded) to be used by the robot code.NetworkInterface
: access to networking protocols via the robot. Namely HFCS and OBSR.FlashLibMainThread
: tracks the main application thread. Allows queuing tasks to run on this thread from other threads. Methods annotated with MainThreadOnly
must be called from that thread.DeviceInterface
: a provider of device interface implementation. Extendible using java's SPI
ActionStartSelector
, a specialized selector, allowing selection of and Action
based on pre-made conditions.PidController
now has isInTolerance
as indication that the error is acceptable and the system is in the wanted setpoint. Uses both checks on error and a timeout to ensure stability.Action
interface modified with the addition of ActionControl
to execute
and initialize
, allowing further control of the Action
.
isFinished
. Instead use, ActionControl.finish
in execute
or initialize
end
now receives FinishReason
instead of wasInterrupted
to describe the finish reason more specifically.Action
interface methods (e.g. initialize
) no longer have default implementations and must be implemented.flashlib.robot.systems
flashlib.vision.core
and flashlib.vision.cv
flashlib.core.io
implementation. Under new component flashlib.io.hal
.Trigger
and ManualTrigger
DeviceInterface
for creating and working with devices abstractly.Published by tomtzook almost 2 years ago
Trigger
s with Triggers.manual()
.DualshockController
). Can be created with HidInterface.newDualshockController
,Trigger
s are now created from Scheduler.newTrigger
.ActionConfiguration
now contains a set of ActionFlags
which influence different behaviors.
ActionFlag.RUN_ON_DISABLED
: when set, Action
is allowed to run disabled modes (SchedulerMode.isDisabled
returns true
). When not set, the Action
will be cancelled.ActionFlag.PREFERRED_FOR_REQUIREMENTS
: when set, the Action
will not be interrupted due to requirements conflict. Attempting to start a new Action
which conflicts with such Action
will either cause an exception or put the new action in a wait queue for execution (depends on Scheduler
implementation).Analysis
objects modified to reflect a strong API for identified targets.
Analysis.getDetectedTargets
returns a list of Target
objects.IterativeRobot
now contains implementable exit methods for control modes, called when leaving the current mode and entering a different control mode.SynchronousSchedluer
is deprecated now. A new implementation, SingleThreadedScheduler
should be used instead.flashlib.hid.sdl2
which uses SDL2 to interface with HID. The interface can be used with Sdl2Hid
. Natives for using SDL2 should be installed before hand and JNI should be added from the com.github.tomtzook:jsdl2-jni
artifact.whenInterrupted
callback for ActionGroup
. Called when the group is interrupted.ActionGroup
s implementations are no longer exposed directly. Use Scheduler.newActionGroup
to create one instead.
ActionGroup
revamped.Published by tomtzook almost 3 years ago
Major update to project structure and most core components.
generic
implementation for the API.Scheduler
, Action
and Trigger
are now interfaces.SingleThreadScheduler
provides the basic implementation for Scheduler
. Organized as a way to support multi-threading in the future.Subsystem
, but rather to Requirement
interface. Subsystem
being a specific type.ParallelRaceActionGroup
.Action.andThen
, Action.alongWith
and Action.raceWith
.IoInterface
for creating Io ports with the robot generically.RobotControl
from robot bases.robotInit
is no longer preferred when creating the robot. Instead, the use of a constructor is.Image
type, now any type can be used.See examples and Wiki for more information.
Published by tomtzook almost 5 years ago
Published by tomtzook almost 5 years ago
Update to the robot mode system, and robot bases.
Published by tomtzook almost 5 years ago
First full release in FlashLib's
2.0.0 rewrite.
Published by tomtzook about 5 years ago
Published by tomtzook about 5 years ago
A beta release for version 2.0.0, using continuous deployment. Preparing for the final release of 2.0.0. Was deployment to maven central as well.
Published by tomtzook over 5 years ago
Now officially declaring the next release as 2.0.0. This is an alpha release for testing of the new version.
Published by tomtzook about 7 years ago
Release 1.2.0 focuses on the non-FRC robot framework, making it the center of FlashLib.
1.2.0 introduces new features into FlashLib like the Hardware Abstraction Layer, and provides improvements of existing features. From this version FlashLib is ready to be fully deployed with non-FRC robotics applications.
Checkout the wiki page of the release for more information: Release 1.2.0
Published by tomtzook about 7 years ago
Update to the java port of FlashLib and Flashboard.
This release contains major improvement to the library build process, refinement of robot abstraction, improvements to the communications system, major changes in the HID package and some performence updates to Flashboard.
Some code from previous version of the library will not be compatible with the changes made. Especially revolving the robot abstraction and HID package.
Published by tomtzook about 7 years ago
Release 1.0.1 is an update for the origin 1.0.0 intended for FRC use. It includes bug fixes and many improvements and addition to both Flashboard and FlashLib for Java.
Although work was done to the entire library, notable changes were the vision system, scheduler improvements, communications refinement. Addition were made to util in the form of JavaBeans, a new vision editing window for vision in Flashboard and many more things.
Examples were updated and new ones were added to help users with using the library.
Unfortunatly, because of the many changes, this version is not compatible with most code written for version 1.0.0. Please refer to the examples or the Wiki for information about changes and differences.
Published by tomtzook over 7 years ago
First release is finally here and ready for FRC use.