sane-canon_pp(5) SANE Scanner Access Now Easy sane-canon_pp(5)

sane-canon_pp - بک‌اِند SANE برای اسکنرهای تخت درگاه موازی Canon CanoScan

کتابخانه sane-canon_pp یک بک‌اِند SANE (دسترسی آسان به اسکنر) را پیاده‌سازی می‌کند که دسترسی به اسکنرهای تخت کانن زیر را فراهم می‌سازد:

CanoScan FB320P
CanoScan FB620P
CanoScan FB330P
CanoScan FB630P
CanoScan N340P
CanoScan N640P
CanoScan N640P ex

هیچ اسکنر USB پشتیبانی نمی‌شود و برنامه‌ای برای پشتیبانی از آن‌ها در آینده وجود ندارد. پروژه‌های دیگر در حال کار بر روی پشتیبانی از اسکنرهای USB هستند. برای جزئیات بیشتر به فایل PROJECTS مراجعه کنید. مدل‌های FB310P و FB610P اسکنرهای تغییرنام‌یافته شرکت Avision هستند که از مجموعه دستورات متفاوتی استفاده می‌کنند، بنابراین بعید است در آینده توسط این بک‌اِند پشتیبانی شوند.

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

این بک‌اِند نام‌های دستگاه را به همان شکلی که توسط libieee1284(3) ارائه می‌شود انتظار دارد. این نام‌ها به شدت وابسته به سیستم‌عامل و نسخه آن هستند.

در هسته‌های لینوکس ۲.۴ این نام به صورت parport0 خواهد بود، یا هسته‌های قدیمی‌تر (۲.۲ و پیش از آن) ممکن است بسته به پیکربندی ماژول شما نام‌هایی مانند 0x378 (نشانی پایه درگاه شما) یا صرفاً 0 تولید کنند. در صورت وجود، محتویات /proc/parport را بررسی کنید. اگر مایل به تعیین درگاه پیش‌فرض نیستید (یا نام آن را نمی‌دانید)، بک‌اِند باید بتواند درگاهی را که اسکنر شما روی آن قرار دارد تشخیص دهد.

محتوای فایل canon_pp.conf فهرستی از گزینه‌ها برای استفاده توسط درایور است. خطوط خالی و خطوطی که با علامت هش (#) آغاز می‌شوند نادیده گرفته خواهند شد.

گزینه‌های پشتیبانی‌شده در حال حاضر عبارتند از ieee1284، calibrate، init_mode و force_nibble

تعیین درگاه مورد استفاده. قالب port-name وابسته به سیستم‌عامل است و بر اساس نام‌های ارائه‌شده توسط libieee1284(3) تعیین می‌شود. لطفاً تنها یک خط از این نوع داشته باشید، در غیر این صورت به جز یکی سایر خطوط نادیده گرفته خواهند شد.
تعیین فایل کالیبراسیون برای استفاده به ازای هر درگاه. اگر تنها یک parport دارید، آرگومان port-name می‌تواند حذف شود - اما دقت کنید زیرا این موضوع در سیستم‌های چنداسکنره مشکل‌ساز خواهد شد. تا زمانی که هر خط دارای یک نام درگاه یکتا باشد، می‌توانید هر تعداد از این خطوط را داشته باشید. نویسه تیلدا ('~') قابل قبول است و به مقدار متغیر محیطی HOME بسط می‌یابد.
تعیین حالت راه‌اندازی (بیدارباش) برای استفاده به ازای هر درگاه. اگر تنها یک parport دارید، آرگومان port-name می‌تواند حذف شود - اما مراقب باشید چرا که ممکن است در سیستم‌های چنداسکنره مشکل ایجاد کند. تا زمانی که هر خط دارای نام درگاه یکتایی باشد، می‌توانید هر تعداد از این خطوط را داشته باشید. حالت‌های راه‌اندازی معتبر عبارتند از FB620P (که الگوهای 10101010 و 01010101 را روی پایه‌های داده می‌فرستد)، FB630P (که الگوهای 11001100 و 00110011 را روی پایه‌های داده می‌فرستد) و AUTO، که ابتدا حالت FB630P و سپس FB620P را امتحان می‌کند. حالت FB620P توسط FB320P نیز استفاده می‌شود. حالت FB630P توسط FB330P، N340P و N640P استفاده می‌گردد.
اجبار درایور به استفاده از حالت nibble حتی اگر کارکرد حالت ECP توسط libieee1284(3) گزارش شده باشد. این گزینه راه‌حلی برای این مشکل نادر است که کارکرد حالت ECP توسط کتابخانه گزارش می‌شود اما در عمل کار نمی‌کند.

پیش از اسکن، دکمه "Calibrate" را بزنید. این کار کیفیت اسکن‌ها را به طور چشمگیری بهبود می‌بخشد.

برای فعال‌سازی تشخیص خودکار اسکنر، علامت توضیح را از خط "canon_pp" در فایل /etc/sane.d/dll.conf بردارید.

/etc/sane.d/canon_pp.conf
فایل پیکربندی بک‌اِند (همچنین توضیحات SANE_CONFIG_DIR را در زیر ببینید).
/usr/lib/sane/libsane-canon_pp.a
کتابخانه ایستا که این بک‌اِند را پیاده‌سازی می‌کند.
/usr/lib/sane/libsane-canon_pp.so
کتابخانه اشتراکی که این بک‌اِند را پیاده‌سازی می‌کند (موجود در سیستم‌هایی که از بارگذاری پویا پشتیبانی می‌کنند).

این متغیر محیطی فهرستی از دایرکتوری‌هایی را مشخص می‌کند که ممکن است حاوی فایل پیکربندی باشند. در سیستم‌های یونیکسی، دایرکتوری‌ها با علامت دونقطه (':') و در OS/2 با نقطه ویرگول (';') از یکدیگر جدا می‌شوند. در صورت عدم تنظیم این متغیر، فایل پیکربندی در دو دایرکتوری پیش‌فرض جستجو می‌شود: ابتدا دایرکتوری کاری جاری (".") و سپس در /etc/sane.d . اگر مقدار متغیر محیطی با نویسه جداکننده دایرکتوری به پایان برسد، دایرکتوری‌های پیش‌فرض پس از دایرکتوری‌های صریحاً مشخص‌شده جستجو می‌شوند. به عنوان مثال، تنظیم SANE_CONFIG_DIR به "/tmp/config:" منجر به جستجو در دایرکتوری‌های tmp/config، . و /etc/sane.d (به همین ترتیب) خواهد شد.
اگر کتابخانه با فعال بودن پشتیبانی از اشکال‌زدایی کامپایل شده باشد، این متغیر محیطی سطح اشکال‌زدایی را برای این بک‌اِند کنترل می‌کند. سطوح بالاتر اشکال‌زدایی پرگویی خروجی را افزایش می‌دهند.

مثال: export SANE_DEBUG_CANON_PP=4

قابلیت‌های موجود در رابط ویندوز

روشنایی و کنتراست: این قابلیت‌ها پیاده‌سازی نشده‌اند و احتمالاً هرگز نخواهند شد. به نظر می‌رسد این موارد کاملاً در سطح نرم‌افزاری پیاده‌سازی می‌شوند. در صورت نیاز به این ویژگی‌ها از GIMP یا برنامه‌ای مشابه استفاده کنید.
حالت حذف ترام: در تحلیل اولیه ما به نظر می‌رسد این صرفاً نمونه‌برداری بیش از حد با یک فیلتر ضد پله‌ای شدن (anti-aliasing) است. مجدداً، به نظر می‌رسد این قابلیت کاملاً در سطح نرم‌افزاری پیاده‌سازی شده باشد، بنابراین در حال حاضر GIMP بهترین انتخاب شماست.
جدول‌های گاما: این مورد در دست بررسی است، اما در حال حاضر تنها یک نمایه گامای ساده (یعنی همان نمایه‌ای که در طول کالیبراسیون برگردانده می‌شود) بارگذاری خواهد شد.

مشکلات ارتباطی

حالت ECP در libieee1284(3) همیشه حتی با سخت‌افزارهای جدید به درستی کار نمی‌کند. ما معتقدیم این یک مشکل در ppdev است. اگر فایل پیکربندی را تغییر دهید تا شامل force_nibble شود، مشکل رفع خواهد شد، اما فقط قادر خواهید بود در حالت nibble اسکن کنید.

گاهی اوقات اسکنر ممکن است در وضعیتی رها شود که کد ما قادر به احیای مجدد آن نباشد. اگر بک‌اِند عدم حضور اسکنر را گزارش داد، کابل برق را جدا کرده و دوباره وصل کنید. همچنین چاپگرها را از درگاه عبوری (pass-through) جدا نمایید.

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

خطوط تکراری

گاهی اوقات در وضوح‌های بالا (مثلاً 600dpi) متوجه خطوطی می‌شوید که دو بار ظاهر می‌شوند. این خطوط مربوط به نقاطی هستند که هد اسکنر در طول اسکن متوقف شده است (اسکنر هر بار که بافر داخلی ۶۴ کیلوبایتی پر می‌شود متوقف می‌گردد). در واقع این یک مشکل مکانیکی درون اسکنر است که تلرانس حرکت برای یک توقف/حرکت بیشتر از ۱/۶۰۰ اینچ است. از آنجا که نمی‌دانیم چگونه هد اسکنر را برای اسکن مجدد این بخش‌ها به عقب بازگردانیم، در حال حاضر روش مناسبی برای مقابله با این مشکل وجود ندارد.

اسکن‌های در مقیاس خاکستری

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

نکات مربوط به مدل‌های FB620P/FB320P

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

لغو عملیات (abort) در مدل‌های سری FB*30P به درستی عمل می‌کند، اما در مدل‌های سری FB*20P دارای ایراد است. مدل FB620P که مورد آزمایش قرار گرفت پس از لغو اسکن با روش شناخته‌شده، صرفاً داده‌های نامفهوم بازمی‌گرداند. لغو عملیات می‌تواند اسکنر را در وضعیتی قرار دهد که بتوان آن را خاموش کرد، اما در وضعیتی نخواهد بود که بتوان اسکن دیگری انجام داد.

sane(7), sane-dll(5), libieee1284(3),
http://canon-fb330p.sourceforge.net

این بک‌اِند عمدتاً حاصل تلاش Simon Krix (مهندسی معکوس) و Matthew Duggan (رابط SANE) است.

با تشکر فراوان از Kevin Easton برای نظرات و کمک‌هایش، و Kent A. Signorini برای کمک‌هایش در مورد اسکنر N340P.

11 Jul 2008