خلاصه (Summary)

Pipe In CHOP به کاربران اجازه می‌دهد داده‌های ورودی را از دستگاه‌ها یا منابع سفارشی وارد CHOPها کنند. این اپراتور به‌صورت یک اتصال شبکه‌ای TCP/IP پیاده‌سازی شده است.

این اتصال می‌تواند از یک برنامه‌ی نوشته‌شده توسط کاربر باشد که داده‌ها را به پورتی که Pipe In CHOP استفاده می‌کند ارسال می‌کند، یا از یک پروسه‌ی دیگر TouchDesigner که داده‌ها از طریق Pipe Out CHOP ارسال می‌شوند.

داده‌های معمولی کانال که به Pipe In ارسال می‌شوند، به‌صورت کانال‌های CHOP هستند (نام کانال‌ها به همراه مقادیر اعشاری در هر فریم). علاوه بر این، می‌توان دستورات اسکریپتی TouchDesigner را نیز همراه داده‌ها ارسال کرد که به‌محض رسیدن اجرا می‌شوند.

نکته (TIP):
برای ارسال دستورات اسکریپتی و سایر بسته‌های داده از طریق شبکه، معمولاً استفاده از TCP/IP DAT یا UDP In DAT روش ترجیحی است.

این نود با Touch In CHOP تفاوت دارد، زیرا Pipe In CHOP بر اساس یک جریان از دستورات (command stream) کار می‌کند، نه صرفاً یک جریان ساده از داده‌های کانالی مانند Touch In CHOP. اطلاعات به‌صورت دستورات مختلف وارد می‌شوند که مستندات آن‌ها در فایل‌های موجود در مسیر زیر قابل دسترسی است:
C:/Program Files/Derivative/TouchDesigner*/touch/docs/pipe

برای دریافت داده‌ی شبکه از یک کامپیوتر «سرور» دیگر (برای مثال Pipe Out CHOP که روی یک TouchDesigner دیگر در حال اجراست)، باید پیش از ارسال داده، اتصال بین سرور و Pipe In CHOP برقرار شود. شما باید Server Address و Port سروری که داده‌ها از آن دریافت می‌شوند را مشخص کنید. سرور باید روی پورتی که این CHOP استفاده می‌کند، در حالت listening باشد.

نکته مخصوص ویندوز (NOTE for Windows OS):
در صورت بروز مشکل در اتصال، مطمئن شوید که Windows Firewall غیرفعال است.

همچنین ببینید: Shared Mem In CHOP


فهرست مطالب (Contents)

  1. Summary

  2. Parameters – PipeIn Page

  3. Parameters – Common Page

  4. Info CHOP Channels
      4.1 Specific Pipe In CHOP Info Channels
      4.2 Common CHOP Info Channels
      4.3 Common Operator Info Channels


Parameters – PipeIn Page

  • Connection Mode (mode)
    تعیین می‌کند اپراتور به‌صورت سرور (Server) یا کلاینت (Client) عمل کند.

  • Server Address (address)
    آدرس شبکه‌ی کامپیوتر سرور. این آدرس می‌تواند یک آدرس استاندارد وب مانند foo یا foo.bar.com باشد. همچنین می‌توان از IP (مثلاً 100.123.45.78) یا نام شبکه‌ی کامپیوتر استفاده کرد. اگر مقدار localhost وارد شود، یعنی سمت دیگر Pipe روی همان کامپیوتر قرار دارد.

  • Server Port (port)
    پورت شبکه‌ی سرور.

  • Active (active)
    وقتی روشن باشد، CHOP اطلاعات را از Pipe یا سرور دریافت می‌کند. وقتی خاموش باشد، هیچ به‌روزرسانی‌ای انجام نمی‌شود.
    داده‌هایی که توسط سرور ارسال می‌شوند از دست می‌روند، اما Pipe داده‌ها را ذخیره می‌کند تا زمانی که Active دوباره روشن شود.
    در حالت Network، روشن کردن این پارامتر اتصال را برقرار می‌کند و خاموش کردن آن اتصال را قطع می‌کند.

  • Queued (queued)
    با فعال بودن این گزینه، صف‌بندی شبکه (network queuing) فعال می‌شود. پارامترهای بعدی به این حالت مربوط هستند.

  • Minimum Target (mintarget)
    حد پایین محدوده‌ی هدف صف. Pipe In CHOP تلاش می‌کند طول صف را برابر یا بیشتر از این مقدار نگه دارد.

  • Min Unit (mintargetunit)
    واحد اندازه‌گیری برای این پارامتر: Samples، Frames یا Seconds.

  • Maximum Target (maxtarget)
    حد بالای محدوده‌ی هدف صف. Pipe In CHOP تلاش می‌کند طول صف را برابر یا کمتر از این مقدار نگه دارد.

  • Max Unit (maxtargetunit)
    واحد اندازه‌گیری برای این پارامتر: Samples، Frames یا Seconds.

  • Maximum Queue (maxqueue)
    حداکثر اندازه‌ی صف در حالت پر. اگر صف به این حد برسد، سمپل‌های ورودی جدید حذف می‌شوند. این پارامتر همچنین حداکثر تعداد دستورات اسکریپتی قابل صف‌شدن را مشخص می‌کند؛ پس از آن، دستورات جدید حذف خواهند شد.

  • Max Queue Unit (maxqueueunit)
    واحد اندازه‌گیری برای این پارامتر: Samples، Frames یا Seconds.

  • Queue Adjust Time (adjusttime)
    مشخص می‌کند هر چند وقت یک‌بار سمپل‌ها تکرار یا حذف شوند تا طول صف به محدوده‌ی هدف نزدیک شود.
    برای مثال، اگر مقدار = 1 و واحد = Seconds باشد، سیستم سعی می‌کند هر یک ثانیه یک سمپل را تکرار یا حذف کند تا صف در محدوده‌ی تعیین‌شده توسط Minimum Target و Maximum Target باقی بماند.

  • Adjust Unit (adjusttimeunit)
    واحد اندازه‌گیری برای این پارامتر: Samples، Frames یا Seconds.

  • Reset Channels (reset)
    تمام کانال‌ها و داده‌های ورودی را حذف و پاک می‌کند.

  • Allow Incoming Scripts (allowscripts)
    دستورات اسکریپتی ورودی فقط در صورتی اجرا می‌شوند که این گزینه روشن باشد. خاموش بودن آن امنیت بیشتری دارد.

  • Echo Messages to Console (echo)
    تمام دستورات ورودی (نه داده‌های کانالی) را در Console چاپ می‌کند. Console از منوی Dialogs قابل باز شدن است.
    برای تست اتصال، می‌توان دستوراتی مانند echo X را در جریان داده‌ی ورودی قرار داد.

  • Callbacks DAT (callbacks)
    مسیر یک DAT که شامل callbackها برای هر رویداد دریافتی است. برای نحوه‌ی استفاده به pipeinCHOP_Class مراجعه کنید.


Parameters – Common Page

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

  • Scope (scope)
    برای تعیین این‌که کدام کانال‌ها تحت تأثیر قرار بگیرند، برخی CHOPها از رشته‌ی Scope استفاده می‌کنند.

  • Sample Rate Match (srselect)
    مدیریت اختلاف نرخ نمونه‌برداری بین چند CHOP ورودی. هنگام Resample شدن، منحنی‌ها بر اساس روش Interpolation انتخاب‌شده (یا Linear به‌صورت پیش‌فرض) درون‌یابی می‌شوند.

  • Export Method (exportmethod)
    نحوه‌ی اتصال کانال CHOP به پارامتر را مشخص می‌کند. برای اطلاعات بیشتر به مقاله‌ی Export مراجعه کنید.

  • Export Root (autoexportroot)
    مسیر نود ریشه‌ای که تمام مسیرهای Export به‌صورت Channel Name = Path:Parameter نسبت به آن تعریف می‌شوند.

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


Info CHOP Channels

اطلاعات اضافی مربوط به Pipe In CHOP از طریق Info CHOP قابل دسترسی است.

Specific Pipe In CHOP Info Channels

  • connected

  • num_connected

  • queue_size

  • queue_retarded_total

  • queue_advanced_total

  • time_under_target

  • time_over_target

  • queue_bumped

Common CHOP Info Channels

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

  • length – تعداد سمپل‌ها در CHOP

  • sample_rate – نرخ نمونه‌برداری کانال‌ها (فریم بر ثانیه)

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

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

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

Common Operator Info Channels

  • total_cooks – تعداد دفعاتی که اپراتور از شروع اجرا cook شده است

  • cook_time – مدت زمان آخرین cook بر حسب میلی‌ثانیه

  • cook_frame – شماره فریم آخرین cook نسبت به تایم‌لاین کامپوننت

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

  • cook_start_time – زمان شروع cook (میلی‌ثانیه) در فریم مربوطه

  • cook_end_time – زمان پایان cook (میلی‌ثانیه) در فریم مربوطه

  • cooked_this_frame – اگر اپراتور در این فریم cook شده باشد 1

  • warnings – تعداد هشدارها (در صورت وجود)

  • errors – تعداد خطاها (در صورت وجود)