|
עמוד:241
תכנון מודולרי של התכנית נחלק את תוכנת השרת לכמה תת-תכניות שחלקן חדשות ואת חלקן כבר כתבנו בפעילויות קודמות רן נממש פונקציה חדשה בשם . password הפונקציה תקלוט מהמשתמש סיסמה ותשווה אותה לסיסמה שנקבעה . הפונקציה תחזיר את הערך mode שייצג את מצב העבודה של התוכנה . נזמן פונקציה בשם OpenServer שתוגדר בקובץ הכותרת in out lpt . h ותשמש אותנו ליצירת התקשורת לאינטרנט ולהמתנה עד שתוכנת הלקוח תתחבר . נזמן פונקציה בשם Sw 4 _ in שתוגדר בקובץ הכותרת in out lpt . h ותשמש אותנו לקליטת הנתונים על מצב ארבעת החלונות ממעגלי החומרה . הקליטה תיעשה דרך האוגר המקבילי . נזמן פונקציה בשם Ir in שתוגדר בקובץ הכותרת in _ out _ lpt . h ותשמש אותנו לקליטת הנתונים על מצב חיישן המעבר . הקליטה תיעשה ממעגלי החומרה . חישובים והמרות בתוכנת השרת : כדי לשדר נתון אחד בין תוכנת השרת לתוכנת הלקוח המכיל את הנתונים של כל חמשת הפתחים שבבית , נקלוט את המצב של ארבעת החלונות כמספר בין אפס ל16- ובנפרד נקלוט את מצב הדלת כמספר בינארי ' ) אפס' או 'אחד . ( ' נאחד את שני המספרים האלה על-ידי ביצוע ארבע הזזות שמאלה של המספר המייצג את ארבעת החלונות ועל-ידי ביצוע OR לוגי עם הערך המייצג את מצב הדלת . נמיר את המספר המיועד לשידור למחרוזת טקסט על-ידי שימוש בפונקציה itoa מפני שפרוטוקול התקשורת שבו אנו משתמשים מעביר רק מחרוזות טקסט ולא מספרים . חישובים והמרות בתוכנת הלקוח ז נמיר את מחרוזת הטקסט שהתקבלה בתקשורת למספר שלם על-ידי שימוש בפונקציה . atoi כדי לבודד מהמספר שנקלט את הסיבית המייצגת את מצבו של אחד מחמשת הפתחים של הבית , נבצע פעולת AND לוגי עם הערך הבינארי של הסיבית שאותה אנו רוצים לבודד ונשווה אותה לאותו ערך . הערך שיתקבל הוא המספר שייצג את ערכה של סיבית בודדת .
|
|