Skip to content

New routines#12

Open
BrunoOsio wants to merge 11 commits into
masterfrom
new-routines
Open

New routines#12
BrunoOsio wants to merge 11 commits into
masterfrom
new-routines

Conversation

@BrunoOsio
Copy link
Copy Markdown
Member

No description provided.

this.fileName = fileName;
}

public static String[] getPaths() {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

acho que faltou coisa aqui, a bibiana já tinha adicionado o buffer na master

Comment thread src/main/java/frc/robot/Robot.java Outdated
public void disabledInit() {
this.robotContainer.reset();
}
public void disabledInit() {}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

drivetrain.reset();

@Override
public void teleopPeriodic() {}
public void teleopPeriodic() {
Teleoperated.getInstance().periodic();
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remover os espaços desnecessários

//add all paths here
GALACTIC_A("galaticA");

private final String fileName;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tornar público


private void configureButtonBindings() {
this.commandsDrivetrain();
this.commandsIntake();
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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<>();
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

acho q faz sentido deixar o automonousCommand abaixo do chooser, ja q o getAutonomousCommand utiliza o chooser

@gabrielatomaz
Copy link
Copy Markdown
Member

na classe autonomous, no metodo init, tem q ser lá msm pra selecionar o uatonomos
this.automonousCommand = this.getAutonomousCommand();
o setAutonomousOptions
pode virar um método public, configOptions
e tem q ser chamado lá na classe robot em robotInit
GALACTIC_A("galaticA"); (ta escrito errado o galaticA, ta faltando um c "galaCticA")
o teleoperado tu tem q atualizar, pq a gente adicionou novos comandos ne
mudou os do buffer, foram adicionados o do shooter etc
a classe GalacticA vai dar erro tb pq tu ta chamando o "autoAwards" mas ele n foi criado no enum
e é isso, o resto só testando pessoalmente

shooter = new Shooter();


trajectoryBuilder = new TrajectoryBuilder(drivetrain, RobotPath.get());
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants