הפרויקט של Linux Foundation

דף זה מכיל את הפרטים של פרויקט כתיבה טכנית שהתקבל בעונה של Google Docs.

סיכום הפרויקט

ארגון הקוד הפתוח:
The Linux Foundation
כתב טכני:
PIYUSHgoyal16
שם הפרויקט:
הנחיות לעיצוב והדרכה למנהלי התקנים של מדפסות/סורקים באפליקציות של מדפסות
אורך הפרויקט:
אורך רגיל (3 חודשים)

תיאור הפרויקט

סקירה כללית

מנהלי התקנים של מדפסות קלאסיות הכוללים מסננים ספציפיים למדפסת וקובצי PPD (Postscript Print Description) מתארים את יכולות המדפסת ואת המסננים להתקשרות) שצריך לשחרר בספריות מסוימות של מערכת הקבצים, מוחלפים על ידי 'אפליקציות מדפסת' שנקראות 'יישומי מדפסת', אמולציה של מדפסת רשת IPP.

רוב המדפסות המודרניות לשימוש כללי הן מדפסות IPP שמאפשרות הדפסה ללא נהג. הם מפרסמים את עצמם דרך DNS-SD, לקוחות יכולים לדגום את נתוני היכולת שלהם באמצעות בקשות IPP, והם משתמשים בפורמטים סטנדרטיים של נתונים במשימות הדפסה. מדפסות שלא מספקות את הפונקציונליות הזו, בדרך כלל מדפסות מדור קודם או מיוחדות צריכות להיות מנהל התקן של מדפסת.

אפליקציית מדפסת היא דימון (daemon) שמזהה את המדפסות הנתמכות ומפרסם את המדפסות האלה ב-localhost כמדפסת IPP Everywhere. יישומי מדפסת מכילים את התוכנה להדפסת משימות נכנסות במדפסות שבהן היא תומכת, שממירה את הנתונים לשפת האם של המדפסת, ומספקת את המידע על יכולות המדפסת ללקוחות לפי בקשה. אפליקציית המדפסת כוללת אפילו ממשק ניהול אינטרנט, כמו מדפסת רשת ממשית.

כידוע, Linux עוברת לאריזה של ארגז חול (למשל, Snap) וגם ההדפסה נעה בכיוון הזה. בחבילה שמוגנת בארגז חול, אין אפשרות לשנות את תוכן הספרייה לאחר בנייתה. המערכת שלנו כבר לא מודולרית. אנחנו לא יכולים לבחור איזו חבילת מנהל התקן של מדפסת להתקין. יישומי מדפסות מטפלים בבעיה זו של מודולריות ונותנים לנו את אותה חופש כמו במקרה של מנהלי התקנים של מדפסות.

מנהלי התקנים של מדפסות וסורקים ב-Snaps הם לא רק דרישה ל-CUPS מנותק ולאפליקציות מוצמדות, הם פועלים גם במערכות קלאסיות לחלוטין. לעומת זאת, מנהלי התקנים ארוזים בחבילה קלאסית הם בלתי תלויים בהפצת מערכת ההפעלה. לשם כך יוצרים Snap של מנהל התקן למדפסת, והוא פועל בכל ההפצות של מערכות ההפעלה שפועלות במצב Snaps, אין צורך לארוז מנהלי התקנים של מדפסות לכל הפצה (והגרסה שלהן) בנפרד ונתקלים בגיהנום של תלות. היתרון הנוסף הוא שהשימוש בקונספט העתיק של קובצי PPD שמגיעים ממדפסות PostScript הופסק. בנוסף, על ידי צימוד מערכת CUPS ומנהל ההתקן של המדפסת באמצעות חיבור IP במקום להשאיר קבצים למערכת CUPS, מערכת CUPS ואפליקציית המדפסת יכולות להיות בחבילות נפרדות עם ארגז חול.

המשימה שלי תהיה לתאר איך לתכנן את מנהלי ההתקנים עבור מדפסות וסורקים לאריזה כזו, ואיך לארוז אותם ב-Snaps. הכוונה היא לעזור בעתיד לכל מי שכותב מנהלי התקנים של מדפסות או סורקים, ובמיוחד ליצרני החומרה, לעשות זאת בדרך הנכונה.

ניתן לסכם את תהליך העבודה של יישום המדפסת באמצעות תרשים הזרימה הנתון:

הבסיס ליצירת אפליקציות מדפסת/סורק כאלה הוא PAPPL, ספרייה שמספקת את הפונקציונליות הרבה ביותר למטרה זו, אך גם מסננים מסוג cups המכילים קוד לשימוש עבור יישומי מדפסת. הרעיון עדיין נמצא בפיתוח, בעיקר ב-Google Summer of Code השנה

תבנית למנהלי התקנים למדפסות הגדרת מבנה לנתוני JOB

הצהרה על מערך קבועים של גודלי מדיה

הצהרה על פונקציות i) קריאה חוזרת או הפעלה פונקציה בוליאנית שמקבלת את שם מנהל ההתקן, נתוני מנהל ההתקן וכו', ומגדירה מאפיינים של מנהל התקן בהתאם. אם הפרטים שסופקו מתאימים, הערך מחזיר את הערכים true ו-false במקרה של כשל.

ב) הדפסה של פונקציה בוליאנית שמקבלת את המשימה, אפשרויות למשימה והמכשיר. התוכנה מדפיסה קובץ ומחזירה את הערך 'TRUE' ו-'FALSE' במקרה של כישלון.

ג) עבודה בוליאנית שמקבלת עבודה, אפשרויות למשימה ולמכשיר. התוצאה הזו מסיימת את המשימה ומחזירה את הערך True כאשר בהצלחה ו-FALSE במקרה של כישלון.

ד) דף נחיתה פונקציה בוליאנית שמקבלת משרה, אפשרויות למשימה, מכשיר ומספר דף. הפרמטר מסיים את הדף ומחזיר את הערך True כאשר הוא נכשל, ומחזירה את הערך false במקרה של כישלון.

v) rstartjob פונקציה בוליאנית שמקבלת עבודה, אפשרויות למשימה ולמכשיר. המשימה מתחילה את המשימה ומחזירה את הערך True כאשר המשימה היא הצלחה ו-FALSE במקרה של כישלון.

vi) rstartpage פונקציה בוליאנית שמקבלת משרה, אפשרויות למשימה, מכשיר ומספר דף. הקוד מתחיל את הדף ומחזיר את הערך True כאשר הוא נכשל, ו-FALSE במקרה של כשלון.

vii) כתיבה הפונקציה הבוליאנית מקבלת משימה, אפשרויות למשימה, מכשיר, מספר שורה ומערך תווים. היא כותבת את השורה ומחזירה את הערך 'TRUE' ו-'FALSE' במקרה של כישלון. viii) פונקציות אופציונליות כמו זיהוי (עוזרות בזיהוי מדפסות על סמך הפעולה שסופקה), דחיסה(דחיסת קו גרפיקה) וכו'