LCDd(8) LCDproc suite LCDd(8)

LCDd - دیمن سرور LCDproc

LCDd [-hf] [-c config] [-d driver] [-i bool] [-a addr] [-p port] [-u user] [-w time] [-r level] [-s bool]

LCDd بخش سرور از مجموعه LCDproc است؛ دیمنی که به پورت مشخصی (معمولاً ۱۳۶۶۶) گوش می‌دهد و اطلاعات را روی یک نمایشگر LCD نمایش می‌دهد. این برنامه با انواع و اندازه‌های مختلف نمایشگرها کار می‌کند.

بیشتر تنظیمات LCDd از طریق فایل پیکربندی آن /etc/LCDd.conf انجام می‌شود، هرچند برخی از آن‌ها را می‌توان با استفاده از گزینه‌های خط فرمان بازنویسی کرد. پیش از اجرای LCDd باید آن فایل را به دقت مطالعه کرده و هر آنچه مطابق با نیازهایتان لازم است ویرایش کنید؛ در غیر این صورت ممکن است LCDd به درستی روی سیستم شما اجرا نشود.

برای بهره‌گیری کامل از LCDd، به یک کلاینت مانند lcdproc(1)، lcdexec(1) یا lcdvc نیاز است.

گزینه‌های موجود عبارتند از:

نمایش صفحه راهنما
استفاده از فایل پیکربندی دیگری به جای /etc/LCDd.conf
مشخص کردن درایور مورد استفاده (تنها به اولین درایور خروجی می‌دهد)، که پارامتر Driver در بخش [Server] فایل پیکربندی را بازنویسی می‌کند.
اجرا در پیش‌زمینه (foreground)، که پارامتر Foreground در بخش [Server] فایل پیکربندی را بازنویسی می‌کند. پیش‌فرض در صورت عدم تعیین در فایل پیکربندی، دیمن کردن LCDd است زیرا برای کارکرد در پس‌زمینه طراحی شده است.
تعیین اینکه آیا نمایش صفحه سرور LCDproc در چرخش صفحات فعال (1) باشد یا غیرفعال (0)، که مقدار ServerScreen در بخش [Server] فایل پیکربندی را بازنویسی می‌کند.
مدت زمان توقف در هر صفحه (به ثانیه)، که پارامتر WaitTime در بخش [Server] فایل پیکربندی را بازنویسی می‌کند.
اتصال به نشانی شبکه addr، که پارامتر Bind در بخش [Server] فایل پیکربندی را بازنویسی می‌کند.
گوش دادن به پورت port برای اتصال‌های ورودی، که پارامتر Port در بخش [Server] فایل پیکربندی را بازنویسی می‌کند.
اجرا با هویت کاربر user، که پارامتر User در بخش [Server] فایل پیکربندی را بازنویسی می‌کند.
ارسال پیام‌ها به syslog (1) یا به خروجی استاندارد (0)، که پارامتر ReportToSyslog در بخش [Server] فایل پیکربندی را بازنویسی می‌کند.
تنظیم سطح گزارش‌دهی به level، که پارامتر ReportLevel در بخش [Server] فایل پیکربندی را بازنویسی می‌کند.

درایورهای نمایشگر پشتیبانی‌شده در حال حاضر عبارتند از:

ماژول‌های LCD مدل BayRAD ساخت شرکت EMAC Inc.
نمایشگرهای سریال LCD مدل CFA-632 و CFA-634 ساخت CrystalFontz
نمایشگرهای سریال/USB مدل CFA-533، CFA-631، CFA-633 و CFA-635 ساخت CrystalFontz
نمایش ویدیویی استاندارد با استفاده از کتابخانه (n)curses
نمایشگرهای سریال/USB ساخت Cwlinux (http://www.cwlinux.com)
نمایشگر VFD پنل جلویی روی مدیا بربون Aopen XC Cube EA65
نمایشگر LCD روی EyeboxOne
نمایشگر VFDisplay مدل Futaba TOSD-5711BB روی رایانه‌های مدیا سنتر Elonex Artisan/Scaleo
نمایشگر LCD روی صفحه‌کلید Logitech G15
درایور عمومی برای LCDهای گرافیکی با پشتیبانی از رندر FreeType. این درایور از زیردرایورهای زیر (شناخته‌شده به عنوان connection types) پشتیبانی می‌کند:
پروژه سخت‌افزار/نرم‌افزار متن‌باز GLCD2USB اثر Till Harbaum (http://www.harbaum.org/till/glcd2usb)
نمایشگر گرافیکی LCD مدل picoLCD 256x64 Sideshow (از Mini-Box.com)
نوشتن صفحات در قالب تصاویر PNG
استفاده از serdisplib (http://serdisplib.sourceforge.net) برای خروجی
نمایشگرهای LCD مبتنی بر توشیبا T6963 (حالت گرافیکی)
نمایشگرهای گرافیکی LCD پشتیبانی‌شده توسط graphlcd-base
نمایشگرهای گرافیکی Matrix Orbital GLK
نمایشگرهای LCD هیتاچی HD44780. این درایور از زیردرایورهای زیر (شناخته‌شده به عنوان connection types) پشتیبانی می‌کند:
4bit
حالت ۴ بیتی LCD، متصل به پورت پارالل رایانه
8bit
حالت ۸ بیتی LCD، متصل به پورت پارالل رایانه
نمایشگر LCD در حالت ۴ بیتی از طریق یک ثبات تغییر مکان ۴۰۹۴ (shift register)
نمایشگر LCD در حالت ۸ بیتی با سیم‌بندی WinAmp، متصل به پورت پارالل رایانه
نمایشگر LCD هدایت‌شده توسط چیپ/برد PIC-an-LCD اثر Dale Wheat، متصل به پورت سریال
نمایشگر LCD هدایت‌شده توسط برد متصل‌شونده مبتنی بر PIC16C54، متصل به پورت سریال
نمایشگر LCD هدایت‌شده توسط برد مبتنی بر Atmel AVR، متصل به پورت سریال
نمایشگر Portwell EZIO-100 و EZIO-300 متصل به پورت سریال (http://drivers.portwell.com/CA_Manual/EZIO)
نمایشگر متصل به پورت سریال
ماژول VDR-Wake اثر Frank Jepsen (http://www.jepsennet.de/vdr)
ماژول Pertelian X2040 (http://pertelian.com)
مدل LIS2 از شرکت VLSystem (http://www.vlsys.co.kr)، متصل به USB
مدل MPlay Blast از شرکت VLSystem (http://www.vlsys.co.kr)، متصل به USB
دستگاه LCD از Adams IT Services (http://www.usblcd.de)
مبدل USB به HD44780 ساخت BWCT (http://www.bwct.de)
پروژه سخت‌افزار/نرم‌افزار متن‌باز LCD2USB اثر Till Harbaum (http://www.harbaum.org/till/lcd2usb)
دستگاه‌های مبتنی بر سفت‌افزار USBtiny اثر Dick Streefland
پل ارتباطی USS-720 USB-to-IEEE 1284 (آداپتورهای چاپگر پارالل بلکین F5U002 USB)
پروژه متن‌باز/سخت‌افزار آزاد USB-4-all اثر Sprut (http://www.sprut.de)
اتصال USB از طریق تراشه FTDI FT2232D در حالت bitbang
نمایشگر LCD در حالت ۴ بیتی هدایت‌شده توسط PCF8574(A) / PCA9554(A)، متصل از طریق گذرگاه I2C
برد Adafruit RGB Positive 16x2 LCD+Keypad برای رزبری‌پای
نمایشگر LCD با KS0073 یا معادل آن در حالت سریال، متصل از طریق گذرگاه SPI
برد PiFace Control and Display برای رزبری‌پای (http://www.piface.org.uk)
اتصال TCP با استفاده از پروژه متن‌باز/سخت‌افزار آزاد ethlcd (http://manio.skyboo.net/ethlcd)
نمایشگر LCD هدایت‌شده توسط پایه‌های GPIO در رزبری‌پای
اتصال LCD از طریق پایه‌های GPIO که توسط رابط sysfs لینوکس کنترل می‌شوند
نمایشگر ۱۴۰ در ۳۲ پیکسلی VFD در دستگاه Intra2net Intranator 2500
برد آلارم/LCD با پروتکل ارتباطی ICP Peripheral مورداستفاده در دستگاه‌های QNAP و کیس‌های رکمونت ۱۹ اینچ ساخت ICP
ماژول‌های IR/VFD مدل iMON در کیس‌های ساخت Soundgraph/Ahanix/Silverstone/Uneed/Accent
ماژول‌های IR/LCD مدل iMON در کیس‌های ساخت Soundgraph/Ahanix/Silverstone/Uneed/Accent/Antec
ماژول‌های IR/VFD مدل IRTrans در کیس‌های ساخت Ahanix (مانند MCE303) و احتمالاً موارد دیگر. برای برقراری اتصال ممکن است نیاز به اجرای irserver (http://www.irtrans.de/en/download/linux.php) باشد.
مدل Code Mercenaries IOWarrior
فروسرخ IrMan (ورودی)
درایور جوی‌استیک (ورودی)
نمایشگرهای LCD مدل LB216
نمایشگرهای سریال LCD مدل 20x4 از kernelconcepts.de
ترمینال سریال LCD ساخت Helmut Neumark Elektronik (http://www.neumark.de)
دستگاه‌های رویداد لینوکس (ورودی)
فروسرخ (ورودی)
مدل L.I.S MCE 2005 20x2 VFD (http://vlsys.co.kr)
نمایشگرهای VFD در رایانه‌های Medion MD8800
نمایشگرهای Futuba MDM166A
نمایشگرهای MSI-6931 در سرورهای رکمونت 1U ساخت MSI
نمایشگرهای LCD مدل MTC_S16209x ساخت Microtips Technology Inc
نمایشگرهای Matrix Orbital (به جز نمایشگرهای Matrix Orbital GLK)
نمایشگر LCD روی صفحه‌کلید Logitech MX5000
دستگاه Noritake VFD مدل CU20045SCPB-T28A
نمایشگر ۱۴ قسمتی Olimex MOD-LCD1x9
تخلیه کامل فریم‌بافر روی پورت سریال با سرعت قابل تنظیم.
نمایشگر USB LCD از Mini-box.com (مدل‌های PicoLCD 20x4 و picoLCD 20x2)
نمایشگرهای LCD ساخت Pyramid (http://www.pyramid.de)
نمایشگر LCD دستگاه Watchguard Firebox مبتنی بر SDEC LMC-S2D20 (http://www.sdec.com.tw)
نمایشگرهای گرافیکی مبتنی بر SED1330/SED1335 (یا S1D13300/S1D13305)
نمایشگرهای گرافیکی ۱۲۲ در ۳۲ پیکسلی مبتنی بر کنترلرهای SED1520
درایور دستگاه‌های پایانه فروش (“POS”) با پروتکل‌های مختلف (در حال حاضر فقط AEDEX)
نمایشگرهای متنی VFD از سازندگان مختلف؛ برای جزئیات بیشتر به مستندات کاربری LCDproc مراجعه کنید.
نمایشگر Shuttle VFD (مبتنی بر USB)
درایور Wirz SLI
تراشه نمایش روی صفحه (OSD) مدل STV5730A
دستگاه‌های LCD ساخت شرکت SURE electronics (http://www.sureelectronics.net)
نمایشگرهای VGA با استفاده از svgalib
نمایشگرهای LCD مبتنی بر توشیبا T6963 (حالت متنی)
نمایشگر متنی استاندارد
ماژول LCD در سری Barebone GS ساخت Tyan
دستگاه ULA-200 ساخت ELV (http://www.elv.de)
ترکیب VFD/IR در کیس MonCaso 320 ساخت Moneual
ماژول LCD مدل yard2
نمایش روی صفحه در X11

می‌توان از چندین درایور به صورت همزمان استفاده کرد؛ برای نمونه، نمایشگر Matrix Orbital (درایور MtxOrb) را می‌توان با درایور فروسرخ (درایور irman) ترکیب کرد.

LCDd -d MtxOrb -d joy

مثال فراخوانی بالا، LCDd را با خواندن پیکربندی آن از فایل پیش‌فرض /etc/LCDd.conf راه‌اندازی می‌کند، اما درایورهای مشخص‌شده در آن را با درایور Matrix Orbital و درایور ورودی Joystick بازنویسی می‌نماید.

ترتیب مراحل اولیه به صورت زیر است:

۱. باز کردن یک اتصال TCP به پورت سرور LCDd (معمولاً ۱۳۶۶۶).
۲. ارسال عبارت "hello"
۳. سرور اطلاعاتی درباره نوع نمایشگر در دسترس بازمی‌گرداند.
۴. تعریف (و استفاده از) یک صفحه جدید و ویجت‌های آن.
۵. بستن سوکت پس از اتمام نمایش داده‌ها.

دستورات متعددی برای ارسال از طرف کلاینت به سرور LCDd وجود دارد:

یک نشست کلاینت-سرور با سرور LCDd آغاز می‌کند؛ سرور یک رشته داده حاوی جزئیات نوع نمایشگر و ابعاد آن را برمی‌گرداند.
تنظیم نام کلاینت.
افزودن یک صفحه جدید به نمایشگر.
حذف یک صفحه از نمایشگر.
مقداردهی اولیه یک صفحه، یا بازنشانی داده‌های آن.
افزودن ویجتی از نوع type به صفحه #screen.
حذف ویجت #id از صفحه #screen.
تنظیم داده‌های مورد استفاده برای تعریف یک ویجت خاص #id روی صفحه #screen.

مقادیر معتبر حالت ضربان قلب (برای دستور screen_set) عبارتند از:

نمایش نماد قلب تپنده.
عدم نمایش ضربان قلب.
استفاده از تنظیمات ضربان قلب کلاینت. این مقدار پیش‌فرض است.

مقادیر معتبر حالت نور پس‌زمینه (برای دستور screen_set) عبارتند از:

روشن کردن نور پس‌زمینه.
خاموش کردن نور پس‌زمینه.
معکوس کردن وضعیت نور پس‌زمینه (اگر روشن است خاموش و برعکس).
استفاده از تنظیمات نور پس‌زمینه کلاینت. این مقدار پیش‌فرض است.
چشمک زدن آرام نور پس‌زمینه
چشمک زدن سریع (فلش) نور پس‌زمینه

تنظیمات معتبر اولویت (مورد استفاده در دستور screen_set) به شرح زیر است:

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

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

1 - 64
foreground (پیش‌زمینه)
65 - 192
normal (عادی)
193 - (infinity)
background (پس‌زمینه)

نمونه‌ای از نحوه استفاده صحیح از اولویت‌ها به شرح زیر است:

تصور کنید در حال ساخت یک پخش‌کننده صوتی برای lcdproc هستید. هنگامی که آهنگ تغییر می‌کند، مناسب است نام جدید بلافاصله نمایش داده شود. بنابراین، می‌توانید اولویت صفحه خود را روی foreground تنظیم کنید، منتظر بمانید تا سرور صفحه شما را نمایش دهد (یا نادیده بگیرد)، سپس صفحه را دوباره به حالت normal بازگردانید. این کار باعث می‌شود صفحه پخش بلافاصله پس از اتمام صفحه جاری نشان داده شده و سپس به اولویت عادی بازگردد.

یا فرض کنید کلاینت شما وضعیت بیماران یک بیمارستان را پایش می‌کند. اگر یکی از بیماران دچار حمله قلبی شود، می‌توانید اولویت صفحه را روی alert قرار دهید تا بلافاصله نمایش داده شود و حتی منتظر اتمام صفحه قبلی نیز نماند. همچنین نمایشگر بیشتر اوقات روی صفحه باقی می‌ماند تا کاربر اقدامی در مورد آن انجام دهد.

ویجت‌ها می‌توانند هر یک از موارد زیر باشند:

یک رشته متنی برای نمایش (همان‌طور که هست).
یک نمودار میله‌ای افقی.
یک نمودار میله‌ای عمودی.
یک عنوان نمایش‌داده‌شده در بالای صفحه درون یک کادر (banner).
یک آیکون گرافیکی.
یک نمایش متنی رونده که به صورت افقی یا عمودی پیمایش می‌شود.
یک ظرف (container) برای در بر گرفتن سایر ویجت‌ها، که امکان ارجاع به آن‌ها را به صورت یک واحد یکپارچه فراهم می‌کند. یک ویجت با استفاده از پارامتر -in #id درون یک فریم قرار می‌گیرد که در آن #id به شناسه فریم اشاره دارد.
یک رقم اعشاری بزرگ را نمایش می‌دهد.

ویجت‌ها به ترتیبی که ایجاد می‌شوند روی صفحه رسم می‌گردند.

در دستور widget_set، آرگومان data بستگی به این دارد که چه ویجتی در حال تنظیم است. هر ویجت مجموعه خاصی از آرگومان‌ها را دریافت می‌کند که شکل و رفتار آن را تعریف می‌نمایند:

string x y text
نمایش text در موقعیت (x,y).
title text
استفاده از text به عنوان عنوان برای نمایش.
hbar x y length
نمایش یک میله افقی با شروع از موقعیت (x,y) و با عرض length پیکسل.
vbar x y length
نمایش یک میله عمودی با شروع از موقعیت (x,y) و با ارتفاع length پیکسل.
icon x y name
نمایش آیکون name در موقعیت (x,y).
scroller left top right bottom direction speed text
متن text در جهت مشخص‌شده پیمایش خواهد شد. جهت‌های معتبر عبارتند از h (افقی)، m (متن متحرک/marquee) و v (عمودی). سرعت تعیین می‌کند که چه تعداد “حرکت” (یا تغییر) در هر فریم رخ می‌دهد. عدد مثبت نشان‌دهنده فریم‌ها بر هر حرکت و عدد منفی نشان‌دهنده حرکت‌ها در هر فریم است.
frame left top right bottom wid hgt dir speed
فریم‌ها یک “جعبه” مرئی روی صفحه از گوشه (left, top) تا گوشه (right, bottom) تعریف می‌کنند. داده‌های واقعی ممکن است بزرگتر باشند که با wid (عرض) در hgt (ارتفاع) تعریف می‌شوند؛ در این صورت فریم در جهت (dir) و با سرعت (speed) مشخص‌شده پیمایش خواهد شد.
num x int
نمایش رقم اعشاری بزرگ int در موقعیت افقی x، که مختصات معمولی کاراکتر x روی نمایشگر است. مقدار ویژه ۱۰ برای int علامت دو نقطه (colon) را نمایش می‌دهد.

اگر به نظر می‌رسد LCDd مطابق انتظار کار نمی‌کند، سعی کنید آن را در پیش‌زمینه با بالاترین سطح گزارش‌دهی و خروجی به stderr اجرا کنید. این کار بدون نیاز به تغییر فایل پیکربندی از طریق خط فرمان زیر امکان‌پذیر است:

LCDd -f -r 5 -s 0

/etc/LCDd.conf، فایل پیکربندی پیش‌فرض LCDd

lcdproc-config(5), lcdproc(1), lcdexec(1)

افراد متعددی در پروژه LCDd مشارکت داشته‌اند؛ برای جزئیات بیشتر به فایل CREDITS مراجعه کنید.

تمامی پرسش‌ها باید به فهرست پستی lcdproc ارسال شوند. فهرست پستی و جدیدترین نسخه LCDproc از طریق نشانی زیر در دسترس هستند:

http://www.lcdproc.org

بسته نرم‌افزاری lcdproc تحت عنوان "WorksForMe-Ware" منتشر شده است. به عبارت دیگر، رایگان است، کارآمد است، اما هیچ تضمینی نمی‌دهیم که روی هر سیستمی به جز ماشین‌هایی که روی آن توسعه یافته کار خاصی انجام دهد.

از نظر فنی تحت مجوز GNU GPL منتشر شده است (شما باید فایل "COPYING" را همراه با LCDproc دریافت کرده باشید؛ همچنین برای اطلاعات بیشتر به http://www.fsf.org مراجعه کنید)، بنابراین می‌توانید آن را آزادانه توزیع کرده و استفاده کنید -- اما باید کد منبع را به صورت رایگان در اختیار هر کسی که آن را می‌خواهد قرار دهید.

برای هرگونه اطلاعات حقوقی رسمی، متن مجوز GNU GPL (مجوز عمومی همگانی گنو) را مطالعه کنید. ارزش خواندن دارد.

February 10, 2014 LCDproc