Condividi tramite


Inviare alla porta seriale utilizzando Mscomm32.ocx

Questo articolo illustra come inviare informazioni alla porta seriale usando il controllo Mscomm32.ocx.

Versione originale del prodotto: Visual FoxPro
Numero KB originale: 139526

Riepilogo

Questo articolo descrive le impostazioni necessarie per inviare dati alla porta seriale usando Mscomm32.ocx. Mscomm32.ocx viene fornito con Microsoft Visual FoxPro Professional Edition. Può essere usato nei computer che eseguono Microsoft Windows 95 e versioni successive di Windows.

Ulteriori informazioni

Le proprietà usate più di frequente per inviare dati alla porta seriale usando il controllo mscomm sono le seguenti:

CommPort

La CommPort proprietà specifica il numero di porta di comunicazione. Proprietà numerica che corrisponde alla porta Comm. Per impostazione predefinita, questa proprietà è impostata su 1 corrispondente a com1. I valori validi sono 1, 2, 3 o 4 a seconda delle porte seriali installate nel computer e della relativa configurazione.

Impostazione

La Settings proprietà configura la velocità baud, la parità, i bit di dati e i bit di arresto per la porta seriale. La proprietà Settings è una stringa di caratteri che contiene singoli valori delimitati da virgole. Per impostazione predefinita, la proprietà Settings è la seguente: 9600,N,8,1 Questa proprietà corrisponde a 9600 baud, nessuna parità, 8 bit di dati e 1 bit di arresto.

I valori di velocità baud seguenti sono validi: 110, 300, 600, 1200, 2400, 4800, 9600 (impostazione predefinita), 14400, 19200, 28800, 38400, 56000, 57600, 115200, 128000, 256000.

PortOpen

La PortOpen proprietà specifica un valore logico che controlla se la porta seriale è aperta e attiva. Dopo aver impostato le proprietà precedenti per iniziare a usare la porta seriale, è possibile impostare questa proprietà su true.

Risultato

Alla proprietà Output viene assegnata la stringa di caratteri da inviare alla porta seriale. Per restituire la stringa "Hello World" alla porta seriale dopo l'impostazione delle proprietà precedenti, usare il comando seguente:

 myform.mycomm.output = "Hello World"

Altre proprietà che possono essere necessarie anche a seconda dell'applicazione sono le seguenti:

CommEvent

La CommEvent proprietà contiene un valore che rappresenta l'evento o gli errori di comunicazione più recenti.

Soglia S

La Sthreshold proprietà specifica il numero minimo di caratteri nel buffer di output inviato.

OutBufferCount

Il controllo OutBufferCount restituisce il numero di caratteri in attesa nel buffer di trasmissione. Deve essere sempre zero se la Sthreshold proprietà è zero. L'impostazione della OutBufferCount proprietà su zero cancella il buffer di trasmissione.

OutBufferSize

La OutBufferSize proprietà specifica le dimensioni del buffer di trasmissione. Per impostazione predefinita, questo buffer è di 512 byte. Maggiore è il buffer di trasmissione, minore è la memoria disponibile per altre applicazioni. Velocità di baud lente e stringhe di testo di grandi dimensioni scritte nella porta seriale possono significare che è necessario aumentare questo valore.

Di seguito è riportato un esempio che mostra come configurare il controllo di comunicazione e comporre il numero di telefono 555-1234 usando i comandi standard del modem Hayes.

 PUBLIC ComForm
 ComForm = CREATEOBJECT('Form')
 ComForm.AddObject("Testcom","Olecontrol","MSCOMMLib.MSComm")
 ComForm.Testcom.CommPort = 2 && Use Comm2, The second Serial Port.
 ComForm.Testcom.Settings = "14400,N,8,1" && 14.4 Kbaud, No Parity,
 && 8 data Bits, 1 Stop Bit
 ComForm.Testcom.PortOpen = .T.
 ComForm.Testcom.Output = "ATDT555-1234" + chr(13) && Dialing the number
 * The chr(13) is needed to complete the modem command sequence
 ComForm.Testcom.PortOpen = .F.
 ***** End Code *****

Annotazioni

Se si usa questa opzione in un'applicazione e quindi si distribuisce l'applicazione tramite l'installazione guidata di Visual FoxPro, è possibile che venga visualizzato l'errore seguente quando si esegue l'applicazione:

Errore del programma Codice di errore OLE 0x80040112: licenza appropriata per questa classe non trovata.