خلاصه (Summary):
Expression CHOP به شما امکان می‌دهد تا کانال‌های ورودی (input channels) را با استفاده از عبارات ریاضی (math expressions) تغییر دهید. هر کانال ورودی دقیقاً با یک عبارت (expression) تغییر داده می‌شود، و اگر تعداد کانال‌ها از تعداد عبارات بیشتر باشد، عبارات به‌صورت چرخه‌ای (loop) تکرار می‌شوند.

خروجی این CHOP دارای طول و تعداد کانال برابر با ورودی اول است، اما مقادیر نمونه‌ها (samples) بر اساس عبارت‌های واردشده تغییر پیدا می‌کنند.

هر عبارت برای هر مقدار کلیدی یا نمونه خام (raw sample) اعمال می‌شود. اگر تعداد کانال‌های ورودی بیشتر از تعداد عبارات باشد، عبارات دوباره استفاده می‌شوند. پارامتر Channels per Expression تعیین می‌کند که هر عبارت روی چند کانال اعمال شود، قبل از اینکه به سراغ عبارت بعدی برود.

درون عبارات، مقدار ورودی متناظر با me.inputVal در دسترس است. همچنین می‌توانید با me.inputs[1][0] به اولین کانال از ورودی دوم دسترسی پیدا کنید.

برای ارزیابی سریع هر عبارت دلخواه، می‌توانید از Evaluate DAT نیز استفاده کنید.


پارامترها – صفحه Expression

Channels per Expr (تعداد کانال در هر عبارت)
مشخص می‌کند هر عبارت روی چند کانال اعمال شود قبل از اینکه عبارت بعدی استفاده گردد.

Limit Output Channels (محدود کردن تعداد کانال خروجی)
اگر این گزینه فعال باشد، تعداد کانال‌های خروجی CHOP محدود می‌شود.

Number of Channels (تعداد کانال‌ها)
زمانی که گزینه‌ی بالا فعال است، این پارامتر تعداد حداکثر کانال‌هایی که خروجی خواهند داشت را مشخص می‌کند.

Expression (عبارات)
لیستی از عبارات مورد استفاده.

Expression 0 (expr0)
در اینجا عبارت خود را وارد کنید.
مقادیر ورودی در عبارت‌ها با me.inputVal در دسترس‌اند.
برای دسترسی به یک کانال خاص از ورودی دوم، از دستور زیر استفاده کنید:
me.inputs[1]['chan1'] ← این مقدار را از کانال chan1 در ورودی دوم می‌گیرد.


پارامترها – صفحه Common

Time Slice (برش زمانی)
با روشن کردن این گزینه، کانال‌ها به‌صورت «Time Sliced» پردازش می‌شوند. برش زمانی، فاصله بین فریم پردازش قبلی و فریم پردازش فعلی است.

Scope (دامنه)
برای تعیین اینکه کدام کانال‌ها تحت تأثیر قرار گیرند، برخی از CHOPها از رشته‌ای به نام Scope در صفحه‌ی Common استفاده می‌کنند. (رجوع کنید به: Pattern Matching)

Sample Rate Match (تطبیق نرخ نمونه‌برداری)
برای مدیریت زمانی که نرخ نمونه‌برداری بین ورودی‌ها متفاوت است:

  • Resample At First Input’s Rate (first): تطبیق با نرخ ورودی اول

  • Resample At Maximum Rate (max): تطبیق با بالاترین نرخ

  • Resample At Minimum Rate (min): تطبیق با پایین‌ترین نرخ

  • Error If Rates Differ (err): در صورت اختلاف نرخ‌ها، خطا می‌دهد

Export Method (روش خروجی‌دهی)
مشخص می‌کند که چگونه کانال CHOP به پارامترها متصل شود:

  • DAT Table by Index: استفاده از جدول DAT و اشاره به اندیس کانال

  • DAT Table by Name: استفاده از جدول DAT و اشاره بر اساس نام کانال

  • Channel Name is Path:Parameter: نام کانال مسیر کامل مقصد را مشخص می‌کند (مثلاً: geo1/transform1:tx)

Export Root (ریشه خروجی)
مسیر پایه‌ای را مشخص می‌کند که همه مسیرهای نسبی نسبت به آن تعریف می‌شوند.

Export Table (جدول خروجی)
DAT مورد استفاده برای نگهداری اطلاعات خروجی، زمانی که از روش‌های DAT Table Export استفاده می‌شود.


ورودی‌های اپراتور (Operator Inputs)

Input 0: ورودی اصلی کانال‌ها (اجباری)


کانال‌های Info CHOP

اطلاعات اضافی مربوط به Expression CHOP را می‌توان از طریق یک Info CHOP به دست آورد:

کانال‌های عمومی CHOP (Common CHOP Info Channels):

  • start – شروع بازه CHOP بر حسب نمونه‌ها

  • length – تعداد نمونه‌ها

  • sample_rate – نرخ نمونه‌برداری بر حسب فریم بر ثانیه

  • num_channels – تعداد کانال‌ها

  • time_slice – اگر CHOP به صورت Time Slice فعال است، مقدار ۱ دارد

  • export_sernum – شمارش تعداد دفعاتی که ارتباط‌های خروجی به‌روزرسانی شده‌اند

کانال‌های عمومی اپراتور (Common Operator Info Channels):

  • total_cooks – تعداد دفعات پردازش از زمان شروع

  • cook_time – مدت زمان آخرین پردازش (میلی‌ثانیه)

  • cook_frame – شماره فریمی که آخرین پردازش انجام شده

  • cook_abs_frame – شماره فریم در زمان مطلق

  • cook_start_time – زمان شروع پردازش

  • cook_end_time – زمان پایان پردازش

  • cooked_this_frame – اگر در این فریم پردازش شده، مقدار ۱ دارد

  • warnings – تعداد هشدارها

  • errors – تعداد خطاها