החיבור בין המיפתח לתוכנה במחשב

כללי:

אחרי שכל החומרה ברורה לנו ואנו יודעים את רמות המתחים שהמחשב מקבל ומוציא, כיצד ניתן דרך תוכנה להורות למחשב לשלוח להדק מסויים רמת מתח מסויימת או לבדוק על אחד מהדקי הכניסה מה היא רמת המתח שהתקבלה?


הממשק תוכנה לחומרה (דריבר):

ככלל Visual Basic אינו יודע לפנות ישירות למיפתח. לכן אנו ניעזר בתוכנה חיצונית ל- Visual Basic שמאפשרת גישה לממשק. לתוכנה זו קוראים DLL.


שאלה: מה זה DLL?

תשובה: DLL היא תוכנה המכילה אוסף של פונקציות מחשב שניכתבו על ידי צד שלישי ומאפשרות לשלב אותם בתוכנות שאנו מפתחים. כלומר קובץ חיצוני ל-  Visual Basic שישולב בו ודרכו ניתן יהיה לפנות אל המיפתח.

את ה- DLL ניתן למצוא כקובץ בשם port.dll בכל אחד מהדוגמאות שניתן להוריד דרך האתר או בכתובת הבאה: http://home.t-online.de/home/B.Kainka .

את הקובץ יש להעתיק לתיקייה הבאה:   c:\windows\system  בכל מחשב שמפעיל את המיפתח. אפשרות שניה היא להעתיק את הקובץ לאותה תיקייה שבה מופעל קובץ ההרצה של התוכנה. אישית אני מעדיף את האפשרות השניה.


כתיבת התוכנה ב- Visual Basic:

לפני כתיבת השורה הראשונה במחשב יש להפנות את התוכנה לקובץ ה- DLL שלנו. הפניה זו מתבצעת דרך הוספת מודול (Module) לחלון הפרויקט של ה- Visual Basic. קובץ בשם Ports.bas


שאלה? מה זה מודול (Module)?

תשובה: קובץ מודול מכיל רק קוד, ללא אלמנטים של טפסים או אירועים, בקיצור הוא אוסף של שורות קוד הבנויות כפונקציות או שגרות הנקראות על ידי הטופס (Form).


הוספת קובץ מודול (Module):

הורד למחשב שלך את קובץ המודול ומקם אותו בתיקיית העבודה בו נימצא גם קובץ ה- DLL שהזכרנו מקודם. לקובץ מודול (Module) יש סיומת של Bas



לחץ על Project בתפריט שניפתח בחר Add Module:

בחלון שניפתח לחץ על לשונית Existing ובחר את הקובץ שהורדת מהאתר.



אשר את הבחירה ותקבל מודול חדש כחלק מהפרויקט שלך ב- Visual Basic.



בתוך חלון המודול לחץ לחיצה כפולה על המילה Module1 ותגלה את הקוד הבא:

Declare Function OPENCOM Lib "Port" (ByVal A$) As Integer

Declare Sub CLOSECOM Lib "Port" ()

Declare Sub SENDBYTE Lib "Port" (ByVal b%)

Declare Function READBYTE Lib "Port" () As Integer

Declare Sub DTR Lib "Port" (ByVal b%)

Declare Sub RTS Lib "Port" (ByVal b%)

Declare Sub TXD Lib "Port" (ByVal b%)

Declare Function CTS Lib "Port" () As Integer

Declare Function DSR Lib "Port" () As Integer

Declare Function RI Lib "Port" () As Integer

Declare Function DCD Lib "Port" () As Integer

Declare Sub DELAY Lib "Port" (ByVal b%)

Declare Sub TIMEINIT Lib "Port" ()

Declare Sub TIMEINITUS Lib "Port" ()

Declare Function TIMEREAD Lib "Port" () As Long

Declare Function TIMEREADUS Lib "Port" () As Long

Declare Sub DELAYUS Lib "Port" (ByVal l As Long)

Declare Sub REALTIME Lib "Port" (ByVal i As Boolean)

קוד זה מגדיר את שמות הפונקציות שכתובות בתוך קובץ ה- DLL ומאפשר לתוכנה שלך לגשת אל הפונקציות הנ"ל ולהשתמש בהם כאילו היו חלק מהתוכנית שלך.

אוסף זה של פונקציות (לשם הדיוק פונקציות ושגרות תוכנה) נכתב על ידי B.Kainka ומאפשר שימוש חינם במודול.

להסבר מפורט של כל אחת מהפונקציות גש לדף: עבודה עם פונקציות החיצוניות Port.dll


לסיכום:

ניתן להוריד מהאתר קובץ בשם model.zip שמכיל את כל מה שדרוש כדי להתחיל לכתוב את שורת הקוד הראשונה לתקשורת עם המיפתח הטורי של המחשב. לתחילת עבודה הפעל את הקובץ IOtest.vbp .


הרמן גדי , מורה לאלקטרוניקה ומחשבים - אורט מגדל העמק Herman Gadi © 2003