ترجمه کامل متن:
Sync Out 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: اگر مشکل اتصال دارید، مطمئن شوید که 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های کلاینتهای راه دور.
پارامترها – صفحه Sync Out
-
Active (active) – مشخص میکند آیا CHOP در حال تلاش برای همگامسازی است یا خیر
-
Multicast Address (multicastaddress) – آدرس IP برای ارتباط (مثلاً 224.0.0.1)
-
Network Port (port) – پورت شبکه مرتبط با آدرس
-
Local Address (localaddress) – مشخص کردن IP برای ارسال، مفید در سیستمهایی با چند NIC
-
Local Port Mode (localportmode) – ⊞ انتخاب خودکار یا دستی پورت محلی
-
Local Port (localport) – وقتی حالت بالا Manual است، شماره پورت را اینجا وارد کنید
-
Timeout (msec) (timeout) – حداکثر زمان انتظار برای سیگنالهای همگامسازی (میلیثانیه)
-
Client Timeouts (Consecutive) (clienttimeouts) – تعداد بیشینه Timeoutهای متوالی که باعث نادیده گرفته شدن کلاینت میشود
-
Ban Clients (banclients) – فعال کردن Ban دائمی کلاینتها
-
Total Timeouts (banclienttimeouts) – تعداد بیشینه Timeout برای Ban دائمی
-
Clear Stats (clearstats) – پاک کردن تمام لیستهای Ban و مجموعها
پارامترها – صفحه 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
-
Rename from (commonrenamefrom) – الگوی کانال برای تغییر نام
-
Rename to (commonrenameto) – الگوی جایگزین برای نامها
مثال:
-
این مثال کانالهای c1, c3, c5, c7, c9 و ambient را انتخاب کرده و آنها را به b1…b5 و amb تغییر میدهد.
ورودی اپراتور (Operator Inputs)
-
Input 0: –
Info CHOP Channels
Specific Sync Out CHOP Info Channels
-
sync_incompletes – این عدد هنگام همگام بودن ثابت است و وقتی تعداد پاسخدهندهها کمتر از تعداد مورد انتظار باشد افزایش مییابد
-
sync_totaldelay – کل زمان منتظر ماندن برای پاسخ کلاینتها (میلیثانیه)
-
sync_lastdelay – زمان منتظر ماندن برای پاسخ کلاینتها در آخرین پیام (میلیثانیه)
-
sync_internal – تعداد کلاینتها در همان فایل .toe که منتظرشان است
-
sync_external – تعداد کلاینتها از فایلهای .toe دیگر که منتظرشان است
-
sync_serial – آخرین شماره سریالی که به کلاینتها ارسال شده، با هر پیام افزایش مییابد
Common CHOP Info Channels
-
start – شروع بازه CHOP بر حسب نمونه
-
length – تعداد نمونهها
-
sample_rate – نرخ نمونهبرداری (fps)
-
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 – تعداد خطاها
