C++#
Η αναφορά API VEX V5 C++ εξηγεί τις κλάσεις, τα αντικείμενα, τους κατασκευαστές, τις συναρτήσεις-μέλη και τις μεταβλητές που χρησιμοποιούνται σε έργα VEXcode V5 C++.
Χρησιμοποιήστε αυτήν την αναφορά όταν θέλετε να κατανοήσετε πώς δημιουργείται μια συσκευή ή ένα χαρακτηριστικό, να ελέγξετε ποια υπογραφή συνάρτησης να χρησιμοποιήσετε ή να συγκρίνετε σχετικές συναρτήσεις-μέλη σε μια κλάση.
Οι εντολές C++ χρησιμοποιούνται σε έργα VEXcode V5 C++. Οι πληροφορίες API C++ μπορούν επίσης να υποστηρίξουν έργα γραμμένα σε κώδικα Visual Studio με την επέκταση κώδικα VEX Visual Studio.
Πώς να διαβάσετε μια σελίδα κλάσης C++#
Μια σελίδα κλάσης C++ συνήθως ακολουθεί την εξής σειρά:
Εισαγωγή - Εξηγεί τι αντιπροσωπεύει η κλάση και πότε είναι χρήσιμη.
Παράγωγες Κλάσεις - Παραθέτει τυχόν κλάσεις που βασίζονται σε αυτήν την κλάση, εάν υπάρχουν.
Κατασκευαστής ή Κατασκευαστές Κλάσης - Εμφανίζει τη σύνταξη που χρησιμοποιείται για τη δημιουργία ενός αντικειμένου από την κλάση.
Καταστροφέας Κλάσης - Εμφανίζει τη σύνταξη που χρησιμοποιείται για την καταστροφή του αντικειμένου και την απελευθέρωση των πόρων του, εάν υπάρχει.
Παράμετροι - Εξηγεί τις παραμέτρους του κατασκευαστή που χρησιμοποιούνται κατά τη δημιουργία του αντικειμένου.
Παράδειγμα - Δείχνει πώς να δημιουργήσετε το αντικείμενο σε κώδικα.
Συναρτήσεις-Μέλη - Παραθέτει τις συναρτήσεις που ανήκουν στην κλάση, συχνά ομαδοποιημένες κατά σκοπό.
Εισαγωγές Συνάρτησης - Εξηγεί κάθε συνάρτηση-μέλος, συμπεριλαμβανομένων των διαθέσιμων συναρτήσεων, παραμέτρων, τιμών επιστροφής, σημειώσεων και παραδειγμάτων.
Δεν έχουν κάθε σελίδα όλες τις ενότητες. Για παράδειγμα, ορισμένες σελίδες δεν περιλαμβάνουν παράγωγες κλάσεις και ορισμένες συναρτήσεις δεν έχουν παραμέτρους ή τιμές επιστροφής.
Κοινά στοιχεία API C++#
Στοιχείο |
Τι σημαίνει |
|---|---|
Τάξη |
The C++ type for a device or feature, such as |
Αντικείμενο |
A named instance created from a class, such as |
Κατασκευαστής |
Ο κώδικας που χρησιμοποιείται για τη δημιουργία ενός αντικειμένου από μια κλάση. |
Συνάρτηση μέλους |
A command called on an object, such as |
Διαθέσιμη λειτουργία |
Μία ακριβής υπογραφή συνάρτησης που μπορεί να χρησιμοποιηθεί για μια συνάρτηση-μέλος. Ορισμένες συναρτήσεις-μέλη έχουν περισσότερες από μία διαθέσιμες συναρτήσεις. |
Παράμετρος |
Μια τιμή που μεταβιβάζεται σε έναν κατασκευαστή ή συνάρτηση για να ελέγχει τι κάνει. |
Επιστρεφόμενη τιμή |
A value a function gives back, such as |
Βασικό λεξιλόγιο C++#
Ορος |
Τι σημαίνει |
|---|---|
Μεταβλητός |
A name that stores a value, such as |
Τύπος |
The kind of data something stores, such as |
Σειρά |
Text inside quotes, such as |
int |
A positive or negative whole number type, such as |
διπλό |
A number type that can include a decimal, such as |
μπουλ |
A value that is either |
Επιχείρημα |
A value passed into a member function or function call, such as |
Κατασκευαστές και Αντικείμενα#
Πριν χρησιμοποιήσετε συναρτήσεις-μέλη από πολλές κλάσεις C++, πρέπει να υπάρχει ένα αντικείμενο. Ο κατασκευαστής δείχνει πώς να δημιουργήσετε αυτό το αντικείμενο.
Για παράδειγμα, ένα αντικείμενο motor μπορεί να δημιουργηθεί δίνοντας στον κατασκευαστή τις πληροφορίες θύρας ή διαμόρφωσης που χρειάζεται:
motor Motor1 = motor(PORT1, false);
Αφού δημιουργηθεί το αντικείμενο, οι συναρτήσεις-μέλη του μπορούν να κληθούν:
Motor1.spin(forward);
Στο VEXcode, η διαμόρφωση της συσκευής συχνά δημιουργείται αυτόματα από το μενού Συσκευής. Στον κώδικα του Visual Studio με την επέκταση VEX, οι κατασκευαστές ενδέχεται να χρειαστεί να γραφτούν χειροκίνητα.
Επιλογή της σωστής διαθέσιμης λειτουργίας#
Ορισμένες συναρτήσεις-μέλη έχουν περισσότερες από μία διαθέσιμες συναρτήσεις. Κάθε συνάρτηση χρησιμοποιεί ένα διαφορετικό σύνολο παραμέτρων, επομένως επιλέξτε αυτήν που ταιριάζει με τις τιμές που πρέπει να παρέχει το έργο σας.
Για παράδειγμα, μια συνάρτηση συστήματος μετάδοσης κίνησης μπορεί να έχει μία έκδοση που χρησιμοποιεί την τρέχουσα ταχύτητα και μια άλλη έκδοση που επιτρέπει στο έργο να επιλέξει μια ταχύτητα:
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Both functions call drive, but the second function gives more control because it includes velocity parameters.
Παράδειγμα καταχώρησης συνάρτησης#
οδηγώ#
drive moves the robot forward or reverse forever. The robot will continue to move until it is given another action, like turning or stopping. For RPM or DPS, the limit is changed by the gear ratio of the drivetrain.
Διαθέσιμες λειτουργίες
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
The direction the robot moves: |
|
|
The velocity to drive with from 0% to 100% when using |
|
|
The velocity unit: |
Επιστρεφόμενη τιμή
Αυτή η συνάρτηση δεν επιστρέφει τιμή.
Σημειώσεις
driveis non-waiting; the project will continue executing the next line of code immediately after the call.The drivetrain will continue moving until
stopis called or another drivetrain movement function is executed.Functions such as
isDoneandisMovingare not applicable todrive, since it does not use target-based movement.
Παράδειγμα
// Drive forward and back
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();
Συμπεριφορά αναμονής και μη αναμονής#
Ορισμένες συναρτήσεις κίνησης C++ περιμένουν μέχρι να ολοκληρωθεί μια ενέργεια προτού το έργο μετακινηθεί στην επόμενη γραμμή κώδικα. Άλλες συναρτήσεις ξεκινούν μια ενέργεια και επιτρέπουν στην επόμενη γραμμή να εκτελεστεί αμέσως.
Αναμονή - Το έργο περιμένει μέχρι να ολοκληρωθεί η λειτουργία.
Μη αναμονή - Το έργο ξεκινά τη συνάρτηση και συνεχίζει αμέσως στην επόμενη γραμμή.
Some functions include a parameter such as waitForCompletion to choose this behavior. For those functions, true usually makes the project wait, while false lets the next line run right away.
Εντολές σε υποενότητες#
Οι εντολές C++ οργανώνονται ανά συσκευή ή θέμα. Για παράδειγμα, οι εντολές για το Drivetrain, τους Motors, τον Controller, τον Brain, τις συσκευές Smart Port, τις συσκευές 3-Wire, την Console, τη Logic και το VEXlink ομαδοποιούνται σε ξεχωριστές υποενότητες.