Sviluppo4d.it
Sito indipendente di informazioni tecniche per sviluppatori 4th Dimension italiani  

Sviluppatori 4D

Utility 4D

Risorse 4D



4d logo
Naviga: Prev Next

Titolo: Comunicazione via porta seriale

Categoria: Codice Ultimo Aggiornamento: 20/04/05


Le comunicazioni attraverso le porte seriali tipo RS 232, RS 422 o RS 485 sia in trasmissione che in ricezione possono essere gestite dallo stesso metodo. Eccone un esempio.
Utilizzaremo le seguenti variabili:

<>Port è la porta da usare per la trasmissione/ricezione.

<>Param sono le impostazioni della porta seriale (velocità, data bit, etc.).

<>In_Out: controlla l'esecuzione del While.

<>vTransmit è la stringa da trasmettere.

<>tPages è un array testo per gestire ricezioni maggiori di 30.000 caratteri.

Ecco il metodo:

C_TEXT($vRecept)
C_TEXT($ReadMem)

ARRAY TEXT(<>tPages;1)
<>PageNumber:=1

SET CHANNEL(<>Port;<>Param)
SET TIMEOUT(<>Time_Out)
<>In_Out:=True

While (<>In_Out)
      RECEIVE BUFFER($vRecept)

      Case of
           : ($vRecept#"")  ` dati ricevuti
           $ReadMem:=$ReadMem+$vRecept
           <>ReadVar:=<>ReadVar+$vRecept
           <>LongVarRead:=Length(<>ReadVar)

           If (Length($ReadMem)>30000)
           <>tPages{<>PageNumber}:=$ReadMem
           $ReadMem:=""
           <>ReadVar:=""
           <>PageNumber:=<>PageNumber+1
           CALL PROCESS(1)
           INSERT ELEMENT(<>tPages;Size of array(<>tPages)+1)
           End if

           CALL PROCESS(-1)

           : (<>vTransmit#"")  ` trasmissione dati
           BEEP
           SEND PACKET(<>vTransmit+Char(13))
           <>vTransmit:=""
           CALL PROCESS(-1)

      End case

      DELAY PROCESS(Current process;30)
End while

SET CHANNEL(11)


In caso di alti flussi di dati potrebbe essere necessario ridurre il tempo di pausa inserito nella riga:

DELAY PROCESS(Current process;30)



Inviato da: PierPaolo Sichera Visite: 12979

Se accedi con utente e password, puoi aggiungere dei commenti.


Accesso

User:
Pass: Accedi

Cerca

Se non trovi le informazioni che cerchi scrivi a aiuto@sviluppo4d.it

4D Principali

4D Discussioni

Faq random


Crediti

Dominio registrato da ZetaNet
Sito realizzato da Nexus srl
4D SQL 11.9.0 offerto da 4D & Italsoftware
Icone di FAMFAMFAM
Moderato da Umberto Migliore
318 utenti registrati

Pagina servita il 09/10/24 alle 22:19:04 Valid HTML 4.01! Valid CSS!

Mutuo Facile, iDigitalScout, iDigitalTags e altre app di Nexid srl per iPhone e iPad

Cidroid, distributore italiano lettori barcode per IOS Apple iPhone, iPod, iPad