Comments (5)
I would be happy to implement this in Java, but I disagree with a few points:
I think the current DS class would need a lot of added functionality to do this, said functionality already exists in RobotBase. Adding it to the DS would either cause duplicates or a buggy transition.
independently of user code
Is there a way to write functional robot code without using RobotBase
? If not, and the RobotBase class is trivial just like the DS class, then what problem is there with implementing it there? The functionality almost exists.
As I understand it, the wanted functionality is pretty much disabled/auto/teleop init/periodic
, just as a callback and not in the Robot functions.
from allwpilib.
What kind of stuff would we be running asynchronously? Is the idea that we'd have gyro calibration, for example, happen on the library side on DS transition, and the user wouldn't see it?
from allwpilib.
I think this would be useful mostly for team libraries, and/or decentralization of the Robot
class.
from allwpilib.
You can already get that "decentralization" by making a MySubsystem.teleopInit() function and call that in TimedRobot.telopInit(), and it's much easier to reason about and debug. Team libraries could do the same thing. Are there specific kinds of libraries you had in mind?
As @prateekma pointed out on the FRC Discord, a callback is useful when you don't have access to the state change, but you do in this case via the TimedRobot init() methods.
from allwpilib.
not really, it's just a possible reason I thought of. If this isn't a useful feature anymore, close this issue.
from allwpilib.
Related Issues (20)
- C++ Command Based: Assertion failed: isHandleInSync() && โinvalid iterator access!โ HOT 21
- angle of module position delta in odometry? HOT 6
- [math] Pose2d.minus has unexpected behavior; seems to rotate the translation HOT 7
- C++ SysIdRoutine Mechanism does not support null `log` function
- String tags for commands for easier command identification HOT 8
- Dynamic interruption behavior based on incoming command
- Make LinearSystemId functions return LinearSystem with fully observable state HOT 7
- AsynchronousInterrupt class seems to have rising and falling edges reversed in simulation
- AprilTag example is broken on Rio HOT 2
- README-CMAKE doesn't say how to use installed Java libraries HOT 2
- [ntcore] Back up persistent file on load error
- Using andThen on SequentialCommandGroup crashes HOT 1
- XboxControllerSim.getRumble() is wrong
- XboxControllerSim.getRumble() gives wrong results in simulation/unit testing with java
- [glass] Save value when clicking away from textbox
- scheduling from Command.end? HOT 7
- Add usage example to SynchronousInterrupt and AsynchronousInterrupt API docs
- Add AprilTag Tag Info to Field JSON HOT 6
- New Name For Command Decorator .deadlineWith() HOT 2
- Different Description Of The Command Being Decorated In Documentation And The Hover-Over JavaDocs HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from allwpilib.