Descrizione messaggio di errore quando si utilizza COM1: e COM2

Dichiarazione di non responsabilità per contenuto KB ritirato

Il contenuto di questo articolo è riferito a prodotti per cui Microsoft non offre più il supporto. Questo articolo viene pertanto offerto "così com'è" e non sarà più aggiornato.

Riepilogo

I seguenti messaggi di errore può essere visualizzato quando si utilizza il "COM1:" o "COM2:" dispositivo:

   Error Message                     Number
------------- ------

File Already OPEN (Error 55)
Bad File Name or Number (Error 52)
Out of Memory (Error 7)
Device Unavailable (Error 68)
Device I/O Error (Error 57)
Communications Buffer Overflow (Error 69)
Device Timeout (Error 24)

In questo articolo fornisce la logica utilizzata per determinare quando visualizzare questi errori durante l'apertura, INPUT, OUTPUT e altre istruzioni quando si utilizza il "COM1:" o "COM2:" dispositivo. Queste informazioni si applicano a Microsoft QuickBasic versioni 4.00, 4.00b e 4.50 e compilatore Microsoft Basic versioni 6.00 e 6.00 b per MS-DOS e MS OS/2. Per un articolo correlato in materia di risoluzione dei problemi di porta di comunicazione comune, cercare le parole seguenti in questo articolo della Knowledge Base:
risolvere e "com1:" e una porta e problemi

Ulteriori informazioni

Apri "COM1:" o aperta "COM2:" istruzione utilizza la seguente logica, in ordine di esecuzione, per controllare gli errori:


  1. Verificare se < numero > è stato aperto in precedenza nel programma. "File già aperto" viene visualizzato se < numero di file > è già aperto.
  2. Analizzare le opzioni utilizzate nella finestra Apri "COM1:" o aperta "COM2:" istruzione. " Visualizza il nome File non valido o il numero"Se si verifica una delle seguenti condizioni:


    1. Velocità in baud non è numerico o più di 65.535
    2. La parità non è N, O, E, M o S
    3. Bit di dati non sono 5, 6, 7, 8
    4. Bit di dati sono 8 e la parità è O, E, M o S
    5. Bit di Stop non sono 1 o 2 (1.5 non è supportato)
    6. Uno dei seguenti argomenti è errato (ordine è significativo per questi; "m" può essere null o un numero compreso tra 0 e 65.535 millisecondi; buffersize "x" può essere fino a 32.767 byte):
      OPm, DSm, CSm, CDm, RBx, TBx, RS, LF, collocazione, ASC
  3. Trasmissione di allocare e buffer di ricezione. Se non viene lasciato sufficiente per i buffer nel segmento di dati predefinito, viene visualizzato "Memoria esaurita".
  4. Inizializzare l'interfaccia di dispositivo.


    1. "Nome File non valido" viene visualizzato quando si utilizza un valore diverso da "COM1:" o "COM2:" o quando si utilizza una velocità di trasmissione non è uguale a 75, 110, 150, 300, 600, 1200, 1800, 2400, 4800, 9600 o 19.200.
    2. Consente di visualizzare "Periferica non disponibile" se l'interfaccia di comunicazione è già in uso o non esiste (in base a 4 byte in 400 esadecimale nella memoria di PC).


      Se nessun errore a questo punto Apri la velocità in baud, la dimensione dei dati, parità e stop bits sono ora impostati. DTR è impostato. RTS viene impostato se non viene specificata l'opzione di RS. Se si utilizza l'opzione di OPn (OPEN timeout), si applica l'articolo c 4 (sotto).
    3. "Errore di periferica i/o" viene visualizzato se si verifica un timeout di OPn aperti dopo un'attesa di DSR (Data Set Ready) o DCD (Data Carrier Detect).


      (Nota: QuickBasic versioni 2.00, 2.01 e utilizzare le opzioni di DSn e CDn per timeout DSR e DCD invece dell'opzione di OPn successiva versioni 4.00, 4.00b e 4.50 3,00.)
Basic compilato utilizza la logica seguente durante l'INPUT da "COM1:" o "COM2:":


  1. Controllare gli errori.


    1. "Overflow del Buffer di comunicazione" viene visualizzato per la ricezione o trasmissione overflow del buffer.
    2. "Errore di periferica i/o" viene visualizzato per una qualsiasi delle seguenti condizioni:
               Condition       Description
      --------- -----------

      break A special line condition where line voltage
      is held "on" (sending 1 bit, which is
      between -25 and -3 volts) over more than 10
      bit-times. (Note that "off" means a 0 bit,
      which is between +3 and +25 volts).

      parity error Can occur if line is noisy, or the wrong baud
      or parity is being used.

      overrun error The character (a 10-bit data frame) was not
      read from the interface hardware in time
      before it was overwritten by the next
      received character.

      framing error The bit to be interpreted as the stop bit was
      not 0. A framing error can occur if the line
      is noisy, if the wrong baud rate is used, or
      if the clock speeds on the communicating PCs
      are mismatched.

    3. "Errore di Timeout di periferica" viene visualizzato se un CTS, DSR, o si verifica il timeout DCD.
  2. Se si è verificato alcun errore, ottenere il carattere successivo dal buffer di ricezione. Se nessuno, quindi ciclo.
Basic compilato utilizza la logica seguente durante l'OUTPUT di "COM1:" o "COM2:":


  1. Controllare gli errori. (Stessi INPUT sopra riportato.)
  2. Verificare se la trasmissione di buffer è pieno. Se è completo, ciclo su 1.
  3. Inserire i caratteri nel buffer.
La funzione LOC(n) effettua le seguenti quando si utilizza "COM1:" o "COM2:":


  1. Controllare gli errori. (Stessi INPUT sopra riportato.)
  2. LOC(n) restituisce il numero di caratteri attualmente nel buffer di ricezione.
La funzione LOF(n) effettua le seguenti quando si utilizza "COM1:" o "COM2:":


  1. Controllare gli errori. (Stessi INPUT sopra riportato.)
  2. LOF(n) restituisce la stanza a sinistra nel buffer di trasmissione in QuickBasic versioni 4.00, 4.00b e compilatore Microsoft Basic versioni 6.00 e 6.00 b e 4.50 per MS-DOS e MS OS/2.


    LOF(n) restituisce la spazio nel buffer di ricezione in QuickBasic versioni 1.02, 1.00, 2.00, 2.01 e 3,00.
Basic utilizza la logica seguente quando si CHIUDE il "COM1:" o "COM2:" dispositivo:


  1. Trasmettere l'output. Se utilizza l'opzione ASC (e non l'opzione collocazione), la trasmissione di un carattere di fine del file (EOF) (CTRL + Z).
  2. Attendere che l'output alla fine o timeout in sospeso.
  3. Ripristinare i vettori di interrupt.
  4. Deallocare la trasmissione e buffer di ricezione dal segmento di dati predefinito di Basic.
  5. Segnalare eventuali errori in sospeso.
Proprietà

ID articolo: 39386 - Ultima revisione: 30 gen 2017 - Revisione: 1

Feedback