לא מנהל מדפסת זרוע? רק לכתוב משלך

כאשר אתה חושב על מכונות קטנות להדפיס את תוויות דביק על חבילות, אתה לא יכול לצפות למצוא מדפסת מורכבת עם שפת התכנות שלה (ZPL). עם זאת, [דן pastusek] היה מסתכל סביב באינטרנט ומצא מדפסת תווית קטנה על מתקן אחסון מקוון של כולם עבור מחיר נהדר שהציע שזה נתמך ZPL. למרבה הצער, [דן] היו חלומות גדולים ליצירת תחנת הדפסה של פטל מבוסס ומצא את Chauffeurs ארוז עבור מדפסת מסוימת זה לא היה זרוע תואם. לא רק תוכן להשאיר אותו שם, הוא התחיל להסתובב בשכבות עד שהיה לו נהג עובד.

ZPL, בליבה שלה, היא רק שפה המתארת ​​פקודות ASCII מועברות על פני חיבור סדרתי. אז בזמן שהמדפסת הופיעה כנקודת קצה, זה לא היה עובד כמסננים (חלק של הנהג שיודע כיצד להמיר מ PNG ל- ZPL) היה X86 בלבד. על לינוקס, מדפסת Chauffeurs יש גם קובץ PPD המתאר מה המדפסת יכולה להתמודד עם גודל הנייר והגדרות אחרות. קובץ PPD עבור המדפסת הקטנה נתן את הרמז הראשון. בשדה Shortnickname, זה מזהה את עצמו כמו HPRT N41, שהוא מדפסת HP פופולרי. אז זה קטן מדפסת צריך להיות שיבוט של מדפסת במשפחה זו. יש לציין, הם לא תומכים ZPL. במקום זאת, סדרת HPRT תמיכה TSPL, שפת מדפסת אחרת שפותחה על ידי TSC.

זה הציג בעיה כמו שירות המשלוח שהציע את התוויות כי [דן] השתמשו תוויות בתביעות בשלושה פורמטים: PNG, PDF ו- ZPL. נכון לעכשיו, זה נראה כאילו יש tspl לממיר ZPL שם בחוץ לשימוש, אז במקום לכתוב שלו, הוא לקח קיצור וכתב מ Rasterizer במקום. בתחילה, הוא ניסה להשתמש כמה קוד לדוגמה שהוא מצא, ובעוד הוא יש משהו לצאת מהמדפסת, זה היה ריק. אז המבחן הבא היה להציל את פלט TSPL גולמי של פילר וחתול ישירות ליציאה הטורית. זה עבד להפליא. לאחר מכן, הוא כתב ממיר לקחת PNG ולהמיר אותם לתוך תבנית bitmap tspl יש. הממיר נמצא ב- JavaScript כפי שהוא פועל במסגרת שרת האינטרנט שמנהל את תחנת ההדפסה. האם זה יכול להיות מהיר יותר בשפה אחרת? בטוח. אבל שפה אחרת לא תעשה את המדפסת מהר יותר.

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