New routines#12
Conversation
| this.fileName = fileName; | ||
| } | ||
|
|
||
| public static String[] getPaths() { |
There was a problem hiding this comment.
bruno, acho que não tem necessidade a criação desse método, ele acaba só deixando mais complexa a lógica
pensa que uma maneira de tu pegar todos os valores do RobotPath é fazer:
Robot.values(), isso irá retornar uma String[]
obs.: o fileName tem q ser public e não private
Então o que eu pensei, utilizando programação funcional, é:
// vou fazendo por partes pra ficar mais explicadinho
var robotPathValues = RobotPath.values(); // pego todos os valores do enum path, porém ele irá retornar o nome do enum em si, ex GALACTIC_A
var pathsStream = Arrays.stream(robotPathValues); // transformei em um stream pra poder fazer o map da propriedade fileName
var pathsStreamMap = pathsStream.map(p -> p.fileName); // aqui eu to mapeando então pra que oq seja retornado seja o fileName, entretando, isso irá retornar um Stream<String> e a gente precisa de um array de strings
var pathsArrayString = pathsStreamMap.toArray(String[]::new); // com o .toArray, eu converto pra um array, porém como um objecto, por isso, com o String[]::new, eu estou passando que eu quero um Array de String
Então quando tu fosse instanciar o trajectory builder, seria:
var paths = Arrays.stream(RobotPath.values()).map(p -> p.fileName).toArray(String[]::new);
trajectoryBuilder = new TrajectoryBuilder(drivetrain, paths);
ou ainda tu poderia deixar como um método no enum, porém eu deixaria só como "get", pq tu vai pegar todo o RobotPath, getPath fica um pouco redundante na hora de ler
| public class Robot extends TimedRobot { | ||
| private Command autonomousCommand; | ||
| public static Drivetrain drivetrain; | ||
| public static Intake intake; |
There was a problem hiding this comment.
acho que faltou coisa aqui, a bibiana já tinha adicionado o buffer na master
| public void disabledInit() { | ||
| this.robotContainer.reset(); | ||
| } | ||
| public void disabledInit() {} |
| @Override | ||
| public void teleopPeriodic() {} | ||
| public void teleopPeriodic() { | ||
| Teleoperated.getInstance().periodic(); |
There was a problem hiding this comment.
uma coisa que a gente vai ter que analisar é se esse periodic pode realmente ficar aqui, pq o robot container ficva lá no robot init, e nele ele já agendava todos os comandos né... enfim, não sei a resposta! mas não podemos esquecer disso
|
|
||
| import frc.robot.Robot; | ||
| import frc.robot.commands.autons.GalacticA; | ||
|
|
There was a problem hiding this comment.
remover os espaços desnecessários
| //add all paths here | ||
| GALACTIC_A("galaticA"); | ||
|
|
||
| private final String fileName; |
|
|
||
| private void configureButtonBindings() { | ||
| this.commandsDrivetrain(); | ||
| this.commandsIntake(); |
There was a problem hiding this comment.
tem q ver os commands do buffer na master
…utonomous enum, instantiations are now in global variables
| private static Autonomous autonomous; | ||
|
|
||
| private Command automonousCommand = this.getAutonomousCommand(); | ||
| private SendableChooser<Command> chooser = new SendableChooser<>(); |
There was a problem hiding this comment.
acho q faz sentido deixar o automonousCommand abaixo do chooser, ja q o getAutonomousCommand utiliza o chooser
|
na classe autonomous, no metodo init, tem q ser lá msm pra selecionar o uatonomos |
| shooter = new Shooter(); | ||
|
|
||
|
|
||
| trajectoryBuilder = new TrajectoryBuilder(drivetrain, RobotPath.get()); |
There was a problem hiding this comment.
eu tava pensando e acho que o trajectoryBuilder poderia ficar só na class Autonomous, já que é só lá que vamos utilizar. aí da pra colocar ela dentro desse método configOptions, aí no final das contas vai ser chaamdo no init igual
No description provided.