ROTCTLD(1) Hamlib Utilities ROTCTLD(1)

rotctld - دیمن کنترل چرخاننده از طریق TCP

rotctld [-hlLuV] [-m id] [-r device] [-s baud] [-T IPADDR] [-t number] [-C parm=val] [-v[-Z]]

برنامهٔ rotctld یک دیمن کنترل چرخاننده است که درخواست‌های کلاینت را از طریق سوکت‌های TCP مدیریت می‌کند. این ویژگی به چندین برنامهٔ کاربر امکان می‌دهد از یک چرخاننده به‌طور مشترک استفاده کنند (این مورد نیازمند توسعهٔ بیشتر است). با استفاده از چندین فرایند rotctld، می‌توان چندین چرخاننده را روی پورت‌های مختلف TCP کنترل نمود. نحو دستورها همانند rotctl(1) است. امید می‌رود که rotctld به‌ویژه برای نویسندگان کلاینت که از زبان‌هایی مانند Perl، Python، PHP و غیره استفاده می‌کنند مفید باشد.

rotctld از طریق یک سوکت TCP با استفاده از دستورهای متنی مشترک با rotctl با کلاینت ارتباط برقرار می‌کند. پروتکل ساده است: دستورها در یک خط به rotctld ارسال می‌شوند و rotctld در صورت موفقیت، به دستورهای “get” با مقادیر درخواست‌شده (هر مقدار در یک خط) پاسخ می‌دهد؛ در غیر این صورت، با یک خط به‌صورت “RPRT x” پاسخ می‌دهد که در آن ‘x’ یک عدد منفی نشان‌دهندهٔ کد خطاست. دستورهایی که مقداری را برنمی‌گردانند، با خط “RPRT x” پاسخ می‌دهند که در آن در صورت موفقیت، مقدار ‘x’ برابر با ‘0’ است و در غیر این صورت، عددی منفی نشان‌دهندهٔ کد خطا خواهد بود. هر خط با یک نویسهٔ خط جدید ‘\n’ پایان می‌یابد. این پروتکل عمدتاً برای استفاده توسط بک‌اند NET rotctl (مدل چرخانندهٔ ۲) در نظر گرفته شده است.

یک Extended Response Protocol جداگانه رفتار فوق را گسترش می‌دهد؛ به این صورت که رشتهٔ دستور دریافتی را به‌عنوان یک سربرگ، هر مقدار بازگشتی را به‌صورت جفت کلید: مقدار (key: value)، و رشتهٔ “RPRT x” را به‌عنوان نشانگر پایان پاسخ (شامل مقدار موفقیت یا شکست Hamlib) بازتاب می‌دهد. برای جزئیات به بخش PROTOCOL مراجعه کنید. استفاده از این پروتکل را برای کلاینت‌هایی در نظر بگیرید که مستقیماً از طریق سوکت TCP با rotctld تعامل خواهند داشت.

به یاد داشته باشید که Hamlib یک نرم‌افزار در مرحلهٔ آزمایشی (BETA) است. در حالی که بسیاری از کتابخانه‌های بک‌اند فاقد پشتیبانی کامل از چرخاننده هستند، اما عملکردهای پایه معمولاً به‌خوبی پشتیبانی می‌شوند.

لطفاً باگ‌ها را گزارش داده و بازخورد خود را به نشانی رایانامهٔ ارائه‌شده در بخش BUGS در زیر ارسال کنید. وصله‌ها و بهبودهای کد ارسالی به همان نشانی مورد استقبال قرار می‌گیرند. این برنامه از نحو معمول خط فرمان گنو (GNU) پیروی می‌کند. گزینه‌های کوتاهی که آرگومان می‌پذیرند، می‌توانند مقدار را بلافاصله پس از خود داشته باشند یا با یک فاصله از آن جدا شوند. گزینه‌های بلندی که با دو خط تیره (‘-’) آغاز می‌شوند، نیازمند یک ‘=’ بین گزینه و هر آرگومان هستند.

خلاصه‌ای از گزینه‌های پشتیبانی‌شده در ادامه آمده است:

انتخاب شماره مدل روتاتور.
فهرست مدل‌ها را ببینید (از “rotctld -l” استفاده کنید).
نکته: برنامه rotctl (یا نرم‌افزارهای شخص ثالثی که از C API استفاده می‌کنند) از مدل روتاتور ۲ برای NET rotctl استفاده خواهند کرد (این شماره مدل برای rotctld استفاده نمی‌شود، هرچند در فهرست مدل‌ها نشان داده می‌شود).
استفاده از device به عنوان نام فایل پورت متصل به روتاتور.
اغلب یک پورت سریال است، اما می‌تواند یک مبدل USB به سریال باشد. به طور معمول /dev/ttyS0, /dev/ttyS1, /dev/ttyUSB0 و غیره در لینوکس، COM1, COM2 و غیره در MS Windows. توزیع‌های مختلف BSD و Mac OS/X نام‌گذاری‌های مخصوص به خود را دارند. به مستندات سیستم خود مراجعه کنید.
تنظیم سرعت سریال روی نرخ baud.
به طور پیش‌فرض از حداکثر سرعت سریال برگرفته از قابلیت‌های backend روتاتور استفاده می‌کند.
استفاده از IPADDR به عنوان آدرس IP شنود.
پیش‌فرض ANY است.
برنامه rotctld را می‌توان به این صورت اجرا کرد و به آن متصل شد:
rotctld (binds to all interfaces)
rotctl -m 2
rotctl -m 2 -r 127.0.0.1
rotctl -m 2 -r localhost
rotctl -m 2 -r 192.168.1.1 (local IP address)
rotctl -m 2 -r ::1 (on Linux rotctld doesn't listen on IPV6 by default)
rotctld -T 127.0.0.1 (bind only to 127.0.0.1)
rotctl -m 2 (binds to all interfaces)
rotctl -m 2 -r 127.0.0.1 (bind only to 127.0.0.1)
استفاده از number به عنوان پورت شنود TCP.
پیش‌فرض 4533 است.
نکته: از آنجا که پورت پیش‌فرض rotctld ‏4533 است، توصیه می‌شود برای rotctld، از پورت‌های با شماره فرد استفاده کنید، مانند 4533، 4535، 4537 و غیره.
فهرست کردن تمام پارامترهای پیکربندی برای روتاتور تعریف‌شده با -m در بالا.
تنظیم پارامتر(های) پیکربندی روتاتور، مانند stop_bits=2.
برای دریافت فهرستی از پارامترهای پیکربندی برای یک شماره مدل معین، از گزینه -L در بالا استفاده کنید.
تخلیه (dump) وضعیت روتاتور تعریف‌شده با -m در بالا و خروج.
تخلیه قابلیت‌های روتاتور تعریف‌شده با -m در بالا و خروج.
فهرست کردن تمام شماره مدل‌های روتاتور تعریف‌شده در Hamlib و خروج.
فهرست بر اساس شماره مدل مرتب شده است.
نکته: در لینوکس این فهرست را می‌توان با استفاده از Shift-PageUp/Shift-PageDown یا با استفاده از نوار پیمایش یک ترمینال مجازی در X یا پنجره cmd در Windows به عقب پیمایش کرد. خروجی را می‌توان به more(1) یا less(1) هدایت (pipe) کرد، مانند “rotctl -l | more”.
تنظیم حالت پرگویی (verbose)، به صورت افزایشی (بخش خطاها (DIAGNOSTICS) در زیر را ببینید).
فعال‌سازی برچسب‌های زمانی برای پیام‌های اشکال‌زدایی.
تنها در ترکیب با گزینه -v استفاده شود، چرا که به خودی خود هیچ خروجی‌ای تولید نمی‌کند.
نمایش خلاصه‌ای از این گزینه‌ها و خروج.
نمایش نسخه rotctld و خروج.

نکته: برخی از گزینه‌ها ممکن است توسط یک backend مشخص پیاده‌سازی نشده باشند و خطایی را برگردانند. این مورد به احتمال زیاد با گزینه‌های --set-conf و --show-conf رخ می‌دهد.

آگاه باشید که ممکن است backend مربوط به روتاتوری که باید کنترل شود یا خود روتاتور، از برخی دستورها پشتیبانی نکنند. در این صورت، عملیات با یک کد خطای Hamlib با شکست مواجه خواهد شد. دستورها را می‌توان از طریق سوکت TCP به صورت یک نویسه تکی، یا به صورت نام طولانی دستور به همراه مقدار(های) جدا شده با فاصله در یک خط که با ‘\n’ خاتمه می‌یابد، ارسال کرد. بخش PROTOCOL را ببینید.

از آنجا که بیشتر عملیات‌های Hamlib دارای یک متد set و یک get هستند، یک حرف بزرگ لاتین برای متدهای set استفاده می‌شود، در حالی که حرف کوچک متناظر آن به متد get اشاره دارد. همچنین هر عملیات دارای یک نام طولانی است؛ برای ارسال یک نام دستور طولانی، یک بک‌اسلش، ‘\’، را در ابتدای آن قرار دهید.

مثال (Perl): عبارت “print $socket "\\dump_caps\n";” برای مشاهده کارهایی که بک‌اند روتاتور می‌تواند انجام دهد (نکته: در Perl و بسیاری از زبان‌های دیگر، یک ‘\’ باید با یک ‘\’ قبل از خود اسکیپ شود؛ بنابراین با وجود اینکه دو نویسه بک‌اسلش در کد ظاهر می‌شوند، تنها یکی به rotctld ارسال خواهد شد. این مسئله ممکن است باعث بروز اشکال شود، مراقب باشید!).

نکته: ممکن است بک‌اند روتاتوری که قرار است کنترل شود، یا خود روتاتور از برخی دستورها پشتیبانی نکنند. در این صورت، عملیات با یک پیام خطای Hamlib شکست خواهد خورد.

در اینجا خلاصه‌ای از دستورهای پشتیبانی‌شده آمده است (در مورد دستورهای set رشته ایتالیک داخل گیومه با مقدار موجود در توضیحات جایگزین می‌شود. در مورد دستورهای get رشته ایتالیک داخل گیومه، نام کلید مقدار بازگردانده شده است):

تنظیم موقعیت.
مقادیر 'Azimuth' و 'Elevation' اعداد ممیز شناور هستند.
به عنوان مثال (متن تایپ‌شده به‌صورت پررنگ نشان داده شده است):

P 163.0 41.0

نکته: اگر روتاتور از تنظیم ارتفاع (elevation) پشتیبانی نمی‌کند (بیشتر آن‌ها پشتیبانی نمی‌کنند)، مقدار “0.0” را برای 'Elevation' ارائه دهید.
دریافت موقعیت.
مقادیر 'Azimuth' و 'Elevation' به عنوان مقادیر ممیز شناور با دقت مضاعف (double precision) بازگردانده می‌شوند.
حرکت دادن روتاتور در یک جهت مشخص با نرخ داده‌شده.
مقدار 'Direction' یک عدد صحیح یا کلمه کلیدی است که به‌صورت ‘2’ = UP،‏ ‘4’ = DOWN،‏ ‘8’ = LEFT یا CCW،‏ ‘16’ = RIGHT یا CW،‏ ‘32’ = UP_LEFT یا UP_CCW،‏ ‘R64’ = UP_RIGHT = UP_CW،‏ ‘128’ = DOWN_LEFT یا DOWN_CCW و ‘256’ = DOWN_RIGHT یا DOWN_CW تعریف می‌شود.
مقدار 'Speed' یک عدد صحیح بین 1 و 100 است. برای عدم تغییر در سرعت فعلی از -1 استفاده کنید.
نکته: همه بک‌اندهایی که دستور move را پیاده‌سازی کرده‌اند از مقدار Speed استفاده نمی‌کنند.
متوقف کردن روتاتور.
پارک کردن روتاتور.
تنظیم یک پارامتر پیکربندی.
مقدار 'Token' یک رشته است؛ گزینه -C و خروجی -L را ببینید.
مقدار 'Value' یک رشته حداکثر تا ۲۰ نویسه است.
بازنشانی روتاتور.
مقدار 'Reset' یک مقدار صحیح ‘1’ را برای “Reset All” می‌پذیرد.
_, get_info
دریافت اطلاعات متفرقه درباره روتاتور.
مقدار 'Info' “Model Name” را بازمی‌گرداند.
بازگرداندن اطلاعات وضعیتی معین درباره بک‌اند روتاتور.
1, dump_caps
یک دستور راه دور واقعی برای rot نیست، بلکه صرفاً قابلیت‌ها را تخلیه (dump) می‌کند؛ یعنی آنچه را که بک‌اند درباره این مدل می‌داند و کارهایی را که می‌تواند انجام دهد نشان می‌دهد.
ارسال یک رشته دستور خام به روتاتور.
برای پروتکل‌های متنی، ASCII CR به‌طور خودکار در انتهای دستور اضافه می‌شود. برای پروتکل‌های باینری، مقادیر هگزادسیمال را به‌صورت “\0xAA\0xBB” وارد کنید. این دستورها تبدیل درجه، دقیقه، ثانیه (DMS) به فرمت‌های دیگر، تبدیل‌های مکان‌یاب مربعی Maidenhead و تبدیل‌های فاصله و جهت (azimuth) را ارائه می‌دهند.
مقدار Maidenhead 'Locator' را برای 'Longitude' و 'Latitude' داده‌شده برمی‌گرداند.
'Longitude' و 'Latitude' مقادیر ممیز شناور هستند.
'Loc Len' دقت مربع بازگشتی است و باید یک مقدار عدد صحیح زوج بین ۲ و ۱۲ باشد.
برای نمونه:

L -170.0 -85.0 12

برمی‌گرداند:

Locator: AA55AA00AA00

مقادیر 'Longitude' و 'Latitude' را بر حسب درجه اعشاری در مرکز تقریبی مربع شبکه Maidenhead درخواست‌شده برمی‌گرداند.
طول 'Locator' می‌تواند بین ۲ تا ۱۲ نویسه باشد.
طول جغرافیایی غربی به صورت یک مقدار منفی بیان می‌شود.
عرض جغرافیایی جنوبی به صورت یک مقدار منفی بیان می‌شود.
برای نمونه:

l AA55AA00AA00

برمی‌گرداند:

Longitude: -169.999983 Latitude: -84.999991

نکته: با وجود استفاده داخلی از متغیرهای با دقت مضاعف (double precision)، مقداری خطای گرد کردن رخ می‌دهد.
مقدار 'Dec Degrees' را به صورت یک مقدار ممیز شناور علامت‌دار برمی‌گرداند.
'Degrees' و 'Minutes' مقادیر عدد صحیح هستند.
'Seconds' یک مقدار ممیز شناور است.
'S/W' پرچمی است که مقدار ‘1’ در آن نشان‌دهنده عرض جغرافیایی جنوبی یا طول جغرافیایی غربی و ‘0’ نشان‌دهنده شمالی یا شرقی است (این پرچم از این رو لازم است که رایانه‌ها صفر علامت‌دار را تشخیص نمی‌دهند، هرچند که در نمادگذاری DMS معمولاً فقط مقدار 'Degrees' علامت‌دار است).
مقادیر 'Degrees' 'Minutes' 'Seconds' 'S/W' را برمی‌گرداند.
مقادیر مانند dms2dec در بالا هستند.
مقدار 'Dec Degrees' را به صورت یک مقدار ممیز شناور علامت‌دار برمی‌گرداند.
'Degrees' یک مقدار عدد صحیح است.
'Dec Minutes' یک مقدار ممیز شناور است.
'S/W' پرچمی مانند dms2dec در بالا است.
مقادیر 'Degrees' 'Minutes' 'S/W' را برمی‌گرداند.
مقادیر مانند dmmm2dec در بالا هستند.
مقادیر 'Distance' و 'Azimuth' را برمی‌گرداند.
'Distance' بر حسب کیلومتر است.
'Azimuth' بر حسب درجه است.
مقادیر داده‌شده برای Lon/Lat اعداد ممیز شناور علامت‌دار هستند.
مقدار 'Long Path Deg' را برمی‌گرداند.
هم آرگومان ارائه‌شده و هم مقدار بازگشتی، مقادیر ممیز شناور در محدوده 0.00 تا 360.00 هستند.
نکته: ارائه مقدار منفی یک پیام خطا بازمی‌گرداند.
مقدار 'Long Path km' را برمی‌گرداند.
هم آرگومان ارائه‌شده و هم مقدار بازگشتی، مقادیر ممیز شناور هستند.
پیش از ارسال دستور بعدی به گرداننده (rotator)، به میزان عدد صحیح ارائه‌شده از 'Seconds' مکث می‌کند. دو پروتکل توسط rotctld مورد استفاده قرار می‌گیرد: پروتکل پیش‌فرض (Default Protocol) و پروتکل پاسخ گسترده (Extended Response Protocol).

هدف اصلی پروتکل پیش‌فرض برقراری ارتباط بین توابع کتابخانهٔ Hamlib و rotctld است (“NET rotctl”، در دسترس با استفاده از مدل چرخانندهٔ ‘2’).

هدف پروتکل پاسخ گسترده استفاده در اسکریپت‌ها یا سایر برنامه‌هایی است که مستقیماً با rotctld تعامل دارند، زیرا بازخورد پایداری ارائه می‌دهد.

پروتکل پیش‌فرض عمداً ساده طراحی شده است. دستورها در یک خط به همراه هر مقدار مورد نیازی وارد می‌شوند. در عمل، با پایان دادن به هر رشته دستور با یک نویسه خط جدید (‘\n’)، نتایج قابل اعتمادی حاصل می‌شود.

مثال تنظیم موقعیت (کد Perl):


print $socket "P 135 10\n";

یا:


print $socket "\\set_pos 135 10\n";   # escape leading ‘\’

پاسخی تک‌خطی به عنوان جواب به دستورهای set ارسال خواهد شد: “RPRT x\n” که در آن x کد خطای Hamlib است و ‘0’ نشان‌دهندهٔ موفقیت‌آمیز بودن دستور می‌باشد.

پاسخ‌های دستورهای get در rotctld مقادیر متنی هستند و با همان نشانه‌های استفاده‌شده در دستورهای set مطابقت دارند. هر مقدار در خط جداگانه‌ای بازگردانده می‌شود. در صورت بروز خطا، رشتهٔ “RPRT x\n” بازگردانده می‌شود که در آن x کد خطای Hamlib است.

مثال دریافت موقعیت (کد Perl):


print $socket "p\n";
"135"
"10"

بیشتر توابع get یک تا سه مقدار را بازمی‌گردانند. یک استثنای قابل توجه، دستور dump_caps است که خطوط متعددی از جفت‌های key:value را بازمی‌گرداند.

این پروتکل عمدتاً توسط بک‌اند “NET rotctl” (مدل ۲ rotctl) استفاده می‌شود که به برنامه‌هایی که پیش‌تر برای C API متعلق به Hamlib نوشته شده‌اند اجازه می‌دهد بدون نیاز به بازنویسی کد برنامه، از rotctld بهره ببرند. کاربر برنامه می‌تواند مدل چرخانندهٔ ۲ (“NET rotctl”) را انتخاب کرده و سپس rot_pathname را روی “localhost:4533” یا هر host:port شبکه‌ای دیگری (که به ترتیب با گزینه‌های -T/-t در بالا تنظیم می‌شوند) تعیین کند. پروتکل پاسخ گسترش‌یافته، چندین قاعده را به رشته‌های بازگردانده‌شده توسط rotctld افزوده و یک قاعده نیز برای نحو دستورات وضع می‌کند.

۱. دستور دریافت شده توسط rotctld با نام طولانی دستور به همراه مقدار(های) دریافتی از کلاینت (در صورت وجود) که به جداکننده پاسخ مشخص‌شده ختم می‌شود، به عنوان اولین رکورد پاسخ منعکس (echo) می‌شود.

۲. آخرین رکورد هر بلوک، رشته‌ی “RPRT x\n” است که در آن x مقدار عددی بازگشتی از تابع بک‌اند Hamlib است که توسط دستور فراخوانی شده بود.

۳. هر رکوردی که شامل مقادیر داده بازگردانده‌شده توسط بک‌اند روتاتور باشد، با یک رشته آغاز می‌شود که بلافاصله پس از آن دو‌نقطه، سپس یک فاصله و در نهایت مقدار خاتمه‌یافته با جداکننده پاسخ می‌آید؛ مانند “Azimuth: 90.000000\n” هنگامی که در ابتدای دستور ‘+’ قرار گرفته باشد.

۴. دریافت تمام دستورات توسط rotctld با رکوردهای حاصل از قواعد ۱ و ۲ تصدیق (acknowledge) می‌شود. رکوردهای برآمده از قاعده ۳ تنها زمانی بازگردانده می‌شوند که مقادیر داده باید به کلاینت پس فرستاده شوند.

یک نمونه پاسخ به دستور P ارسال‌شده از خط فرمان پوسته (به ‘+’ ابتدایی دقت کنید):


$ echo "+P 90 45" | nc -w 1 localhost 4533
set_pos: 90 45
RPRT 0

در این حالت، نام طولانی دستور و مقادیر در خط نخست بازگردانده می‌شوند و خط دوم حاوی نشانگر پایان بلوک و مقدار عددی بازگشتی از بک‌اند روتاتور است که حاکی از موفقیت‌آمیز بودن عملیات می‌باشد.

یک نمونه پاسخ به پرس‌وجوی get_pos:


$ echo "+\get_pos" | nc -w 1 localhost 4533
get_pos:
Azimuth: 90.000000
Elevation: 45.000000
RPRT 0
نکته: نویسه ‘\’ حتی با وجود نویسه ERP، همچنان برای نام طولانی دستور مورد نیاز است.

در این حالت، از آنجا که هیچ مقداری به rotctld ارسال نشده است، خط اول تنها شامل نام طولانی دستور خواهد بود. خط پایانی نشان می‌دهد که دستور با موفقیت توسط بک‌اند روتاتور پردازش شده است.

فراخوانی پروتکل پاسخ گسترش‌یافته مستلزم قرار دادن یک نویسه نشانه‌گذاری در ابتدای دستور است. همان‌طور که در مثال‌های بالا نشان داده شد، افزودن نویسه ‘+’ به ابتدای دستور باعث می‌شود پاسخ‌ها با نویسه خط جدید (‘\n’) از یکدیگر جدا شوند. هر نویسه نشانه‌گذاری دیگری که توسط تابع C ispunct() شناخته شود، به جز ‘\’، ‘?’، یا ‘_’، موجب می‌شود آن نویسه به عنوان جداکننده پاسخ عمل کند و کل پاسخ در یک خط قرار گیرد.

خلاصه نویسه‌های جداکننده:

‘+’
به هر رکورد از پاسخ، یک نویسه خط جدید (‘\n’) پیوست می‌شود.
‘;’، ‘|’، یا ‘,’
به هر رکورد پاسخ، نویسه مشخص‌شده افزوده می‌شود که منجر به قرار گرفتن کل پاسخ در یک خط می‌گردد.
این‌ها جداکننده‌های رکورد متداول برای نمایش‌های متنی داده‌های صفحه گسترده و غیره هستند.
‘?’
برای راهنما در rotctl رزرو شده است.
‘_’
برای دستور کوتاه get_info رزرو شده است.
‘#’
برای توضیحات (کامنت‌ها) هنگام خواندن یک اسکریپت پرونده دستور رزرو شده است.
نکته: سایر نویسه‌های نشانه‌گذاری آزمایش نشده‌اند! استفاده از آن‌ها با مسئولیت خودتان است.

به عنوان مثال، فراخوانی پرس‌وجوی get_pos با نویسه ‘;’ در ابتدا، چنین بازمی‌گرداند:


get_pos:;Azimuth: 90.000000;Elevation: 45.000000;RPRT 0

یا با استفاده از نویسه خط عمودی (pipe) ‘|’ خروجی زیر بازگردانده می‌شود:


get_pos:|Azimuth: 90.000000|Elevation: 45.000000|RPRT 0

و دستور set_pos همراه با پیشوند ‘|’ بازمی‌گرداند:


set_pos: 135 22.5|RPRT 0

چنین قالبی امکان خواندن پاسخ را به عنوان یک رویداد منفرد با استفاده از جداکننده پاسخ دلخواه فراهم می‌کند. سایر نویسه‌های نشانه‌گذاری آزمایش نشده‌اند!

همه دستورها به استثنای set_conf با پروتکل پاسخ گسترش‌یافته و اسکریپت پرل همراه testrotctld.pl آزمایش شده‌اند. گزینهٔ -v و --verbose امکان ارسال سطوح مختلفی از پیام‌های عیب‌یابی را به stderr فراهم می‌کند که مطابق است با -v برای BUG، -vv برای ERR، -vvv برای WARN، -vvvv برای VERBOSE، یا -vvvvv برای TRACE.

یک سطح پرگویی (verbose) مشخص برای ارائهٔ اطلاعات اشکال‌زدایی مورد نیاز به نشانی ایمیل زیر مفید است. برای مثال، خروجی TRACE تمام مقادیر ارسال‌شده به رادیو و دریافت‌شده از آن را نشان می‌دهد که برای توسعهٔ کتابخانهٔ بک‌اند رادیو بسیار کاربردی است و ممکن است توسط توسعه‌دهندگان درخواست شود.

اجرای rotctld برای یک روتور Hy-Gain Ham IV با برد نصب‌شدهٔ Idiom Press RotorEZ با استفاده از مبدل USB-to-serial و فرستادن به پس‌زمینه:


$ rotctld -m 401 -r /dev/ttyUSB1 &

اجرای rotctld برای RotorEZ با استفاده از COM2 در Win32:


> rotctld -m 401 -r COM2

اتصال به rotctld در حال اجرا، و تنظیم موقعیت روی ۱۳۵٫۰ درجه در سمت (azimuth) و ۳۰٫۰ درجه در فراز (elevation) با مهلت زمانی خواندنِ ۱ ثانیه‌ای از اعلان شل:


$ echo "\set_pos 135.0 30.0" | nc -w 1 localhost 4533

اتصال به یک rotctld در حال اجرا با استفاده از rotctl روی میزبان محلی:


$ rotctl -m 2

هیچ‌گونه احراز هویتی وجود ندارد؛ هرگز این پورت TCP را بدون محافظت به روی اینترنت باز نگذارید. لطفاً در صورت نیاز به امنیت بالاتر درخواست دهید یا استفاده از تونل Secure Shell (ssh(1)) را مد نظر قرار دهید.

از آنجا که rotctld به دسترسی‌های بیشتری نسبت به rotctl نیاز ندارد، توصیه می‌شود به منظور محدود کردن هرگونه آسیب‌پذیری احتمالی، rotctld را با کاربر ریشه “root” یا سایر حساب‌های کاربری سیستمی اجرا نکنید. دیمن خود را از ترمینال جدا نکرده و در پس‌زمینه قرار نمی‌گیرد.

روشی برای خروج از دیمن وجود ندارد، بنابراین برای خاتمه دادن به آن باید از دستور kill(1) استفاده شود.

استفاده هم‌زمان چندین کلاینت از این دیمن ممکن است باعث ایجاد تداخل در دسترسی به روتاتور متصل شود.

گزارش باگ‌ها به:


فهرست پستی توسعه‌دهندگان Hamlib

این فایل بخشی از Hamlib است؛ پروژه‌ای برای توسعه کتابخانه‌ای که توابع کنترلی رادیو، روتاتور و تقویت‌کننده را برای توسعه‌دهندگان نرم‌افزارهایی که در درجه اول مورد توجه علاقه‌مندان به رادیوآماتوری و ارتباطات رادیویی هستند، ساده می‌کند.

کپی‌رایت © 2000-2009 Stephane Fillod
کپی‌رایت © 2000-2018 گروه Hamlib (مشارکت‌کنندگان گوناگون)
کپی‌رایت © 2011-2020 Nate Bargmann

این یک نرم‌افزار آزاد است؛ برای شرایط تکثیر، فایل COPYING را ببینید. هیچ‌گونه ضمانتی وجود ندارد؛ حتی برای قابلیت فروش یا تناسب با یک هدف خاص.

kill(1), rotctl(1), ssh(1), hamlib(7)

پیوندها به ویکی Hamlib، مخزن Git، بایگانی‌های انتشار و بایگانی‌های نسخه‌های روزانه (daily snapshot) از طریق hamlib.org در دسترس است.

2020-09-09 Hamlib