ذراع CTE#

مقدمة#

تُتيح الفئة arm التحكم في الذراع سداسي المحاور المستخدم في خلية عمل CTE. في VEX EXP C++، يُمكن للذراع سداسي المحاور تحريك أداة النهاية إلى مواضع في الفضاء ثلاثي الأبعاد، وتدوير أداة النهاية، والتحقق من إمكانية الحركة، والتحكم في الأدوات الملحقة مثل أداة التقاط المغناطيس أو أداة حامل القلم.

تستخدم الأمثلة الموجودة في هذه الصفحة ذراعًا مكونًا بستة محاور باسم الذراع Arm.

المُنشئون#

arm#

arm ينشئ كائن ذراع سداسي المحاور.

الوظائف المتاحة

arm(int32_t index);

المعلمة

يكتب

وصف

index

int32_t

المنفذ الذكي الذي يتصل به الذراع ذو المحاور الستة، ويُكتب على النحو التالي: PORTx، حيث x هو رقم المنفذ. على سبيل المثال، PORT1.

مثال

// Create a 6-Axis Arm named Arm on Port 1
arm Arm = arm(PORT1);

مدمر#

~arm#

~arm يدمر الكائن arm ويحرر الموارد المرتبطة به.

الوظائف المتاحة

~arm();

الدوال الأعضاء#

تتضمن الفئة arm الدوال الأعضاء التالية:

الإجراءات — تحريك الذراع سداسي المحاور إلى المواضع أو الاتجاهات المطلوبة.

  • moveTo — ينقل أداة النهاية إلى إحداثيات x و y و z المحددة.

  • moveInc — يحرك أداة النهاية بمسافة محددة من موضعها الحالي.

  • moveEndEffectorTo — يقوم بتدوير أداة النهاية إلى اتجاه محدد للانعطاف والدوران والميل.

  • moveEndEffectorInc — يقوم بتدوير أداة النهاية بمقدار محدد من الانحراف والدوران والميل.

المُعدِّلات — اضبط إعدادات الحركة والأدوات والتحكم.

  • setSpeed — يحدد سرعة الحركة المستخدمة بواسطة الذراع ذي المحاور الستة.

  • setEndEffectorType — يحدد نوع أداة النهاية المرفقة بالذراع ذي المحاور الستة.

  • setEndEffectorMagnet — تمكين أو تعطيل أداة التقاط المغناطيس.

  • setPenOffset — يحدد إزاحة المحور z المستخدمة مع أداة حامل القلم.

  • setControlStop — تمكين أو تعطيل إيقاف التحكم للذراع ذي المحاور الستة.

  • setTimeout — يحدد المهلة الزمنية المستخدمة بواسطة وظائف حركة الذراع ذات 6 محاور.

المُسترجعات — تُعيد حالة الحركة، والموقع، والاتجاه، وقيم الاتصال.

  • isDone — تُرجع ما إذا كان ذراع المحور السداسي قد انتهى من الحركة.

  • isCrashed — تُرجع ما إذا كان ذراع المحور السداسي قد تحطم أثناء الحركة.

  • getX — تُرجع موضع x الحالي للمؤثر النهائي.

  • getY — تُرجع موضع y الحالي للمؤثر النهائي.

  • getZ — تُرجع موضع z الحالي للمؤثر النهائي.

  • getYaw — تُرجع قيمة الانحراف الحالية للمؤثر النهائي.

  • getRoll — يعيد القيمة الحالية للرمية النهائية للمؤثر.

  • getPitch — تُرجع درجة الصوت الحالية للمؤثر النهائي.

  • canArmReachTo — تُرجع ما إذا كان بإمكان الذراع ذو المحاور الستة الوصول إلى موضع محدد.

  • canArmReachInc — تُرجع ما إذا كان بإمكان الذراع ذو المحاور الستة التحرك بمسافة محددة.

  • canEndEffectorReachTo — تُرجع ما إذا كان بإمكان أداة النهاية الوصول إلى اتجاه محدد.

  • canEndEffectorReachInc — تُرجع ما إذا كان بإمكان أداة النهاية الدوران بمقدار محدد.

  • isConnected — تُرجع ما إذا كان ذراع المحور السداسي متصلاً بدماغ EXP.

  • timestamp — يعيد الطابع الزمني لآخر حزمة حالة تم استلامها من ذراع المحور السداسي.

  • installed — إرجاع ما إذا كان ذراع المحور السداسي متصلاً.

الوظائف المستدعاة — تشغيل الوظائف عند حدوث أحداث التفعيل.

  • controlStopped — يسجل وظيفة لتشغيلها عند تمكين إيقاف التحكم.

  • crashed — يسجل دالة لتشغيلها عند اكتشاف عطل.

الإجراءات#

moveTo#

moveTo يحرك الذراع ذو المحاور الستة إلى إحداثيات x و y و z محددة.

تُحدد إحداثيات x و y و z موضع أداة النهاية في الفضاء ثلاثي الأبعاد. استخدم canArmReachTo قبل هذه الدالة إذا كان الموضع المستهدف قد يكون خارج نطاق عمل الذراع سداسي المحاور.

الوظائف المتاحة

bool moveTo(
  double x,
  double y,
  double z,
  bool   waitForCompletion = true
);

المعلمة

يكتب

وصف

x

double

إحداثيات س لموقع الهدف بالملليمترات.

y

double

إحداثيات المحور الصادي لموقع الهدف بالملليمترات.

z

double

إحداثيات z لموقع الهدف بالملليمترات.

waitForCompletion

bool

اختياري. true (افتراضي) ينتظر حتى تكتمل الحركة قبل المتابعة. false يبدأ الحركة وينتقل فورًا إلى سطر التعليمات البرمجية التالي.

القيمة المُعادة

يُرجع قيمة منطقية (Boolean).

  • true — وصل الذراع ذو المحاور الستة إلى موضع الهدف.

  • false — لم يصل الذراع ذو المحاور الستة إلى الموضع المستهدف، أو waitForCompletion تم تعيينه على false.

أمثلة

// Move the 6-Axis Arm to (200, 0, 100)
Arm.moveTo(200, 0, 100);

// Start moving, then print the y-position while the arm moves
Arm.moveTo(-100, 200, 100, false);

while (!Arm.isDone()) {
  Brain.Screen.print(Arm.getY());
  Brain.Screen.newLine();
  wait(0.25, seconds);
}

moveInc#

moveInc يحرك الذراع ذو المحاور الستة بمسافة محددة من موضعه الحالي على طول المحاور x و y و z.

استخدم هذه الدالة للتحرك بالنسبة لموقع أداة النهاية الحالي. استخدم canArmReachInc قبل هذه الدالة إذا كان التحرك قد يضع الذراع سداسي المحاور خارج نطاق عمله المتاح.

الوظائف المتاحة

bool moveInc(
  double x,
  double y,
  double z,
  bool   waitForCompletion = true
);

المعلمة

يكتب

وصف

x

double

المسافة التي يجب التحرك بها على طول المحور السيني بالملليمترات.

y

double

المسافة التي يجب التحرك بها على طول المحور الصادي بالملليمترات.

z

double

المسافة التي يجب التحرك بها على طول المحور z بالملليمترات.

waitForCompletion

bool

اختياري. true (افتراضي) ينتظر حتى تكتمل الحركة قبل المتابعة. false يبدأ الحركة وينتقل فورًا إلى سطر التعليمات البرمجية التالي.

القيمة المُعادة

يُرجع قيمة منطقية (Boolean).

  • true — وصل الذراع ذو المحاور الستة إلى الموضع المطلوب.

  • false — لم يصل الذراع ذو المحاور الستة إلى الموضع المطلوب، أو waitForCompletion تم تعيينه إلى false.

مثال

// Move the 6-Axis Arm 100 millimeters along the y-axis
Arm.moveInc(0, 100, 0);

moveEndEffectorTo#

moveEndEffectorTo يقوم بتدوير أداة نهاية الذراع ذات المحاور الستة إلى اتجاه محدد للانعطاف والدوران والميل.

يصف التوجيه كيفية دوران أداة النهاية. yaw يدور حول المحور z، roll يدور حول المحور x، و pitch يدور حول المحور y.

الوظائف المتاحة

bool moveEndEffectorTo(
  double yaw,
  double roll = 0,
  double pitch = 0,
  bool   waitForCompletion = true
);

المعلمة

يكتب

وصف

yaw

double

زاوية الانحراف المستهدفة بالدرجات.

roll

double

اختياري. زاوية الدوران المستهدفة بالدرجات. القيمة الافتراضية هي 0.

pitch

double

اختياري. زاوية ميل الهدف بالدرجات. القيمة الافتراضية هي 0.

waitForCompletion

bool

اختياري. true (افتراضي) ينتظر حتى تكتمل الحركة قبل المتابعة. false يبدأ الحركة وينتقل فورًا إلى سطر التعليمات البرمجية التالي.

القيمة المُعادة

يُرجع قيمة منطقية (Boolean).

  • true — وصل الطرف المؤثر إلى الاتجاه المستهدف.

  • false — لم يصل المؤثر النهائي إلى الاتجاه المستهدف، أو waitForCompletion تم تعيينه إلى false.

مثال

// Rotate the end effector to 90 degrees of roll
Arm.moveEndEffectorTo(0, 90, 0);

moveEndEffectorInc#

moveEndEffectorInc يقوم بتدوير أداة نهاية الذراع ذات المحاور الستة بمقدار محدد من الانحراف والدوران والميل من اتجاهها الحالي.

استخدم هذه الوظيفة للتدوير بالنسبة إلى الانحراف أو الدوران أو الميل الحالي للمؤثر النهائي.

الوظائف المتاحة

bool moveEndEffectorInc(
  double yaw,
  double roll = 0,
  double pitch = 0,
  bool   waitForCompletion = true
);

المعلمة

يكتب

وصف

yaw

double

التغير في الانحراف، بالدرجات.

roll

double

اختياري. التغيير في الميل، بالدرجات. القيمة الافتراضية هي 0.

pitch

double

اختياري. التغيير في درجة الصوت، بالدرجات. القيمة الافتراضية هي 0.

waitForCompletion

bool

اختياري. true (افتراضي) ينتظر حتى تكتمل الحركة قبل المتابعة. false يبدأ الحركة وينتقل فورًا إلى سطر التعليمات البرمجية التالي.

القيمة المُعادة

يُرجع قيمة منطقية (Boolean).

  • true — وصل الطرف المؤثر إلى الوضع المطلوب.

  • false — لم يصل المؤثر النهائي إلى الاتجاه المطلوب، أو waitForCompletion تم تعيينه على false.

مثال

// Rotate the end effector -50 degrees in pitch
Arm.moveEndEffectorInc(0, 0, -50);

المتحولون#

setSpeed#

setSpeed يحدد سرعة الحركة المستخدمة بواسطة الذراع ذي المحاور الستة.

الوظائف المتاحة

void setSpeed(uint32_t speed);

المعلمة

يكتب

وصف

speed

uint32_t

السرعة التي يجب أن يتحرك بها الذراع ذو المحاور الستة، بالملليمترات في الثانية.

القيمة المُعادة

هذه الدالة لا تُرجع قيمة.

مثال

// Set the 6-Axis Arm movement speed
Arm.setSpeed(100);

setEndEffectorType#

setEndEffectorType يحدد نوع أداة النهاية المتصلة بالذراع ذي المحاور الستة.

عند تغيير نوع أداة النهاية، يقوم الذراع ذو المحاور الستة تلقائيًا بضبط إزاحة المحور z لتتوافق مع الأداة المحددة.

الوظائف المتاحة

bool setEndEffectorType(
  endEffectorType type,
  bool            waitForCompletion = true
);

المعلمة

يكتب

وصف

type

endEffectorType

الأداة المرفقة بالذراع ذي المحاور الستة: magnet (أداة التقاط المغناطيس) أو pen (أداة حامل القلم).

waitForCompletion

bool

اختياري. true (افتراضي) ينتظر حتى يكتمل التغيير قبل المتابعة. false يبدأ التغيير وينتقل فورًا إلى سطر التعليمات البرمجية التالي.

القيمة المُعادة

يُرجع قيمة منطقية (Boolean).

  • true — تم تعيين النوع المطلوب.

  • false — لم يتم تحديد النوع المطلوب، أو waitForCompletion تم تعيينه إلى false.

مثال

// Set the end effector type to the Magnet Pickup Tool
Arm.setEndEffectorType(magnet);

setEndEffectorMagnet#

setEndEffectorMagnet يُمكّن أو يُعطّل أداة التقاط المغناطيس.

الوظائف المتاحة

void setEndEffectorMagnet(bool enabled);

المعلمة

يكتب

وصف

enabled

bool

true يُمكّن المغناطيس من التقاط الأشياء وحملها. false يُعطّل المغناطيس ويُسقط أي شيء يحمله.

القيمة المُعادة

هذه الدالة لا تُرجع قيمة.

مثال

// Pick up objects and then drop them
Arm.setEndEffectorType(magnet);
Arm.setEndEffectorMagnet(true);
wait(2, seconds);
Arm.setEndEffectorMagnet(false);

setPenOffset#

setPenOffset يحدد إزاحة المحور z المستخدمة عند توصيل أداة حامل القلم بالذراع ذي المحاور الستة.

اضبط نوع أداة النهاية على pen قبل استخدام هذه الوظيفة. إذا لم يتم تحديد أداة حامل القلم، فلن يكون لهذه الوظيفة أي تأثير.

إزاحة القلم هي المسافة من أعلى أداة حامل القلم إلى طرف قلم السبورة. وتؤدي قيمة z الموجبة إلى تحريك الإزاحة لأعلى من نقطة تثبيت الأداة.

الوظائف المتاحة

void setPenOffset(double zOffset);

المعلمة

يكتب

وصف

zOffset

double

قيمة إزاحة القلم بالملليمترات.

القيمة المُعادة

هذه الدالة لا تُرجع قيمة.

مثال

// Set the end effector type to the Pen Holder Tool and set the pen offset
Arm.setEndEffectorType(pen);
Arm.setPenOffset(25);

setControlStop#

setControlStop تمكين أو تعطيل إيقاف التحكم للذراع ذي المحاور الستة.

عند تفعيل خاصية إيقاف التحكم، يتوقف ذراع المحور السداسي عن الحركة فوراً ويمنع المزيد من الحركات الخطية أو حركات المفاصل.

الوظائف المتاحة

void setControlStop(bool state = true);

المعلمة

يكتب

وصف

state

bool

اختياري. true (افتراضي) يُفعّل إيقاف التحكم ويمنع المزيد من الحركات الخطية أو حركات المفاصل. false يُعطّل إيقاف التحكم.

القيمة المُعادة

هذه الدالة لا تُرجع قيمة.

مثال

// Stop the 6-Axis Arm and prevent further movement
Arm.setControlStop();

setTimeout#

setTimeout يحدد قيمة المهلة المستخدمة عند تحريك الذراع ذي المحاور الستة.

إذا لم تكتمل عملية النقل قبل انتهاء المهلة الزمنية، ينتقل المشروع إلى سطر التعليمات البرمجية التالي.

الوظائف المتاحة

void setTimeout(
  int32_t   timeout,
  timeUnits units
);

المعلمة

يكتب

وصف

timeout

int32_t

قيمة المهلة الزمنية الجديدة.

units

timeUnits

وحدة الزمن: sec (ثوانٍ) أو msec (مللي ثانية).

القيمة المُعادة

هذه الدالة لا تُرجع قيمة.

مثال

// Set the 6-Axis Arm timeout to 2 seconds
Arm.setTimeout(2, sec);

المحصلون#

isDone#

isDone تُرجع ما إذا كان ذراع المحور السداسي قد انتهى من الحركة.

تكون هذه الوظيفة مفيدة بعد استدعاء وظيفة الحركة مع تعيين waitForCompletion إلى false.

الوظائف المتاحة

bool isDone();

حدود

هذه الدالة لا تحتوي على معلمات.

القيمة المُعادة

يُرجع قيمة منطقية (Boolean).

  • true — انتهى ذراع المحور السداسي من الحركة.

  • false — لا يزال الذراع ذو المحاور الستة يتحرك.

مثال

// Display the 6-Axis Arm's y-position while it moves
Arm.moveTo(-100, 200, 100, false);

while (!Arm.isDone()) {
  Brain.Screen.print(Arm.getY());
  Brain.Screen.newLine();
  wait(0.25, seconds);
}

isCrashed#

isCrashed تُرجع ما إذا كان ذراع المحور السداسي قد تحطم أثناء الحركة.

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

الوظائف المتاحة

bool isCrashed();

حدود

هذه الدالة لا تحتوي على معلمات.

القيمة المُعادة

يُرجع قيمة منطقية (Boolean).

  • true — تحطمت الذراع ذات المحاور الستة.

  • false — لم يتعطل الذراع ذو المحاور الستة.

مثال

// Quickly move to a new location
Arm.setSpeed(100);
Arm.moveTo(-40, 250, 40, false);

// While moving, check for a crash
while (true) {
  if (Arm.isCrashed()) {
    // Indicate a crash with the Signal Tower and Brain screen
    Brain.Screen.print("Crash Detected");
    SignalTower6.setColor(signaltower::green, signaltower::off);
    SignalTower6.setColor(signaltower::red, signaltower::on);
    break;
  }

  wait(5, msec);
}

getX#

getX تُرجع موضع x الحالي للمؤثر النهائي بالملليمترات.

استخدم هذه الوظيفة لقراءة مكان وجود أداة النهاية حاليًا على طول المحور السيني.

الوظائف المتاحة

float getX();

حدود

هذه الدالة لا تحتوي على معلمات.

القيمة المُعادة

Returns a float representing the x position of the end effector in millimeters.

مثال

// Print the current x position of the 6-Axis Arm
Brain.Screen.print(Arm.getX());

getY#

getY تُرجع موضع y الحالي للمؤثر النهائي بالملليمترات.

استخدم هذه الوظيفة لقراءة مكان وجود أداة النهاية حاليًا على طول المحور y.

الوظائف المتاحة

float getY();

حدود

هذه الدالة لا تحتوي على معلمات.

القيمة المُعادة

تُرجع قيمة عشرية float بالملليمترات.

مثال

// Print the current y position of the 6-Axis Arm
Brain.Screen.print(Arm.getY());

getZ#

getZ تُرجع موضع z الحالي للمؤثر النهائي بالملليمترات.

استخدم هذه الوظيفة لقراءة مكان وجود أداة النهاية حاليًا على طول المحور z.

الوظائف المتاحة

float getZ();

حدود

هذه الدالة لا تحتوي على معلمات.

القيمة المُعادة

Returns a float representing the z position of the end effector in millimeters.

مثال

// Print the current z position of the 6-Axis Arm
Brain.Screen.print(Arm.getZ());

getYaw#

getYaw تُرجع قيمة الانحراف الحالية للمؤثر النهائي بالدرجات.

الوظائف المتاحة

float getYaw();

حدود

هذه الدالة لا تحتوي على معلمات.

القيمة المُعادة

Returns a float representing the current yaw of the end effector in degrees.

مثال

// Print the current yaw of the end effector
Brain.Screen.print(Arm.getYaw());

getRoll#

getRoll تُرجع قيمة الدوران الحالية للمؤثر النهائي بالدرجات.

الوظائف المتاحة

float getRoll();

حدود

هذه الدالة لا تحتوي على معلمات.

القيمة المُعادة

Returns a float representing the current roll of the end effector in degrees.

مثال

// Print the current roll of the end effector
Brain.Screen.print(Arm.getRoll());

getPitch#

getPitch تُرجع درجة الصوت الحالية للمؤثر النهائي بالدرجات.

الوظائف المتاحة

float getPitch();

حدود

هذه الدالة لا تحتوي على معلمات.

القيمة المُعادة

Returns a float representing the current pitch of the end effector in degrees.

مثال

// Print the current pitch of the end effector
Brain.Screen.print(Arm.getPitch());

canArmReachTo#

canArmReachTo تُرجع ما إذا كان بإمكان الذراع ذو المحاور الستة تحريك أداة النهاية إلى إحداثيات x و y و z محددة.

استخدم هذه الوظيفة للتحقق من موضع الهدف قبل استخدام moveTo.

الوظائف المتاحة

bool canArmReachTo(
  double x,
  double y,
  double z
);

المعلمة

يكتب

وصف

x

double

إحداثيات س لموقع الهدف بالملليمترات.

y

double

إحداثيات المحور الصادي لموقع الهدف بالملليمترات.

z

double

إحداثيات z لموقع الهدف بالملليمترات.

القيمة المُعادة

يُرجع قيمة منطقية (Boolean).

  • true — يمكن للذراع ذي المحاور الستة الوصول إلى الموضع المطلوب.

  • false — لا يمكن للذراع ذي المحاور الستة الوصول إلى الموضع المطلوب.

مثال

// Move the 6-Axis Arm to (100, -20, 50) if it can reach
if (Arm.canArmReachTo(100, -20, 50)) {
  Arm.moveTo(100, -20, 50);
}

canArmReachInc#

canArmReachInc تُرجع ما إذا كان بإمكان الذراع ذو المحاور الستة تحريك أداة النهاية بمسافة محددة x و y و z من موضعها الحالي.

استخدم هذه الوظيفة للتحقق من الحركة النسبية قبل استخدام moveInc.

الوظائف المتاحة

bool canArmReachInc(
  double x,
  double y,
  double z
);

المعلمة

يكتب

وصف

x

double

المسافة التي يجب التحرك بها على طول المحور السيني بالملليمترات.

y

double

المسافة التي يجب التحرك بها على طول المحور الصادي بالملليمترات.

z

double

المسافة التي يجب التحرك بها على طول المحور z بالملليمترات.

القيمة المُعادة

يُرجع قيمة منطقية (Boolean).

  • true — يمكن للذراع ذي المحاور الستة القيام بالحركة المطلوبة.

  • false — لا يمكن للذراع ذي المحاور الستة القيام بالحركة المطلوبة.

مثال

// Increment the 6-Axis Arm 100 mm along the x-axis if possible
if (Arm.canArmReachInc(100, 0, 0)) {
  Arm.moveInc(100, 0, 0);
}

canEndEffectorReachTo#

canEndEffectorReachTo تُرجع ما إذا كان بإمكان أداة النهاية الدوران إلى اتجاه محدد للانعطاف والدوران والميل.

استخدم هذه الوظيفة للتحقق من اتجاه الهدف قبل استخدام moveEndEffectorTo.

الوظائف المتاحة

bool canEndEffectorReachTo(
  double yaw,
  double roll = 0,
  double pitch = 0
);

المعلمة

يكتب

وصف

yaw

double

زاوية الانحراف المستهدفة بالدرجات.

roll

double

اختياري. زاوية الدوران المستهدفة بالدرجات. القيمة الافتراضية هي 0.

pitch

double

اختياري. زاوية ميل الهدف بالدرجات. القيمة الافتراضية هي 0.

القيمة المُعادة

يُرجع قيمة منطقية (Boolean).

  • true — يمكن للمؤثر النهائي الوصول إلى الاتجاه المطلوب.

  • false — لا يمكن للمؤثر النهائي الوصول إلى الاتجاه المطلوب.

مثال

// Rotate the end effector to 90 degrees of roll if possible
if (Arm.canEndEffectorReachTo(0, 90, 0)) {
  Arm.moveEndEffectorTo(0, 90, 0);
}

canEndEffectorReachInc#

canEndEffectorReachInc تُرجع ما إذا كان بإمكان أداة النهاية الدوران بمقدار محدد من الانحراف والدوران والميل من وضعها الحالي.

استخدم هذه الوظيفة للتحقق من حركة التوجيه النسبي قبل استخدام moveEndEffectorInc.

الوظائف المتاحة

bool canEndEffectorReachInc(
  double yaw,
  double roll = 0,
  double pitch = 0
);

المعلمة

يكتب

وصف

yaw

double

التغير في الانحراف، بالدرجات.

roll

double

اختياري. التغيير في الميل، بالدرجات. القيمة الافتراضية هي 0.

pitch

double

اختياري. التغيير في درجة الصوت، بالدرجات. القيمة الافتراضية هي 0.

القيمة المُعادة

يُرجع قيمة منطقية (Boolean).

  • true — يمكن للمؤثر النهائي إجراء الدوران المطلوب.

  • false — لا يمكن للمؤثر النهائي إجراء الدوران المطلوب.

مثال

// Increment the end effector by 10 degrees of pitch if possible
if (Arm.canEndEffectorReachInc(0, 0, 10)) {
  Arm.moveEndEffectorInc(0, 0, 10);
}

isConnected#

isConnected تُرجع ما إذا كان ذراع المحور السداسي متصلاً بدماغ EXP.

هذه دالة توافق تُرجع نفس القيمة مثل installed.

الوظائف المتاحة

bool isConnected();

حدود

هذه الدالة لا تحتوي على معلمات.

القيمة المُعادة

يُرجع قيمة منطقية (Boolean).

  • true — الذراع ذو المحاور الستة متصل بدماغ EXP.

  • false — الذراع ذو المحاور الستة غير متصل بدماغ EXP.

مثال

// Print whether the 6-Axis Arm is connected
Brain.Screen.print(Arm.isConnected());

timestamp#

timestamp يعيد الطابع الزمني لآخر حزمة حالة تم استلامها من ذراع المحور السداسي.

الوظائف المتاحة

uint32_t timestamp();

حدود

هذه الدالة لا تحتوي على معلمات.

القيمة المُعادة

يقوم بإرجاع الطابع الزمني لآخر حزمة حالة كـ uint32_t بالمللي ثانية.

installed#

installed يُرجع ما إذا كان ذراع المحور السداسي متصلاً.

الوظائف المتاحة

bool installed();

حدود

هذه الدالة لا تحتوي على معلمات.

القيمة المُعادة

يُرجع قيمة منطقية (Boolean).

  • true — تم توصيل الذراع ذو المحاور الستة.

  • false — الذراع ذو المحاور الستة غير متصل.

معاودة الاتصال#

controlStopped#

controlStopped يسجل وظيفة يتم تشغيلها عند تمكين إيقاف التحكم.

الوظائف المتاحة

void controlStopped(void (* callback)(void));

المعلمة

يكتب

وصف

callback

void (*)(void)

وظيفة يتم تشغيلها عند تمكين إيقاف التحكم.

القيمة المُعادة

هذه الدالة لا تُرجع قيمة.

مثال

// Called when the 6-Axis Arm is control stopped
void onControlStopped() {
  Brain.Screen.print("Arm control stopped");
}

int main() {
  vexcodeInit();

  Arm.controlStopped(onControlStopped);
}

crashed#

crashed يسجل وظيفة يتم تشغيلها عندما يتعطل الذراع ذو المحاور الستة أثناء الحركة.

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

الوظائف المتاحة

void crashed(void (* callback)(void));

المعلمة

يكتب

وصف

callback

void (*)(void)

وظيفة يتم تشغيلها عندما يتعطل الذراع ذو المحاور الستة أثناء الحركة.

القيمة المُعادة

هذه الدالة لا تُرجع قيمة.

مثال

// Called when the 6-Axis Arm crashes while moving
void onArmCrashed() {
  Brain.Screen.print("Crash detected");
  SignalTower6.setColor(signaltower::green, signaltower::off);
  SignalTower6.setColor(signaltower::red, signaltower::on);
}

int main() {
  vexcodeInit();

  Arm.crashed(onArmCrashed);
}