সিগন্যাল টাওয়ার#

ভূমিকা#

signaltower ক্লাসটি লাইট পরিবর্তন করতে এবং সিটিই সিগন্যাল টাওয়ারের সাথে মিথস্ক্রিয়া শনাক্ত করতে ব্যবহৃত হয়।

ক্লাস কনস্ট্রাক্টর#

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-এর ID ব্যবহার করে তার ব্লিঙ্ক অবস্থা সেট করে।

  • setBlinkTime - সিগন্যাল টাওয়ারের এলইডিগুলির ব্লিঙ্ক করার মধ্যবর্তী সময় নির্ধারণ করে।

  • enableBlink - সিগন্যাল টাওয়ারে একাধিক LED-কে তাদের ID অনুযায়ী ঝিকমিক করা সক্ষম করে।

  • disableBlink - সিগন্যাল টাওয়ারে থাকা একাধিক LED-র ID অনুযায়ী ব্লিঙ্কিং বন্ধ করে।

  • চাপ দেওয়া - সিগন্যাল টাওয়ার বাম্পারটি বর্তমানে চাপা আছে কিনা তা ফেরত দেয়।

  • pressed - সিগন্যাল টাওয়ার বাম্পার চাপলে যে ফাংশনটি কল করা হবে তা রেজিস্টার করে।

  • released - সিগন্যাল টাওয়ার বাম্পার ছেড়ে দিলে যে ফাংশনটি কল করা হবে তা রেজিস্টার করে।

setColor#

বিভিন্ন ইনপুট পদ্ধতি ব্যবহার করে সিগন্যাল টাওয়ারের এলইডি-গুলির রঙ এবং অবস্থা নিয়ন্ত্রণ করা হয়। এই বাতিগুলি কোনো প্রকল্পে রোবটটি কোথায় আছে তা ট্র্যাক করতে অথবা নির্দিষ্ট শর্ত পূরণ হলে তা দেখাতে ব্যবহার করা যেতে পারে।

Available Functions

1 — vex::color ব্যবহার করে সিগন্যাল টাওয়ারকে একটি রঙে সেট করে।

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

2 — ৩২-বিট RGB এবং YW মান ব্যবহার করে LED-র রং নির্ধারণ করে।

void setColor( 
  uint32_t rgb, 
  uint32_t yw );

3 — LED ID দ্বারা প্রতিটি 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

এলইডি-র অবস্থা:

  • on (ডিফল্ট) – এলইডি চালু করে।
  • off – এলইডি বন্ধ করে।
  • blink – এলইডি মিটমিট করে জ্বলে।

rgb

uint32_t

৩২-বিট মান ব্যবহার করে লাল, সবুজ এবং নীল LED-এর উজ্জ্বলতা (যেমন, লাল অন = 0xFF0000, সবুজ অন = 0x00FF00, এবং নীল অন = 0x0000FF)।

yw

uint32_t

৩২-বিট মান ব্যবহার করে হলুদ এবং সাদা এলইডি-র উজ্জ্বলতা (যেমন, হলুদ অন = 0xFF00 এবং সাদা অন = 0x00FF)।

id

ledId

নিয়ন্ত্রণ করার জন্য LED-এর সূচক:

  • 0 – লাল
  • 1 – সবুজ
  • 2 – নীল
  • 3 – সাদা
  • 4 – হলুদ

value

uint32_t

এলইডি-র উজ্জ্বলতার সীমা ০ থেকে ২৫৫, যেখানে ০ মানে বন্ধ এবং ২৫৫ হলো সর্বোচ্চ উজ্জ্বলতা।

r

uint8_t

লাল এলইডি-র উজ্জ্বলতার সীমা ০ থেকে ২৫৫, যেখানে ০ মানে বন্ধ এবং ২৫৫ হলো সর্বোচ্চ উজ্জ্বলতা।

y

uint8_t

হলুদ এলইডি-র উজ্জ্বলতার সীমা ০ থেকে ২৫৫, যেখানে ০ মানে বন্ধ এবং ২৫৫ হলো সর্বোচ্চ উজ্জ্বলতা।

g

uint8_t

সবুজ LED-টির উজ্জ্বলতা ০ থেকে ২৫৫ পর্যন্ত, যেখানে ০ মানে বন্ধ এবং ২৫৫ হলো সর্বোচ্চ উজ্জ্বলতা।

b

uint8_t

নীল এলইডি-র উজ্জ্বলতার সীমা ০ থেকে ২৫৫, যেখানে ০ মানে বন্ধ এবং ২৫৫ হলো সর্বোচ্চ উজ্জ্বলতা।

w

uint8_t

সাদা এলইডি-র উজ্জ্বলতার সীমা ০ থেকে ২৫৫, যেখানে ০ মানে বন্ধ এবং ২৫৫ হলো সর্বোচ্চ উজ্জ্বলতা।

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#

সিগন্যাল টাওয়ারের সমস্ত এলইডি-র অবস্থা আলাদাভাবে নির্ধারণ করে। এই বাতিগুলো কোনো প্রকল্পে রোবটটি কোথায় আছে তা ট্র্যাক করতে অথবা নির্দিষ্ট শর্ত পূরণ হলে তা দেখাতে ব্যবহার করা যেতে পারে।

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#

সিগন্যাল টাওয়ারের এলইডি-গুলোর এক আলো থেকে অন্য আলো জ্বলার মধ্যবর্তী সময় নির্ধারণ করে।

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

Parameters

প্যারামিটার

প্রকার

বর্ণনা

onTime

uint32_t

মিটমিট করার সময় এলইডি-টি কতক্ষণ জ্বলে থাকবে, তার সময়কাল (মিলিসেকেন্ডে)। সর্বোচ্চ মান হলো ২৫০০ মিলিসেকেন্ড। ০ মানটি ডিফল্টভাবে ৫০০ মিলিসেকেন্ড হিসেবে গণ্য হবে।

offTime

uint32_t

মিটমিট করার সময় এলইডি কতক্ষণ বন্ধ থাকবে, সেই সময়কাল (মিলিসেকেন্ডে)। সর্বোচ্চ মান হলো ২৫০০ মিলিসেকেন্ড। ০ মানটি onTime ভ্যালুটি ব্যবহার করে। ডিফল্ট মান হলো ০।

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);
}