ترجمه کامل متن:


Sync In CHOP

مجوز: فقط در TouchDesigner Pro موجود است.

خلاصه (Summary)

Sync In CHOP و Sync Out CHOP برای هماهنگ کردن Timeline دو یا چند فرآیند TouchDesigner به گونه‌ای استفاده می‌شوند که اختلاف آن‌ها کمتر از یک فریم باشد.

  • یک فرآیند شامل Sync Out CHOP است و یک یا چند فرآیند دیگر شامل Sync In CHOP هستند.

  • فرآیندهایی که Sync In CHOP دارند، باید پرچم Realtime خاموش باشد، زیرا نرخ فریم آن‌ها توسط Sync Out CHOP تعیین می‌شود.

  • همه مانیتورها (از جمله تمام کلاینت‌ها و سرور) باید روی یک نرخ تنظیم شوند.

  • قطع یا دوباره وصل کردن مانیتورها گاهی باعث تغییر تنظیمات قبلی می‌شود.

CHOPها با توقف Timeline خود تا زمانی که همه Sync In/Out CHOPها Cook شوند، همگام‌سازی می‌شوند. Sync Out CHOP جلوتر از Sync In CHOPها است. اگر هر CHOP نتواند ارتباط برقرار کند، بقیه Timeout شده و باعث می‌شود همه فرآیندها کند اجرا شوند.

کلاینت‌ها می‌توانند در هر زمانی آنلاین شوند یا خاموش شوند و Sync Out CHOP مطابق با آن‌ها زمان‌بندی می‌کند، به صورت موقت یا دائمی کلاینت‌ها را Ban می‌کند.

علاوه بر این، هر کانال اضافی که از Sync Out CHOP ارسال شود، توسط Sync In CHOPها دریافت می‌شود.

نکته برای Windows OS: اگر مشکل اتصال دارید، مطمئن شوید که Windows Firewall غیرفعال است.

یک Info DAT که به Sync Out CHOP اشاره دارد، فهرستی کامل از کلاینت‌ها ارائه می‌دهد:

ستون‌ها:

  • pid: شناسه فرآیند کلاینت

  • address: IP و شماره پورت

  • machine_name: نام ماشین کلاینت

  • filename: نام فایل .toe که کلاینت در آن است

  • op_path: مسیر کامل اپراتور به کلاینت

  • include: وقتی 1 است، Sync Out CHOP منتظر پاسخ می‌ماند، وقتی 0 است، نادیده گرفته می‌شود

  • timeout_total: تعداد کل دفعاتی که Sync Out CHOP منتظر کلاینت بوده و Timeout شده

  • timeout_consecutive: تعداد دفعات پشت سر هم Timeout شدن

  • steady_total: تعداد کل دفعاتی که پاسخ به موقع دریافت شده

  • steady_consecutive: تعداد دفعات پشت سر هم که پاسخ به موقع دریافت شده

  • reply: آخرین پاسخ کلاینت، همه کلاینت‌ها باید مقدار افزایشی یکسانی داشته باشند

یک Info CHOP نیز اطلاعات بیشتری ارائه می‌دهد.


فایل‌های نمونه (Example Files)

دو فایل نمونه ساده که از Sync In و Sync Out CHOP استفاده می‌کنند:

  • SyncServer.toe – فقط یکبار اجرا می‌شود

  • SyncClient.toe – برای هر ماشینی که می‌خواهید نمایش دهید اجرا می‌شود

نکته: ممکن است نیاز باشد Window COMP در مسیر /perform را برای خروجی به مانیتور موردنظر تنظیم کنید. همچنین Hardware Frame Lock در این مثال‌ها فعال نیست، اگر می‌خواهید استفاده کنید، باید آن را در Window COMP فعال کنید.


اتصال‌های متناوب (Intermittent Connections)

  • وقتی یک کلاینت پاسخ می‌دهد، بلافاصله معتبر در نظر گرفته شده و در فریم‌های بعدی توسط Sync Out CHOP منتظر می‌ماند.

  • اگر یک کلاینت چندین بار پشت سر هم Timeout شود، Sync Out CHOP آن را نادیده می‌گیرد تا دوباره پاسخ به موقع بدهد.

  • این حالت شامل کلاینت‌هایی که کاملاً ارتباط خود را قطع کرده‌اند نیز می‌شود.

  • تعداد Timeoutهای متوالی با پارامتر Client Timeouts (consecutive) کنترل شده و در ستون timeout_consecutive در Info DAT نشان داده می‌شود.


رفع مشکل از دست رفتن فریم‌ها در کلاینت (Fixing Dropped frames on Client)

  • اگر یک کلاینت فریم از دست می‌دهد، Sync Out CHOP روی سرور را با Info DAT بررسی کنید.

  • ستون timeout_consecutive و همچنین کانال sync_incompletes در Sync In CHOP را بررسی کنید.

  • اگر یکی یا هر دو مقدار افزایش می‌یابند، پارامتر TimeOut در Sync CHOP را افزایش دهید. این روش معمولاً مشکل را حل می‌کند.


Ban کردن کلاینت‌ها (Banning)

  • اگر یک کلاینت ارتباط نامطمئن تولید کند (گاهی پایدار، گاهی Timeout)، می‌توان با فعال کردن Ban Clients و تنظیم Total Timeouts آن را دائماً نادیده گرفت.

  • وقتی یک کلاینت به تعداد مشخصی Timeout شود، ستون include در Info DAT گزارش banned می‌دهد و همیشه نادیده گرفته می‌شود، حتی اگر دوباره پاسخ دهد.


ریست کردن (Resetting)

  • هنگام شروع به کار Sync Out CHOP، همه کلاینت‌ها پذیرفته شده و هیچکدام Ban نیستند.

  • فشردن Clear Stats در Sync Out CHOP وضعیت را به حالت اولیه برمی‌گرداند، همه لیست‌های Ban و مجموع‌ها پاک می‌شوند، حتی در Info CHOPهای کلاینت‌های راه دور.

همچنین به مقالات Syncing Multiple Computers و Hardware Frame Lock مراجعه کنید.


پارامترها – صفحه Sync In

  • Active (active) – مشخص می‌کند آیا CHOP در حال تلاش برای همگام‌سازی با یک Sync Out CHOP است یا خیر.

  • Multicast Address (multicastaddress) – آدرس IP برای ارتباط (مثلاً 224.0.0.1).

  • Network Port (port) – پورت شبکه مرتبط با آدرس.

  • Timeout (msec) (timeout) – حداکثر زمانی که CHOP برای دریافت سیگنال‌های همگام‌سازی از دیگر CHOPها منتظر می‌ماند (بر حسب میلی‌ثانیه).


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

  • Time Slice (timeslice) – با فعال کردن، کانال‌ها به صورت Time Slice پردازش می‌شوند.

  • Scope (scope) – برای تعیین کانال‌های تحت تأثیر.

  • Sample Rate Match (srselect) – ⊞ مدیریت نرخ نمونه‌برداری مختلف ورودی‌ها.

  • Export Method (exportmethod) – ⊞ تعیین نحوه اتصال کانال CHOP به پارامتر.

  • Export Root (autoexportroot) – مسیر ریشه برای Export.

  • Export Table (exporttable) – DAT برای نگهداری اطلاعات Export.


Info CHOP Channels

Specific Sync In CHOP Info Channels

  • sync_incompletes – این عدد هنگام همگام بودن سیستم ثابت است و زمانی افزایش می‌یابد که تعداد کلاینت‌های پاسخ‌دهنده کمتر از تعداد مورد انتظار باشد.

  • sync_totaldelay – کل زمان منتظر ماندن برای Sync Out CHOP (میلی‌ثانیه).

  • sync_lastdelay – زمان منتظر ماندن برای آخرین پیام از Sync Out CHOP (میلی‌ثانیه).

  • sync_serial – آخرین اندیس سریال ارسال شده از Sync Out CHOP، با هر پیام افزایش می‌یابد.

Common CHOP Info Channels

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

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

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

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

  • time_slice – 1 اگر فعال باشد، در غیر این صورت 0

  • export_sernum – تعداد دفعات بروزرسانی اتصالات Export

Common Operator Info Channels

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

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

  • cook_frame – شماره فریم Cook نسبت به Timeline کامپوننت

  • cook_abs_frame – شماره فریم Cook نسبت به زمان مطلق

  • cook_start_time – زمان شروع Cook بر حسب میلی‌ثانیه

  • cook_end_time – زمان پایان Cook بر حسب میلی‌ثانیه

  • cooked_this_frame – 1 اگر در این فریم Cook شده باشد

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

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