ספר סטאז'

מוסד לימוד
מקצוע
מילות מפתח
שנת הגשה 2006
מספר מילים 9629
מספר מקורות 12

תקציר העבודה

יצירת תפריטים למערכות Embedded הינה עבודה שבשנים אחרונות קיבלה עדיפות גבוהה מאד בעולם היצרני שבבים לטלוויזיות, מסכי פלזמה ו-LCD. בתחום זה חברת Oplus התמחתה על מנת להעניק פתרון מהיר עם ראייה לטווח ארוך. הפרוייקט שמתואר בספר זה מונע על ידי החברה יפנית אשר מוכרת בתחום שבבי הטלוויזיות. הדרישה הייתה לספק תכנה שתהיה מסוגלת ליצור תפריטים בסביבה אינטראקטיבית כך שמשתמשים המתמחים לאו דווקא בתחומי התכנות יוכלו להתמודד איתה. רוב מהמשתמשים הינם מפתחי גרפיקה אשר אינם מצויים בעולם התכנות. מכאן שהמוצר היה צריך לתווך בינם לבין מפתחי התכנה. התכנה אשר נקראת “OSD Builder” הינה מערכת מורכבת אשר יוצרת מסד נתונים כתוב בשפת C טהורה ומהווה את קידוד התפריטים בתכנה המבצעית אשר מפעילה את לוחות הטלוויזיה. מערכת ה-“OSD Builder” קיימת משנת 1999 וגרמה להתקדמות רבה ביצירת הפרוייקטים בזכות המהירות שבה ניתן ליצור את קוד התפריטים ע"י גרפיקאים. מאז התכנה פורסמו לא מעט גרסאות אשר שיפרו בין היתר את מהירות היצירה, יציבות, מבני נתונים ואף נוספו מספר אובייקטים. למרות כל השינויים שבוצעו, לא הייתה ברמת הצורך והוחלט להוסיף שתי תכונות עיקריות:
ü      תמיכה ב-UniCode ü      תמיכה ב-Scrolling (תזוזה) של מספר אובייקטים.
החלק שעליו הייתי אחראי הינו תמיכה ב-Scrolling. כוונת המושג היא לאפשר תזוזה של אובייקטים בעלי מספר פריטים (כגון תפריטים במערך) לפי פיקסלים.
הפרוייקט חולק לשני גרסאות עיקריות: גרסא Alpha אשר בה מומשה היצירה עצמה של קבצי C שמשולבים לתכנה המבצעית, והגרסא Beta אשר מומשה הדמיה מלאה של התפריט, כלומר איך התפריט הסופי ייראה במסך הטלוויזיה. גרסת Gold לא הכילה תכונות חדשות, אלא הדגש הושם על תיקון תקלות וניקוי קוד.
בעת ביצוע הפרוייקט התמקדתי אך ורק בו כיוון שהיה בעדיפות עליונה, מה שאפשר לעמוד בזמן  בכל השחרורים המתוכננים.
      עיקר השלב הראשון  היה להסכים על "פרוטוקולים" שבהם  התבססנו בכדי ליצור את הקבצים הסופיים, כלומר תכולת הקבצים עצמם, מבנים שהתכנה המבצעים מצפה להם, יצירת הפונטים של ה-UniCode וכו'.
      השלב השני היה יותר מסובך מאשר הראשון, כיוון שהיינו צריכים להראות את התפריט הסופי כפי שייראה, כלומר לדמות את סביבת הלוחות והשבבים במחשב רגיל.
הפרוייקט הגיע לסיומו בתאריך 17.05.06 אך נפתחה האפשרות לשכלל אותו ע"י הוספת תכונות חדשות. המסקנות הכלליות היו חיוביות ושני הצדדים היו מרוצים מאד עם התוצר הסופי.
תוכן עניינים:

1 .                      תקציר הפרוייקט. 6
2 .                      מבוא. 8
2 .1.                        תיאור קצר על החברה. 8
2 .2.                          הצורך במחולל תפריטים. 8
3 .                      סקר ספרות. 10
3 .1.                          אותות וידאו דיגיטאליות. 10
3 .2.        מרחב הצבעים. 11
3 .2.1.                         מרחב הצבעים של מערכת RGB.. 11
3 .2.2.     מרחב צבעים YUV.. 12
3 .2.3.             מרחב צבעים YCbCr. 12
3 .3.        מערכות Embedded.. 13
3 .3.1.             מהי מערכת Embedded. 13
3 .3.2. ה-OSD במערכות Embedded. 14
3 .3.3.                      לוח צבעים ומפת סיביות. 15
3 .4.        תכנית בדיקת אימות. 15
3 .4.1.             מה נבדוק ?. 15
3 .4.2.             כיצד נבדוק ?. 15
3 .5.                        תכנות מונחה עצמים. 16
3 .5.1.     רקע. 17
3 .5.2.     מאפייני תכנות מונחה עצמים. 17
3 .5.3.     עקרונות תכנות מונחה עצמים. 18
3 .5.4.     תכנות מונחה אירועים. 21
3 .5.5.     היסטוריה. 21
4 .                      שיטות הנדסת תכנה. 23
5.                      מערך הבדיקות.
5 5.1.            בדיקות Unit..
5 5.2.                    בדיקות מערכת.
5 5.2.1.             תיאור המערך.
5 5.2.2.             ניהול תקלות. 26
6 .                      תיאור הפרוייקט. 28
6 .1.                אפיון הבעיה. 28
6 .2.                שלב העיצוב. 29
6 .3.                שלב הקידוד. 31
6 .3.1.     גרסא Alpha. 31
6 .3.2.     גרסא Beta. 33
6 .3.3.     גרסא Gold. 37
6 .4.                שלב המסירה. 38
7.                      סיכום ומסקנות. 39
8 .                      ביבליוגרפיה. 40 9.                      נספח א. 41
9.1.        תפריטי OSD במערכת Embedded.. 41
9.2.            חלונות OSD, אובייקטים ומבנה. 42
9.3.                                  אובייקטים וחלונות של תכנת ה-OSD Builder.. 43
9.4.                הסימולציה. 44
1 0.                    נספח ב. 45
1 0.1.              מרחב צבעים RGB.. 45
1 0.2.              מרחב צבעים YUV.. 45
1 0.3.              מרחב צבעים YCbCr.. 46