Inviare alla porta seriale tramite 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 tramite 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 tramite il controllo mscomm sono le seguenti:

CommPort

La CommPort proprietà specifica il numero di porta delle comunicazioni. 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.

Impostazioni

La Settings proprietà configura la velocità in 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à in 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.

Output

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"

Di seguito sono elencate altre proprietà che possono essere necessarie a seconda dell'applicazione:

CommEvent

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

Sthreshold

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

OutBufferCount

Il controllo OutBufferCount restituisce il numero di caratteri in attesa nel buffer di trasmissione. Deve essere sempre zero se la Sthreshold proprietà è zero. Se si imposta la OutBufferCount proprietà su zero, il buffer di trasmissione verrà cancellato.

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à in baud lente e stringhe di testo di grandi dimensioni scritte sulla porta seriale possono significare che è necessario rendere questo valore più grande.

Di seguito è riportato un esempio che mostra come configurare il controllo comm e comporre il numero di telefono 555-1234 usando i comandi standard di Modem di 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 *****

Nota

Se si usa questa opzione in un'applicazione e quindi si distribuisce l'applicazione usando l'installazione guidata di Visual FoxPro, quando si esegue l'applicazione potrebbe essere visualizzato l'errore seguente:

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