| sane-sharp(5) | SANE Scanner Access Now Easy | sane-sharp(5) |
نام (NAME)
sane-sharp - بکاند SANE برای اسکنرهای SHARP
توضیحات (DESCRIPTION)
کتابخانه sane-sharp یک بکاند SANE (Scanner Access Now Easy) را پیادهسازی میکند که دسترسی به اسکنرهای SCSI شارپ (Sharp) را فراهم میآورد. این بکاند باید به عنوان یک نرمافزار با کیفیت بتا (آزمایشی) در نظر گرفته شود! در وضعیت فعلی، عملکرد آن با اسکنرهای JX-610 و JX-250 تایید شده است. این بکاند برای استفاده با اسکنرهای سری JX-330 آماده شده است، اما امکان آزمایش آن با این دستگاهها برای ما فراهم نبوده است.
برای سایر اسکنرهای شارپ، ممکن است کار کند یا نکند.
در حال حاضر، مشخص شده است که اسکنرهای زیر با این بکاند کار میکنند:
Vendor Product id: ----- ----------- Sharp JX-610 Sharp JX-250 Sharp JX-320 Sharp JX-330 Sharp JX-350
اسکنرهای زیر توسط بکاند شناسایی میشوند اما آزمایش نشدهاند:
Vendor Product id: ----- ----------- Sharp JX-325
نامهای دستگاه (DEVICE NAMES)
این بکاند نامهای دستگاه را به این شکل انتظار دارد:
که در آن special مسیر دستگاه خاصی است که متناظر با یک اسکنر SCSI است. نام دستگاه خاص باید یک دستگاه عمومی SCSI یا یک پیوند نمادین (symlink) به چنین دستگاهی باشد. تحت لینوکس، چنین نام دستگاهی میتواند به عنوان مثال /dev/sga یا /dev/sge باشد. برای جزئیات بیشتر به sane-scsi(5) مراجعه کنید.
گزینههای اسکن (SCAN OPTIONS)
- --mode
- حالت اسکن (Scan Mode). مقادیر ممکن عبارتند از: Lineart (اسکنهای ۱ بیتی سیاه و سفید)، Gray (اسکنهای ۸ بیتی مقیاس خاکستری)، Lineart Color (اسکنهای رنگی دو-سطحی)، و Color (اسکنهای ۸ بیتی RGB). مقدار پیشفرض Color است.
- --halftone-pattern
- الگوی هافتون (Halftone Pattern). فقط برای اسکنرهای سری JX-330 موجود است. تنظیمات ممکن: none، Dither Bayer، Dither Spiral، Dither Dispersed و Error Diffusion. مقدار پیشفرض none است.
- --source
- منبع کاغذ (Paper Source). این گزینه تنها در صورتی موجود است که یک تغذیهکننده خودکار سند (ADF) یا یک آداپتور شفافیت نصب شده باشد. تنظیمات ممکن عبارتند از: Flatbed، Automatic Document Feeder و Transparency Adapter. در صورت نصب بودن ADF یا آداپتور شفافیت، استفاده از آن انتخاب پیشفرض خواهد بود.
- --custom-gamma
- گامای سفارشی (Custom Gamma). این گزینه مشخص میکند که آیا از یک جدول گامای داخلی استفاده شود یا سفارشی. تنظیمات ممکن عبارتند از: yes (فعالسازی جدولهای گامای سفارشی) یا no (فعالسازی جدول گامای توکار).
- --gamma
- گاما (Gamma). این گزینه تنها در صورتی در دسترس است که Custom Gamma روی no تنظیم شده باشد. مقادیر ممکن عبارتند از: 1.0 یا 2.2. مقدار پیشفرض 2.2 است. (اسکنرهای JX-250 و JX-350 دارای تصحیح گامای داخلی نیستند؛ برای این اسکنرها، یک جدول گاما توسط بکاند در اسکنر بارگذاری میشود.)
- --gamma-table
- جدول گاما (Gamma Table). مقادیر مجاز: 0..255؛ باید ۲۵۶ عدد تعریف شود. مقادیر پیشفرض 0, 1, 2, .. 255 هستند (یعنی gamma == 1). این جدول فقط برای اسکنهای مقیاس خاکستری استفاده میشود.
- --red-gamma-table
- جدول گامای قرمز (Red Gamma Table). مقادیر مجاز: 0..255؛ باید ۲۵۶ عدد تعریف شود. مقادیر پیشفرض 0, 1, 2, .. 255 هستند (یعنی gamma == 1).
- --green-gamma-table
- جدول گامای سبز (Green Gamma Table). مقادیر مجاز: 0..255؛ باید ۲۵۶ عدد تعریف شود. مقادیر پیشفرض 0, 1, 2, .. 255 هستند (یعنی gamma == 1).
- --blue-gamma-table
- جدول گامای آبی (Blue Gamma Table). مقادیر مجاز: 0..255؛ باید ۲۵۶ عدد تعریف شود. مقادیر پیشفرض 0, 1, 2, .. 255 هستند (یعنی gamma == 1).
- --resolution
- وضوح تصویر اسکن شده را انتخاب میکند. مقادیر مجاز: 30..600 (برای JX-330، JX-350 و JX-610) و 30..400 (برای JX-250). مقدار پیشفرض 150 است.
- -l، -t، -x، -y
- پنجره اسکن (Scan Window). موقعیت x گوشه بالا-چپ ناحیه اسکن (-l)، موقعیت y گوشه بالا-چپ ناحیه اسکن (-t)، موقعیت x گوشه پایین-راست ناحیه اسکن (-x) و موقعیت y گوشه پایین-راست ناحیه اسکن (-y). تنظیمات ممکن به مدل اسکنر و برای JX-250 و JX-350، همچنین به استفاده از تغذیهکننده خودکار سند یا آداپتور شفافیت بستگی دارد. لطفاً به مقادیر مجاز توسط xscanimage(1) یا xsane(1) مراجعه کنید. با استفاده از scanimage(1)، یکی از دستورات زیر را برای مشاهده مقادیر مجاز پارامترهای پنجره اسکن وارد کنید:
scanimage -d sharp --source Flatbed --help
scanimage -d sharp --source "Transparency Adapter" --help
- --edge emphasis
- تأکید بر لبهها (Edge emphasis). این گزینه برای JX-250 و JX-350 در دسترس نیست. تنظیمات ممکن: None، Middle، Strong، و Blur. مقدار پیشفرض None است.
- --threshold
- آستانه (Threshold) پیکسلهای سیاه و سفید را در حالت lineart تنظیم میکند. مقادیر ممکن 1..255 هستند. مقدار پیشفرض 128 است. این گزینه فقط در حالت اسکن lineart در دسترس است.
- --threshold-red
- آستانه مؤلفه قرمز یک پیکسل را در حالت اسکن خطی رنگی (lineart color) تنظیم میکند. مقادیر ممکن 1..255 هستند. مقدار پیشفرض 128 است. این گزینه فقط در حالت اسکن lineartcolor در دسترس است.
- --threshold-green
- آستانه مؤلفه سبز یک پیکسل را در حالت اسکن خطی رنگی (lineart color) تنظیم میکند. مقادیر ممکن 1..255 هستند. مقدار پیشفرض 128 است. این گزینه فقط در حالت اسکن lineart color در دسترس است.
- --threshold-blue
- آستانه مؤلفه آبی یک پیکسل را در حالت اسکن خطی رنگی (lineart color) تنظیم میکند. مقادیر ممکن 1..255 هستند. مقدار پیشفرض 128 است. این گزینه فقط در حالت اسکن lineartcolor در دسترس است.
- --lightcolor
- رنگ منبع نور را تنظیم میکند. مقادیر ممکن عبارتند از: white، red، green و blue. مقدار پیشفرض white است. این گزینه تنها در حالتهای اسکن lineart color و color در دسترس است.
استفاده از ADF (ADF USAGE)
در صورت گیر کردن کاغذ، درپوش نگهداری (maintenance cover) باید باز و بسته شود، حتی اگر کاغذ گیر کرده بتواند بدون باز کردن درپوش برداشته شود. در غیر این صورت، وضعیت خطا پاک نخواهد شد.
پیکربندی (CONFIGURATION)
محتویات فایل sharp.conf فهرستی از گزینهها و نامهای دستگاه است که با اسکنرهای Sharp مطابقت دارند. خطوط خالی و خطوطی که با علامت هش (#) شروع میشوند نادیده گرفته میشوند. برای جزئیات بیشتر درباره نامهای دستگاه، به sane-scsi(5) مراجعه کنید.
خطوط تنظیمکننده یک گزینه با کلمه کلیدی option شروع میشوند که پس از آن نام گزینه و مقدار گزینه میآید. در حال حاضر، سه گزینه تعریف شده است: buffers، buffersize و readqueue.
گزینههای تعریفشده در ابتدای sharp.conf برای همه دستگاهها اعمال میشوند؛ گزینههای تعریفشده پس از یک نام دستگاه، فقط برای آن دستگاه اعمال میگردند.
گزینههای buffers و readqueue تنها زمانی موثر هستند که بکاند بهگونهای کامپایل شده باشد که برای هر اسکن یک فرآیند ثانویه منشعب (fork) شود (سوئیچ USE_FORK در sharp.c ). این فرآیند دادههای اسکن را از اسکنر خوانده و آنها را در یک بلوک حافظه اشتراکی (shared memory) مینویسد. فرآیند والد، دادهها را از این بلوک حافظه خوانده و به فرانتاند تحویل میدهد. این گزینهها اندازه و نحوه استفاده از این بلوک حافظه اشتراکی را کنترل میکنند.
option buffers تعداد بافرهای مورد استفاده را مشخص میکند. کمترین مقدار مجاز ۲ است.
option buffersize اندازه یک بافر را مشخص میکند. از آنجا که هر بافر با یک دستور خواندن واحد ارسالشده به اسکنر پر میشود، اندازه آن بهطور خودکار به اندازهای محدود میشود که توسط سیستمعامل یا کتابخانه Sane SCSI برای دستورات خواندن SCSI مجاز است. اندازه بافر ۱۲۸ کیلوبایت یا ۲۵۶ کیلوبایت برای وضوحهای اسکن ۳۰۰ dpi و بالاتر توصیه میشود.
option readqueue مشخص میکند که چه تعداد دستور خواندن ارسالشده به اسکنر در صف قرار گیرند. در حال حاضر، کتابخانه Sane SCSI فقط برای لینوکس از صفبندی دستورات خواندن پشتیبانی میکند. برای سایر سیستمعاملها، option readqueue باید روی 0 تنظیم شود. برای لینوکس، option readqueue باید روی 2 تنظیم شود. مقادیر بزرگتر از 2 برای option readqueue در بیشتر موارد منطقی نیستند. option buffers باید بزرگتر از option readqueue باشد.
ملاحظات عملکرد (PERFORMANCE CONSIDERATIONS)
این بخش بر مشکل توقفهای کالسکه اسکنر (carriage) در طول اسکن تمرکز دارد. توقفهای کالسکه عمدتاً در JX-250 رخ میدهد. این اسکنر در مقایسه با سرعتش، بافر داخلی کوچکی دارد. این بدان معناست که بکاند باید دادهها را تا حد امکان سریع از اسکنر بخواند تا از توقف کالسکه جلوگیری شود.
حتی JX-250 برای یک اسکن مقیاس خاکستری A4 با وضوح 400 dpi تنها به کمتر از ۱۰ ثانیه زمان نیاز دارد، که منجر به نرخ انتقال داده بیش از ۱.۶ مگابایت بر ثانیه میشود. این بدان معناست که دادههای تولید شده توسط اسکنر باید با سرعت بالایی پردازش شوند. به دلیل بافر داخلی کوچک JX-250، بکاند باید بلافاصله پس از خواندن یک بلوک از دادهها، درخواست خواندن بلوک بعدی را ارسال کند تا از توقف کالسکه جلوگیری شود.
توقفهای کالسکه میتواند به دلایل زیر رخ دهد:
- پاسخهای کند بکاند به اسکنر،
- کند بودن برنامهای که دادههای دریافتشده توسط بکاند را پردازش میکند.
ترافیک بیش از حد در گذرگاه SCSI: این حالت زمانی رخ میدهد که مثلاً دیسکهای سخت به همان گذرگاه SCSI اسکنر متصل باشند و انتقال داده به/از این دیسکها بخش قابل توجهی از پهنای باند SCSI را در طول اسکن اشغال کند. اگر چنین است، باید اتصال اسکنر به یک آداپتور SCSI مجزا را در نظر بگیرید.
پاسخهای کند بکاند به اسکنر: متأسفانه، سیستمعاملهای شبهیونیکس عموماً قابلیتهای بلادرنگ (real-time) ندارند. بنابراین هیچ تضمینی وجود ندارد که بکاند تحت هر شرایطی بتواند با سرعت مورد نیاز با اسکنر ارتباط برقرار کند. برای به حداقل رساندن این مشکل، بکاند باید بهگونهای کامپایل شود که یک فرآیند خواننده جداگانه منشعب شود: مطمئن شوید هنگام کامپایل sharp.c مقدار USE_FORK تعریف شده باشد. اگر پاسخهای کند بکاند همچنان یک مشکل باقی بماند، میتوانید بار سیستم را کاهش دهید. حتی با اینکه بکاند و فرآیند خواننده به میزان ناچیزی از زمان پردازنده نیاز دارند، سایر فرآیندهای در حال اجرا میتوانند باعث افزایش تاخیر بین دو برش زمانی (time slice) دادهشده به فرآیند خواننده شوند. در سیستمهای کندتر، چنین تاخیر افزایشی میتواند برای ایجاد توقف کالسکه در JX-250 کافی باشد. برای لینوکس، استفاده از درایور SG نسخه 2.1.36 یا بالاتر توصیه میشود، زیرا این نسخه در ترکیب با کتابخانه SCSI نسخه 1.0.2 متعلق به Sane از صفبندی دستورات درون هسته پشتیبانی میکند. این پیادهسازی صفبندی در ترکیب با بافری با اندازه حداقل ۱۲۸ کیلوبایت باید از بیشتر توقفهای کالسکه جلوگیری کند.
پردازش کند دادههای اسکن: نمونهای از این وضعیت، دسترسی به اسکنر از طریق شبکه اترنت 10 MBit است که قطعاً برای انتقال دادههای اسکن با سرعتی که توسط اسکنر تولید میشوند بسیار کند است. اگر حافظه کافی در دسترس دارید، میتوانید option buffers را افزایش دهید تا یک تصویر کامل در این بافرها ذخیره شود.
برای بررسی اینکه آیا بکاند خیلی کند است یا پردازش بعدی دادهها کند است، متغیر محیطی SANE_DEBUG_SHARP را روی 1 تنظیم کنید. وقتی اسکن تمام میشود، بکاند خط «buffer full conditions: nn» را در stderr مینویسد. اگر nn صفر باشد، توقفهای کالسکه ناشی از پاسخهای بسیار کند بکاند یا ترافیک زیاد روی گذرگاه SCSI است. اگر nn بزرگتر از صفر باشد، بکاند مجبور شده است nn بار منتظر بماند تا بافر توسط فرانتاند پردازش شود. (لطفاً توجه داشته باشید که option buffers باید بزرگتر از option readqueue باشد تا خروجی مفیدی برای «buffer full conditions» دریافت کنید.)
فایلها (FILES)
- /etc/sane.d/sharp.conf
- فایل پیکربندی بکاند.
- /usr/lib/sane/libsane-sharp.a
- کتابخانه ایستا که این بکاند را پیادهسازی میکند.
- /usr/lib/sane/libsane-sharp.so
- کتابخانه اشتراکی که این بکاند را پیادهسازی میکند (در سیستمهایی که از بارگذاری پویا پشتیبانی میکنند موجود است).
محیط (ENVIRONMENT)
- SANE_DEBUG_SHARP
- اگر کتابخانه با پشتیبانی از اشکالزدایی کامپایل شده باشد، این متغیر محیطی سطح اشکالزدایی (debug level) را برای این بکاند کنترل میکند. برای مثال، مقدار 128 درخواست میکند که تمام خروجیهای اشکالزدایی چاپ شوند. مقادیر کوچکتر میزان جزئیات را کاهش میدهند.
مشکلات شناختهشده (KNOWN PROBLEMS)
۱. حالت ADF
۲. سطح آستانه (Threshold) کار نمیکند (فقط JX-610).
۳. حداکثر وضوح تصویر به 600 dpi (اسکنر JX-610 تا 1200 dpi را پشتیبانی میکند) و 400 dpi (برای JX-250) محدود شده است.
۴. اگر JX-250 با یک ADF استفاده شود، ممکن است وضعیت زیر رخ دهد: پس از چندین اسکن، اسکنر پس از بارگذاری یک برگ کاغذ جدید، کالسکه را به موقعیت بیکار و سپس به موقعیت مورد استفاده برای اسکنهای ADF منتقل میکند. این اتفاق برای هر اسکن رخ میدهد، بر خلاف کالیبراسیون که بعد از هر ۱۰ اسکن انجام میشود. (برای کالیبراسیون نیز کالسکه به موقعیت بیکار منتقل میشود.) ما نمیدانیم که آیا این رفتار ناشی از بکاند است یا باگی در سفتافزار (firmware) اسکنر.
۵. استفاده از آداپتور شفافیت (واحد اسکن فیلم) پشتیبانی میشود، اما آزمایش نشده است.
همچنین ببینید (SEE ALSO)
نویسندگان (AUTHORS)
Kazuya Fukuda, Abel Deuring
قدردانیها (CREDITS)
بکاند Sharp بر اساس بکاند Canon که توسط Helmut Koeberle نوشته شده، طراحی گردیده است.
بخشهایی از این صفحه راهنما رونوشت مستقیمی از sane-mustek(5) نوشته David Mosberger-Tang، Andreas Czechanowski و Andreas Bolsch است.
| 11 Jul 2008 |