כיצד לפתור בעיות של יציאת התקשורת QuickBasic משותף

כתב ויתור על תוכן KB שהוצא משימוש

מאמר זה נכתב על מוצרים ש- Microsoft כבר לא תומכת בהם. לכן, מאמר זה מוצע "כפי שהוא" והוא לא יעודכן עוד.

סיכום

מאמר זה מתאר עצות לפתרון בעיות עבור באמצעות תקשורת טורית בגירסאות Microsoft QuickBasic 4.0, 4.0b ו- 4.5, בגירסאות Microsoft מהדר בסיסי 6.0 ו- 6.0b עבור MS-DOS ו- MS OS/2, וב-Microsoft בסיסי מקצועי פיתוח מערכת (PDS) גירסאות 7.0 ו- 7.1.


מאמר זה מספק משפט פתיחה COM לדוגמה אמור לפעול כראוי. פתרון בעיות רמזי תקשורת נוספת גם מקבלים. המאמר קשורים, עיין במאמר הבא מתוך מאגר הידע Microsoft Knowledge Base:
39386 הסברים הודעת שגיאה בעת שימוש ב- COM1: ו- COM2:

מידע נוסף

אם אתה נתקל בבעיות בעת שימוש "COM1:" או "COM2:", נסה המשפט OPEN שלהלן, אשר הופך Basic בפני תקלות ככל האפשר של בעיות הקשורות חומרה:
פתח "COM1:300, N, 8, 1, סל, CD0, CS0, DS0, OP0, RS, TB2048, RB2048" כ- #1
(פתיחה זו היא גישה עבור אקראית). הפקודה באה מדגימה הסבר אודות כל פרמטר מומלץ להשתמש במשפט זה פתוח:


  1. גבוה יותר את קצב השידור, גדול הסיכוי לבעיות; לכן, 300 באוד סביר לתת לך בעיות. 2400 באוד היא מהירות הגבוהה ביותר האפשריים דרך קווי טלפון רוב, בשל היכולת בתדירות גבוהה שלהם מוגבל. השידור 19,200, מצריך חיבור כבל ישיר, סביר ביותר לגרום לבעיות. (קצבי שידור אפשריים עבור QuickBasic הם 75, 110, 150, 300, 600, 1200, 1800, 2400, 4800, 9600 ו 19,200.)
  2. זוגיות בדרך כלל אינו מסייע לך באופן משמעותי; מסיבה זו, עליך לנסות ללא זוגיות (N).


    עבור התקנים אלה דורשים זוגיות, עליך להשתמש באפשרות PE (זוגיות אפשר) במשפט COM פתוחה, אשר נדרש כדי להפעיל את בדיקת הזוגיות. כאשר האפשרות PE מפעילה את בדיקת זוגיות, "שגיאת קלט/פלט של התקן" מתרחשת אם שתי תוכניות בתקשורת יש שני parities שונים. (זוגיות יכול להיות חריג, אפילו, ללא, רווח או סימן). לדוגמה, "שגיאת התקן קלט/פלט" מתרחש כאשר שתי תוכניות נסה לדבר זה לזה לאורך קו טורי באמצעות שני שונים COM פתוחה המשפטים הבאים:
          OPEN "COM1:1200,O,7,2,PE" FOR RANDOM AS #1
    ו
          OPEN "COM2:1200,E,7,2,PE" FOR RANDOM AS #2
    אם האפשרות PE מוסר ממשפטי COM פתוחה לעיל, מציג הודעת שגיאה לא.
  3. הדוגמה שלעיל משתמשת 8 סיביות נתונים וסיבית עצירה 1. שמונה סיביות נתונים דורשת ללא זוגיות (N), עקב מגבלת הגודל עבור מסגרת נתונים תקשורת של Basic (10 סיביות).
  4. ברירת המחדל היא סל (מצב בינארי). הערה: האפשרות ASC אינו תומך בפרוטוקול XON/XOFF ולאחר XON ותווים XOFF מועברים ללא טיפול מיוחד.
  5. התעלמות חומרתית לעתים קרובות מתקן בעיות רבות. לכן, אם היישום אינו דורש פרוטוקול לחיצת היד העושה, עליך לנסות לכבות את הבאים הקו-בדיקת חומרה:
    CD0 = הפעלה ביטול פסק הזמן עבור קו צליל תקשורת נתונים לאתר (DCD)
    CS0 = הפעלה ביטול פסק הזמן עבור קו ברור To Send (CTS)
    DS0 = הפעלה ביטול פסק הזמן עבור קו ערכת נתונים מוכן לשידור (DSR)
    OP0 = הפעלה ביטול זמן קצוב עבור פתיחה מוצלחת
  6. RS העלמת זיהוי של בקשת To Send (RTS).
  7. עבור בעיות הקשורות המאגר, נסה להגדיל את השידור וקבלה גודלי המאגרים מעל ברירת המחדל של 512 בתים:
    TB2048 = גדל בגודל מאגר השידור כדי 2048 בתים
    RB2048 = מגדיל את גודל מאגר קליטה על 2048 בתים
    מאגר קבלה גדול יותר יכול לסייע לך לעקוף עיכובים בסיסי נגרם על-ידי משפטים כגון צביעה, להשתמש intensively של המעבד.
להלן רמזים חשובים נוספים לפתרון בעיות תקשורת:


  1. עליך להשתמש בשילוב עם הפונקציה LOC(n) בפונקציה INPUT$(x) כדי לקבל כל קלט מהתקן תקשורת (כאשר "x" הוא מספר התווים המוחזרים על-ידי LOC(n), הוא מספר התווים בתור קלט הממתינות שיש לקרוא. "n" הוא מספר הקובץ שפתחת עבור "COM1:" או "COM2:").


    הימנע משימוש המשפט קלט #n קלט מתוך יציאת התקשורת מכיוון קלט #n מחכה (ASCII 13) גררה.


    הימנע משימוש המשפט GET #n לצורך תקשורת מכיוון ממתין GET #n עבור המאגר למילוי (הצפת מאגר העלולה להתרחש לאחר מכן).


    כמו כן, הימנע משימוש המשפט PUT #n עבור תקשורת והשתמש המשפט #n הדפסה במקום זאת. לדוגמה, ב- QuickBasic, 4.0b ו- 4.5, 6.0 מהדר בסיסי ו- 6.0b ו- 7.0 PDS בסיסי ו- 7.1, באמצעות את PUT #n, x$, התחביר עבור שליחת כמשתנה מחרוזת באורך משתנה כארגומנט השלישי של PUT #n משפט שולח בתים 2 נוסף המכיל את אורך המחרוזת לפני המחרוזת בפועל. אלה בתים אורך 2 נשלח אל יציאת התקשורת עשוי לבלבל את התוכנית המקבלת אם היא אינה מיועדת לטפל בהן. בתים אורך לא נשלחים עם PUT #n, x$ ב QuickBasic 4.0. (גירסאות QuickBasic מוקדם יותר מ- 4.0 אל תציע את התכונה כדי להשתמש במשתנה כארגומנט השלישי של המשפט PUT #n.)
  2. לקבלת דוגמה של תקשורת נתונים, נא עיין המסוף. תוכנית דגימה BAS המגיע בדיסק שחרור עבור גירסאות QuickBasic 4.0, 4.0b ו- 4.5 לגירסאות Microsoft מהדר בסיסי 6.0 ו- 6.0b וכן עבור Microsoft בסיסי מקצועי פיתוח מערכת (PDS) גירסאות 7.0 ו- 7.1. בעיות תקשורת רבות למעשה ייתכן עקב זרימת הבקרה ועיצוב של קוד מקור לא מתאים.
  3. בעיות תקשורת רבות ניתן להציג רק בתצורות חומרה מסוימות והם קשה לפתור או לשכפל במחשבים אחרים. אנו ממליצים ניסויים עם חיבור ישיר (באמצעות כבל מודם מסוג null קצר) במקום עם קישור/מודם טלפון בין השולח למקבל כדי לבודד בעיות תצורה נתון.
  4. ערכות חיווט עבור כבלים משתנים במידה רבה. בדוק את החיווט pin על הכבלים שלך. עבור חיבורי כבל ישיר, כבל ארוך או התנגדות גבוהה סיכוי רב יותר לתת בעיות מכבל קצר, התנגדות נמוכה.
  5. אם הן "COM1:" ו- "ב- COM2:" פתוחים, "ב- COM2:" יטופלו תחילה. בקצב השידור גבוהה, "COM1:" עלול לאבד תווים בעת תחרות זמן מעבד עם "COM2:".
  6. באמצעות המשפט ON COM GOSUB במקום תשאול בפונקציה LOC(n) כדי לאתר תקשורת קלט יכול לעיתים לעקוף בתזמון או אגירה בעיות הנגרמות על-ידי עיכובים ב- Basic. עיכובים ב- Basic יכול להיגרם על-ידי איסוף פסולת שטח מחרוזת, משפטי צביעה או פעולות אחרות המשתמשות במידה רבה את המעבד.
  7. ודא כי הקווים פרוטוקול לחיצת היד העושה החומרה המתאימה (כלומר CS DS, תקליטור, וכו ') הם להיבדק על-ידי Basic. למרות ביטול אלה פסקי זמן (על-ידי הגדרת הערך התואם במשפט פתוח בסיסי לאפס) שימושי לקביעת מה שורות שלך משתמש חומרה, אותו אין להתייחס שיטה למטרה כללית עבור יצירת תקשורת טורית, מאז התעלמות חומרתית עשוי להגדיל את האפשרות של בעיית תזמון שעלול להוביל להיתקע.
השתמש רבים של תוכניות תקשורת מסחרי מתוחכם טכניקות לא נמצא ב- Microsoft Basic ו עשוי להעניק ביצועים טובים יותר.


אם עליך טוב יותר ביצועים תקשורת מאשר אתה מקבל דרך Basic, ייתכן שתרצה לנסות ג. של Microsoft (ניתן להתקשר רוטינות Microsoft C QuickBasic Microsoft 4.0, 4.0b, ו- 4.5, מ- 6.0 מהדר בסיסי של Microsoft ו- 6.0b, ומהן מגירסאות Microsoft בסיסי מקצועי פיתוח מערכת (PDS) 7.0 ו- 7.1.) הבאות היא הפניה מצוינת:
"מדריך מתכנת C תקשורת טורית" על-ידי ירון בר-זוהר, שפורסמו על-ידי Sams W. כהן & החברה.
QuickBasic 3.0, 4.0, 4.0b ו- 4.5 ליישם תקשורת על-ידי פסיקות ישירה כדי IRQ3 ו- IRQ4 קלט הקווים שבב בקר 8259 (במקום הפעלת הפסיקות ROM BIOS).


הספר הבא מספק להציג תיאור טכני, ברמת חומרה מעולה של התקשורת הטורית עבור המחשב האישי של IBM:
"תיכנות שפה האסמבלר 8088: ה-IBM PC" מהדורה שניה על-ידי Willen & Krantz, שפורסמו על-ידי Sams W. כהן & Co. (1983, 1984). 93 92 עמודים ולאחר מכן פרק 7 (עמודים 166 כדי 188).
מאפיינים:

מזהה פריט: 39342 - סקירה אחרונה: 17 בינו׳ 2017 - תיקון: 1

משוב