Πύργος Σημάτων#

Εισαγωγή#

Η κλάση signaltower χρησιμοποιείται για την αλλαγή φώτων και την ανίχνευση αλληλεπιδράσεων με τον Πύργο Σημάτων CTE.

Κατασκευαστές κλάσεων#

signaltower( 
  int32_t  index );

Καταστροφέας κλάσης#

Καταστρέφει το αντικείμενο signaltower και απελευθερώνει τους σχετικούς πόρους.

virtual ~signaltower();

Παράμετροι#

Παράμετρος

Τύπος

Περιγραφή

index

int32_t

Η Έξυπνη Θύρα στην οποία είναι συνδεδεμένος ο Πύργος Σημάτων, γράφεται ως PORTx, όπου x είναι ο αριθμός θύρας (για παράδειγμα, PORT1).

Παραδείγματα#

// Create a signal tower instance in Port 1
signaltower SignalTower = signaltower(PORT1);

Συναρτήσεις Μελών#

Η κλάση signaltower παρέχει τις ακόλουθες συναρτήσεις-μέλη:

  • setColor - Ελέγχει τα χρώματα και τις καταστάσεις των LED στον Πύργο Σημάτων χρησιμοποιώντας διάφορες μεθόδους εισαγωγής.

  • setColors - Ορίζει την κατάσταση όλων των LED στον Πύργο Σήματος ξεχωριστά.

  • setBlink - Ορίζει την κατάσταση αναλαμπής μιας λυχνίας LED στον Πύργο Σημάτων με βάση το αναγνωριστικό της λυχνίας LED.

  • setBlinkTime - Ορίζει το χρόνο μεταξύ των αναλαμπών για τις λυχνίες LED στον Πύργο Σήματος.

  • enableBlink - Ενεργοποιεί το αναβόσβημα πολλαπλών LED στον Πύργο Σημάτων με βάση τα αναγνωριστικά τους.

  • disableBlink - Απενεργοποιεί το αναβόσβημα πολλαπλών LED στον Πύργο Σημάτων με βάση τα αναγνωριστικά τους.

  • πίεση - Επιστρέφει εάν ο προφυλακτήρας του Πύργου Σήματος πατιέται αυτήν τη στιγμή.

  • πατημένο - Καταγράφει μια συνάρτηση που θα κληθεί όταν πατηθεί ο προφυλακτήρας του Πύργου Σήματος.

  • released - Καταγράφει μια συνάρτηση που θα κληθεί όταν απελευθερωθεί ο προφυλακτήρας του Πύργου Σήματος.

setColor#

Ελέγχει τα χρώματα και τις καταστάσεις των LED στον Πύργο Σημάτων χρησιμοποιώντας διάφορες μεθόδους εισαγωγής. Αυτά τα φώτα μπορούν να χρησιμοποιηθούν για την παρακολούθηση της θέσης του ρομπότ σε ένα έργο ή για να δείξουν πότε πληρούνται ορισμένες συνθήκες.

Available Functions

1 — Ορίζει τον Πύργο Σημάτων σε ένα χρώμα χρησιμοποιώντας την εντολή vex::color.

void setColor( 
  vex::color         color, 
  signaltower::state state = signaltower::state::on );

2 — Ορίζει τα χρώματα των LED χρησιμοποιώντας τιμές RGB και YW 32-bit.

void setColor( 
  uint32_t rgb, 
  uint32_t yw );

3 — Ορίζει τη φωτεινότητα κάθε LED με βάση το αναγνωριστικό LED.

void setColor( 
  ledId id, 
  uint32_t value );

4 — Ορίζει τα επίπεδα φωτεινότητας για όλα τα LED ξεχωριστά.

void setColor( 
  uint8_t r, 
  uint8_t y, 
  uint8_t g, 
  uint8_t b, 
  uint8_t w );

Parameters

Παράμετρος

Τύπος

Περιγραφή

color

vex::color

Το χρώμα που θα χρησιμοποιηθεί:

  • red
  • yellow
  • green
  • blue
  • white
  • all

state

signaltower::state

Η κατάσταση για τη λυχνία LED:

  • on (Προεπιλογή) – Ανάβει τη λυχνία LED.
  • off – Σβήνει τη λυχνία LED.
  • blink – Κάνει τη λυχνία LED να αναβοσβήνει.

rgb

uint32_t

Η φωτεινότητα του κόκκινου, του πράσινου και του μπλε LED χρησιμοποιώντας μια τιμή 32-bit (π.χ., κόκκινο ενεργοποιημένο = 0xFF0000, πράσινο ενεργοποιημένο = 0x00FF00και μπλε ενεργοποιημένο = 0x0000FF).

yw

uint32_t

Η φωτεινότητα του κίτρινου και του λευκού LED χρησιμοποιώντας μια τιμή 32-bit (π.χ., κίτρινο ενεργοποιημένο = 0xFF00 και λευκό ενεργοποιημένο = 0x00FF).

id

ledId

Ο δείκτης της λυχνίας LED προς έλεγχο:

  • 0 – κόκκινο
  • 1 – πράσινο
  • 2 – μπλε
  • 3 – λευκό
  • 4 – κίτρινο

value

uint32_t

Η φωτεινότητα της λυχνίας LED κυμαίνεται από 0 έως 255, με το 0 να είναι σβηστό και το 255 να είναι η μέγιστη φωτεινότητα.

r

uint8_t

Η φωτεινότητα του κόκκινου LED κυμαίνεται από 0 έως 255, με το 0 να είναι σβηστό και το 255 να είναι η μέγιστη φωτεινότητα.

y

uint8_t

Η φωτεινότητα του κίτρινου LED κυμαίνεται από 0 έως 255, με το 0 να είναι σβηστό και το 255 να είναι η μέγιστη φωτεινότητα.

g

uint8_t

Η φωτεινότητα του πράσινου LED κυμαίνεται από 0 έως 255, με το 0 να είναι σβηστό και το 255 να είναι η μέγιστη φωτεινότητα.

b

uint8_t

Η φωτεινότητα του μπλε LED κυμαίνεται από 0 έως 255, με το 0 να είναι σβηστό και το 255 να είναι η μέγιστη φωτεινότητα.

w

uint8_t

Η φωτεινότητα του λευκού LED κυμαίνεται από 0 έως 255, με το 0 να είναι σβηστό και το 255 να είναι η μέγιστη φωτεινότητα.

Return Values

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

Examples
// Set the Signal Tower to start blinking blue
SignalTower.setColor(vex::color::blue, signaltower::blink);

// Set the red, blue and white LEDs using hex values
SignalTower.setColor(0xFF00FF, 0x00FF);

// Set the green LED to full brightness by ID
SignalTower.setColor(1, 255);

// Set all LEDs to full brightness
SignalTower.setColor(255, 255, 255, 255, 255);

setColors#

Ορίζει την κατάσταση όλων των LED στον Πύργο Σημάτων ξεχωριστά. Αυτά τα φώτα μπορούν να χρησιμοποιηθούν για την παρακολούθηση της θέσης του ρομπότ σε ένα έργο ή για να δείξουν πότε πληρούνται ορισμένες συνθήκες.

Available Functions
void setColors( 
  signaltower::state rs, 
  signaltower::state ys, 
  signaltower::state gs, 
  signaltower::state bs, 
  signaltower::state ws );

Parameters

Παράμετρος

Τύπος

Περιγραφή

rs

signaltower::state

Η κατάσταση της κόκκινης λυχνίας LED:

  • on – Ανάβει τη λυχνία LED.
  • off – Σβήνει τη λυχνία LED.
  • blink – Αναβοσβήνει η λυχνία LED.

ys

signaltower::state

Η κατάσταση της κίτρινης λυχνίας LED:

  • on – Ανάβει τη λυχνία LED.
  • off – Σβήνει τη λυχνία LED.
  • blink – Αναβοσβήνει η λυχνία LED.

gs

signaltower::state

Η κατάσταση της πράσινης λυχνίας LED:

  • on – Ανάβει τη λυχνία LED.
  • off – Σβήνει τη λυχνία LED.
  • blink – Αναβοσβήνει τη λυχνία LED.

bs

signaltower::state

Η κατάσταση της μπλε λυχνίας LED:

  • on – Ανάβει τη λυχνία LED.
  • off – Σβήνει τη λυχνία LED.
  • blink – Αναβοσβήνει τη λυχνία LED.

ws

signaltower::state

Η κατάσταση της λευκής λυχνίας LED:

  • on – Ανάβει τη λυχνία LED.
  • off – Σβήνει τη λυχνία LED.
  • blink – Αναβοσβήνει η λυχνία LED.

Return Values

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

Examples
// Turn on all LEDs
SignalTower.setColors(signaltower::on, signaltower::on, signaltower::on, signaltower::on, signaltower::on);

setBlinkTime#

Ρυθμίζει το χρόνο μεταξύ των αναλαμπών για τις λυχνίες LED στον Πύργο Σήματος.

Available Functions
void setBlinkTime( 
  uint32_t onTime, 
  uint32_t offTime = 0 );

Parameters

Παράμετρος

Τύπος

Περιγραφή

onTime

uint32_t

Ο χρόνος σε χιλιοστά του δευτερολέπτου που η λυχνία LED θα πρέπει να είναι αναμμένη όταν αναβοσβήνει. Το μέγιστο είναι 2500ms. Η τιμή 0 από προεπιλογή έχει τιμή 500ms.

offTime

uint32_t

Ο χρόνος σε χιλιοστά του δευτερολέπτου που η λυχνία LED θα πρέπει να είναι σβηστή όταν αναβοσβήνει. Το μέγιστο είναι 2500ms. Η τιμή 0 χρησιμοποιεί την τιμή onTime. Η προεπιλογή είναι 0.

Return Values

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

pressing#

Επιστρέφει εάν ο προφυλακτήρας του Πύργου Σημάτων πιέζεται αυτήν τη στιγμή. Αυτό μπορεί να χρησιμοποιηθεί ως διακοπή έκτακτης ανάγκης.

Available Functions
bool pressing();

Parameters

Αυτή η συνάρτηση δεν έχει παραμέτρους.

Return Values

Επιστρέφει μια λογική τιμή που υποδεικνύει εάν ο προφυλακτήρας του Πύργου Σημάτων πατιέται αυτήν τη στιγμή.

  • true — Ο προφυλακτήρας του Πύργου Σημάτων σιδερώνεται αυτήν τη στιγμή.

  • false — Ο προφυλακτήρας του Πύργου Σημάτων δεν πιέζεται.

pressed#

Καταγράφει μια συνάρτηση που θα κληθεί όταν πατηθεί ο προφυλακτήρας του Πύργου Σήματος.

Available Functions
void pressed( void (* callback)(void) );

Parameters

Παράμετρος

Τύπος

Περιγραφή

callback

void (*)(void)

Ένας δείκτης σε μια συνάρτηση που θα κληθεί όταν πατηθεί ο προφυλακτήρας.

Return Values

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

Examples

Ορίστε τη συνάρτηση επανάκλησης (εκτός από int main())

// Display a message when bumper is pressed
void towerBumperPressed() {
  Brain.Screen.print("tower bumper pressed");
}

Καταχωρίστε την επανάκληση μέσα στο int main()

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Run towerBumperPressed when the tower bumper 
  // is pressed
  SignalTower.pressed(towerBumperPressed);
}

released#

Καταγράφει μια συνάρτηση που θα κληθεί όταν απελευθερωθεί ο προφυλακτήρας του Πύργου Σήματος.

Available Functions
void released( void (* callback)(void) );

Parameters

Παράμετρος

Τύπος

Περιγραφή

callback

void (*)(void)

Ένας δείκτης σε μια συνάρτηση που θα κληθεί όταν απελευθερωθεί ο προφυλακτήρας.

Return Values

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

Examples

Ορίστε τη συνάρτηση επανάκλησης (εκτός από int main())

// Display a message when bumper is released
void towerBumperReleased() {
  Brain.Screen.print("tower bumper released");
}

Καταχωρίστε την επανάκληση μέσα στο int main()

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Run towerBumperReleased when the tower bumper 
  // is released
  SignalTower.released(towerBumperReleased);
}