Как се решават проблеми с общата QuickBasic комуникационен порт

Отказ от отговорност за оттеглено съдържание на БЗ

Тази статия е написана за продукти, за които Microsoft вече не предлага поддръжка. Ето защо тази статия се предлага „както е“ и вече няма да бъде актуализирана.

Резюме

Тази статия описва отстраняване на неизправности съвети за използване на серийни комуникации Microsoft QuickBasic версии 4.0, 4.0b и 4.5, Microsoft Basic компилатор версии 6.0 и 6.0b за MS-DOS и MS OS/2 и в Microsoft Basic професионално развитие система (PDS) версии 7.0 и 7.1.


Тази статия съдържа примерен отвори COM обявява, че трябва да работи правилно. Допълнителни съобщения, съвети за отстраняване на неизправности са дадени. Свързани статия вижте следната статия в базата знания на Microsoft:
39386 грешка обяснения за съобщението, когато се използва COM1: и COM2:

Допълнителна информация

Ако имате проблеми при използването на "COM1:" или "COM2:", опитайте следните отвори отчета, което прави Basic като устойчив възможно проблеми с хардуера:
ОТВОРЕТЕ "COM1:300, N 8, 1 СК, CD0, CS0, DS0, OP0, КОМПАКТДИСКОВЕ, TB2048, RB2048" # 1
(Този ОТВОРЕТЕ е за оперативна.) По-долу следва обяснение на всеки препоръчва параметър при отвори тази декларация:


  1. По-висока скорост, по-голяма вероятността за проблеми; по този начин 300 скорост няма да ви даде проблеми. Повечето телефонни линии, поради ограничени висока честота капацитет 2400 скорост е възможно най-високата скорост. 19200 скорост, който изисква пряк тел връзка, е най-вероятно да причинят проблеми. (Възможно скорости за QuickBasic са 75 110 150, 300, 600, 1200, 1800, 2400, 4800, 9600 и 19200.)
  2. Съвместимост обикновено не ви помогне значително; поради това трябва да опитате няма равенство (N).


    За тези устройства, които изискват равенство трябва да използвате опцията за PE (четност разрешаване) в отчета отворен COM, които трябва да включите проверка за съвместимост. Когато PE опцията за проверка за съвместимост, "устройство входно-изходна грешка" възниква, ако двете комуникация програми са две различни паритета. (Съвместимост, може да бъде странно, няма място, или знак). Например "устройство входно-изходна грешка" възниква, когато две програми се опитват да говорите с друг сериен линия с помощта на следните две различни отвори 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), тъй като максималния размер на основни комуникации данни рамка (10 бита).
  4. По подразбиране е СК (двоичен режим). Забележка: Опцията възходящ ред не поддържа XON/XOFF протокол и XON и XOFF знаци се предават без специална обработка.
  5. Игнориране на хардуера договаряне често коригира много проблеми. Така ако вашето приложение изисква договаряне, трябва да опитате да изключите следния хардуер линия проверка:
    CD0 = включва времето за изчакване за носител на данни откриване (DCD) линия
    CS0 = включва времето за изчакване за ясно да изпратите (CTS) линия
    DS0 = включва времето за изчакване за готови данни (DSR) линия
    OP0 = включва времето за изчакване за успешно ОТВАРЯНЕ
  6. Компактдискове потиска откриване на искане за изпращане (RTS).
  7. За проблеми, свързани с буфер опитайте да увеличите предаване и получавате буфер размер над 512 байта по подразбиране:
    TB2048 = размер на буфера за предаване на 2048 байта се увеличава
    RB2048 = размер на буфера за получаване на 2048 байта се увеличава
    По-голям буфер за получаване може да ви помогне да заобиколите основни закъснения поради отчети като боя, която използва процесора усилено.
Допълнителни важни съвети за отстраняване на проблеми са следните:


  1. Трябва да използвате функцията INPUT$(x) във връзка с функцията LOC(n) да получават всички данни от устройство (където "x" е броят на знаците, върната от LOC(n), което е броят на знаците в опашката за влизане, чака да бъде прочетена. "n" е номера на файла, който сте отворили за "COM1:" или "COM2:").


    Избягвайте използването на въвеждане #n декларация за въвеждане от комуникационния порт, защото въвеждане #n чака знак (ASCII 13) знаци за нов.


    Избягвайте използването на командата GET #n за съобщения, защото се #n чака да запълните буфера (и препълване на буфера може да възникне след).


    Също така избягвайте използването на командата PUT #n за съобщения и използвате командата PRINT #n. Например в QuickBasic 4.0b и 4.5, основни компилатор 6.0 и 6.0b и основните PDS 7.0 и 7.1 използване ПОСТАВЕТЕ #n,, x$ синтаксис за изпращане на променлива дължина низ променлива като трети аргумент за пуснати #n декларация изпраща допълнителни 2 байта, съдържащ дължината на низа преди действителното низ. Тези дължина байтове, изпратени на комуникационния порт може да обърка получаване вашата програма, ако тя не е предназначена за работа с тях. Няма байта за дължина се изпращат с поставени #n,, x$ QuickBasic 4.0. (QuickBasic версии по-рано от 4.0 не предлага функцията за използване на променлива като трети аргумент на командата PUT #n.)
  2. Например за пренос на данни вижте терминал. BAS примерни програма, която е на изданието диск за QuickBasic версии 4.0, 4.0b и 4.5, Microsoft Basic компилатор версии 6.0 и 6.0b и за версии на Microsoft основни професионално развитие система (PDS) 7.0 и 7.1. Много проблеми всъщност може да е неправилно източник код дизайн и поток на управление.
  3. Много проблеми могат да се показва само на определени конфигурации на хардуер и са трудни за разрешаване или дублиране на други компютри. Препоръчваме ви експериментират с директна връзка (с кратко нула-кабелен модем) вместо/модем връзка между изпращача и получателя за изолиране на проблеми в дадена конфигурация.
  4. Електрически схеми за кабели се различават значително. Проверете ПИН свързване на кабела. За директни кабелни връзки дълго или висока устойчивост кабел е по-вероятно да проблеми, отколкото къса, ниска устойчивост кабел.
  5. Ако и двете "COM1:" и "COM2:" са отворени, "COM2:" първо ще се обслужват. При високи скорости "COM1:" може да загуби знаци, когато за време на процесора с "COM2:".
  6. Използване на COM GOSUB декларация вместо определя LOC(n) функцията за откриване на съобщения въвеждане Понякога може да заобиколите времето или буферна проблеми, причинени от забавяне в Basic. Забавяне в Basic може да се дължи на низ пространство за събиране на боклука, боя отчети или други операции, които използват силно процесор.
  7. Уверете се, че подходящ хардуер договаряне линии (т.е. CS, DS, CD, и т.н.) се проверяват от Basic. Въпреки че забраняването на тези времена на изчакване (Задаване на стойността в отчета за основните отвори нула) е полезна за определяне на това линии използва вашия хардуер, тя не трябва да се счита универсални метод за създаване на серийни комуникации, тъй като игнорира хардуер договаряне може да се увеличи възможността за времето проблем, който може да доведе до увисване.
Много търговски съобщения програми използват сложни техники не е намерен в Microsoft Basic и може да предостави по-добра производителност.


Ако ви трябва по-добра производителност съобщения, не получавате чрез Basic, можете да изпробвате Microsoft C. (можете да се обадите Microsoft C съчетания от Microsoft QuickBasic 4.0 и 4.5 от Microsoft Basic компилатор 6.0 и 4.0b, 6.0b и версии на Microsoft основни професионално развитие система (PDS) 7.0 и 7.1.) По-долу е отличен източник:
"В програмист ръководство за серийни комуникации" от Джо Кембъл, публикувана от Хауърд у сам и компания.
QuickBasic 3.0, 4.0, 4.0b и 4.5 прилагат съобщения чрез директно прекъсвания IRQ3 и IRQ4 входни линии на чипове 8259 контролер (вместо извикване ROM BIOS прекъсва).


Следните книга дава отлично технически, хардуерно ниво описание на серийни комуникации за IBM PC:
"8088 асемблер език за програмиране: IBM PC" второто издание от Willen & Кранц, публикувана от Хауърд у само & Co (1983, 1984). Страници 92-93 и глава 7 (страници 166-188).
Свойства

ИД на статията: 39342 – Последен преглед: 16.01.2017 г. – Редакция: 1

Обратна връзка