برج الإشارة#

مقدمة#

The signaltower class is used to change lights and detect interactions with the CTE Signal Tower.

مُنشئات الفئات#

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 المتعددة على برج الإشارة بواسطة معرفاتها.

  • pressing - تُرجع ما إذا كان يتم الضغط على زر برج الإشارة حاليًا.

  • pressed - يسجل دالة يتم استدعاؤها عند الضغط على مصد برج الإشارة.

  • تم تحريره - يسجل دالة ليتم استدعاؤها عند تحرير مصد برج الإشارة.

setColor#

يتحكم هذا النظام بألوان وحالات مصابيح LED على برج الإشارة باستخدام طرق إدخال متنوعة. ويمكن استخدام هذه المصابيح لتتبع موقع الروبوت في المشروع أو للإشارة إلى تحقق شروط معينة.

Available Functions

1 — يقوم بتعيين لون برج الإشارة باستخدام vex::color.

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

2 — يقوم بتعيين ألوان LED باستخدام قيم RGB و YW ذات 32 بت.

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 بت (على سبيل المثال، تشغيل الأحمر = 0xFF0000، تشغيل الأخضر = 0x00FF00، وتشغيل الأزرق = 0x0000FF).

yw

uint32_t

سطوع مصابيح LED الصفراء والبيضاء باستخدام قيمة 32 بت (على سبيل المثال، تشغيل الأصفر = 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 مضاءً عند الوميض. الحد الأقصى هو 2500 مللي ثانية. القيمة 0 تعني افتراضياً 500 مللي ثانية.

offTime

uint32_t

المدة الزمنية بالمللي ثانية التي يجب أن يبقى فيها مؤشر LED مطفأً أثناء الوميض. الحد الأقصى 2500 مللي ثانية. القيمة 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);
}