Paso 2: Pasar el código por defecto
Ahora permite llegar a la diversión, la parte de la programación actual. Haga doble clic en MyRobot.cpp en el explorador del proyecto. Delante de usted ahora es un programa de trabajo que el robot en modo arcade durante el período de teleoperados. Vamos rápidamente a través del código para entender lo que está sucediendo hasta ahora.
Esta línea añade todas las funciones WPILib y las clases en el código. Necesita estas si quieres hacer algo útil con tu robot. Además de la inclusión de WPILib, esto convenientemente también incluirá string.h y iostream.
Esto comienza la clase llamada RobotDemo. Puede cambiar 'RobotDemo' a otra cosa, pero basta con asegurarse de que cada instancia de 'RobotDemo' en el archivo se cambia a su nombre de nuevo. Los dos puntos significa que IterativeRobot es una clase de padre de RobotDemo y RobotDemo hereda todos los métodos de IterativeRobot. Esto será importante más adelante.
Esto define dos variables privadas: myRobot y palillo. myRobot contiene todas las funciones para la conducción de tu robot y la variable de palo obviamente mantiene las funciones para la entrada de lectura de la palanca de mando.
Esto establece un tiempo de expiración en segundos para los motores de la clase RobotDrive. Si perro guardián del motor no se alimenta durante este tiempo, asumirá que programa de la robusteza se ha congelado y detendrá automáticamente los motores. 0.1 segundos debe ser mucho tiempo, pero si está ejecutando procesamiento de visión o alguna otra tarea intensiva de cpu y los motores son parar cuando no se supone que sea, intente aumentar la fecha de caducidad.
Establece el tiempo entre llamadas a funciones periódicas en segundos. Si ponen a cero, sincroniza con los datos de control de la estación de controlador (que termina por llamar a la función de cada 0,02 segundos aproximadamente). Si no se llama a esta función, por defecto 0.0, así que esta línea es de inútil.
Esta es una lista de inicialización. Como sugiere el comentario, debe inicializar en el orden que usted declaró. Los parámetros para myRobot son: número de puerto para tu robot izquierdo del motor seguido por el número de puerto para el motor derecho de la robusteza. Esto asume que usted está usando jaguares como controladores de motores. El parámetro para el palillo es el número de joystick. ¿Puedes ver lo que es ir a la? ficha de la DriverStation y mirar la posición del joystick en la lista. El número de joystick por defecto es 1.
Una función que llama a WPILib cuando el robot se enciende, se sólo llama una vez, lo que es un lugar seguro para inicializar las variables y asignar memoria dinámica.
Estas funciones se llaman automáticamente por WPILib cada vez que se cambia el modo de robot, ya sea por la estación del conductor o el FMS (sistema de mensajería de campo) se llama a la función de inicio con el nombre de la nueva modalidad. Generalmente autónomo todo el código está escrito en la función AutonomousInit.
DisabledInit no sigue las reglas de las otras funciones de inicialización de modo. DisabledInit se llama solo la primera vez que el robot está deshabilitado. Esto es más probable porque el robot se desactivará solamente una vez durante un juego real.
Estas funciones se llamará cerca de 50 veces por segundo mientras que en el modo apropiado (a menos que usted llama esto -> SetPeriod() con un parámetro que no sea 0.02 o 0, en cuyo caso las funciones periódicas se llamará (1/período) veces por segundo).
Una nota importante acerca de init y funciones periódicas: las funciones periódicas para un modo de no ejecutar a menos que la función de inicialización haya finalizado. Por ejemplo, si tienes algo como esto:
Tu robot generará continuamente que le gustan los perros, y aun cuando en modo autónomo durante mucho tiempo no generará el hecho de que los gatos son mejores. Código de larga duración en sus funciones de inicialización puede no ser obvia este, pero siempre es un tema importante cuidado al programar tu robot.
Este soporte cierra la clase RobotDemo. Al final de una clase es una de las pocas situaciones donde necesita un punto y coma después de después de un soporte. No se olvide esto.
Esto debe ser siempre la última línea de código en el archivo MyRobot.cpp. Es una macro que está definida en RobotBase.h y dice el resto de la WPILib que la clase RobotDemo es la clase que debería utilizar para llamar a las funciones init, funciones periódicas, etc.. Sin esta línea, probablemente obtendrá un error de código de Robot No cuando implementarlo para el cRIO.