ftc robot c to java
TRANSCRIPT
![Page 1: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/1.jpg)
FTC: Moving from Robot-C to Java
5/2/15Jeanne Boyarsky
Programming Mentor FRC Team 694
slideshare.net/boyarskyTwitter @jeanneboyarsky
Blog: http://www.selikoff.netModerator on Java forums at:
http://www.coderanch.com
![Page 2: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/2.jpg)
Pause for CommercialMy first book:
![Page 3: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/3.jpg)
Choices for CodingStep Tool Type of
programmingComments
Crawl Point to Point (download two existing apps)
Configuration Rookie teams?Prototyping?
Walk MIT App Inventor
Blocks Like Scratch
Run Android Studio Text (most like Robot-C)
Real programmers use
http://appinventor.mit.edu/explorehttps://developer.android.com/sdk/index.html
![Page 4: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/4.jpg)
Java – the lay of the land
Non-Android Java program stops here
![Page 5: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/5.jpg)
Major parts
JDK (Java Development Kit)
IDE (integrated development environment)
Editor Emulator
javac
JRE (java runtime environment)
APIs (libraries)
Git (version control)
javaGradle (build)
Note: Github.com offers free hosting
![Page 6: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/6.jpg)
Installing Android Studio
Pre-reqs:
Java JDK 8 (or 7 if already have it)
Lots of RAM (2-4 GB)
Any Operating System
http://www.oracle.com/technetwork/java/javase/downloads/index.html
https://developer.android.com/sdk/index.html
The official IDE for Android!
![Page 7: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/7.jpg)
SetupPre-reqs:
Time
Internet
Admin rights
Wizard guides you through setup/downloads runtime
![Page 8: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/8.jpg)
Create Android project (even to play with Java)
![Page 9: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/9.jpg)
Create Java library
![Page 10: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/10.jpg)
Finish up
![Page 11: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/11.jpg)
First class
![Page 12: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/12.jpg)
Run it
Run > Run FTC
![Page 13: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/13.jpg)
C/C++ vs Java - differences
For C/C++ Java
Constants Header file Interfaces or static/final fields
Referencing other code
#include import
Primitives bool, int, short, etc boolean, short, int, long, float, double
Strings char[] or string String
These are not logical equivalents. Just in similar spaces.
![Page 14: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/14.jpg)
Same in Java
LotsArrays
If statements
Math
Calling a method (mostly)
Comments
![Page 15: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/15.jpg)
Big differences in Java
Garbage collection!
no malloc/free – unless calling C/C++
No pre-processor directives
No pointers
No operator overloading
Platform independent
![Page 16: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/16.jpg)
Android Studio - ViewsDefault – Android view
Project view – shows file system
![Page 17: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/17.jpg)
Android Studio – AutocompleteControl + space
![Page 18: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/18.jpg)
Reading: Parts of a class
Imports
Superclass Interface
![Page 19: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/19.jpg)
Reading: C-like enough, right?
Instancevariable
![Page 20: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/20.jpg)
Package (like a folder for grouping)Top level Class
Nested class
Comment
Constant
Reading: Complex Android Class
![Page 21: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/21.jpg)
Java Version Q&A
Why doesn't Java know how to count? The versions go 1.1, 1.2, 1.3, 1.4, 5, 6, 7, 8
Blame marketing!
What books are good for learning Java?Head First Java
Thinking in Java (older versions free)
Java for Dummies
Deitel & Deitel
Core Java
![Page 22: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/22.jpg)
Questions
About Java:
– Friendly forums for those new (or not new) to Java:
http://www.coderanch.comFor FTC specific questions:
– http://www.chiefdelphi.com
– http://ftcforum.usfirst.org/forum.php
– https://www.reddit.com/r/FTC/
– Where else?
![Page 23: FTC Robot C to Java](https://reader035.vdocument.in/reader035/viewer/2022062406/55be4807bb61eb360d8b46ec/html5/thumbnails/23.jpg)
References
Android Studio: https://developer.android.com/sdk/index.htm
FTC Schematic: http://modernroboticsinc.com/Content/Images/uploaded/Schematicx1000.jpg
FTC Kit: http://modernroboticsinc.com/first-ftc
FTC Controller: http://first.intelitek.com