Newsgroup: it.comp.lang.vo-clipper
Titolo: Lettura porta parallela

Ciao a tutti.
Ho un problema da risolvere ma non so come fare.
Con un programmino scritto in Clipper 5.01 devo creare una routine che
stia in ascolto sulla porta parallela.
A questa porta parallela sono collegati, tramite bipolare telefonico,
massimo 8 sensori (1 per ogni bit ricevuto).
Logicamente gli 8 bit costituiranno il numero binario che dovrò andare
ad elaborare.
Esiste una funzione o un comando che riesca a leggere queste
informazioni dalla porta??
Grazie e ciao.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

informazioni dalla porta??
Ho fatto una ricerca sulle mie librerie, ma non ho trovato nulla.
Il problema è che normalmente noi inviamo dati alla porta parallela.
I pochi casi in cui la interroghiamo è quando vogliamo sapere se la
stampante è in linea, o rilevare qualche codice di errore specifico;
ma in questo caso usiamo funzioni già pronte, quasi sicuramente
scritte in C.
Quindi una prima possibilità di ricerca è su queste funzioni scritte
in C....
Ma se devi fare tutto tu, con il Clipper, mi sembra difficile:
in pratica il tuo PC è visto dai sensori come se fosse una stampante a
cui inviare dati....
Parlando così, forse a vanvera, c'è la possibilità di interporre tra
PC e sensori un dispositivo che, ricevuti i dati, li trasmette via
seriale al PC?, oppure li registra sotto forma di file, accessibile in
qualche modo dal PC? 
Spiacente, ma è tutto quel che mi viene in mente.
ciao

Usando le Funcky libraries ho pilotato una schedina la quale accendeva e
spegneva 8 lucette.
Tale schedina era attaccata al PC tramite la porta parallela.
Un mio collega voleva pilotare un Mixer tramite PC e funzionava in modo
egregio il tutto.
La schedina serviva come test per me, lucette o cursori erano
concettualmente la stessa cosa.
La schedina poi l'ho regalata a un mio nipote genialoide(che ora č un mostro
in informatica) con sorgente e tutto gią contattato per riavere una copia
del sorgente, ma credo che il tutto sia nella sua casa di campagna con
vecchio PC portatile etc.
Se hai pazienza di aspettare te lo spedisco non appena passo da quelle
parti.
Credo comunque che ti possa essere utile sapere solamente questo:
FUNZIONE CHE SCRIVE
See also:  inp()  peek()  poke()  bin2num()  hex2dec()
  Name:     outp() - output a value to a port
  Usage:    outp(<port>,<val>)
  Params:   integer <port> - the port to output to. Can also be
            specified as a hexadecimal string
            integer <val> - the value to be output to the specified
            port, in the range 0 - 255
  Returns:  nothing
Example
                 outp("03DA",or(inp("03DA"),bin2num("00100000")))
                 * read in the value from port 03DAh and or
                 * it with 00100000 to turn bit 5 on
FUNZIONE CHE LEGGE
 See also:  outp()  peek()  poke()  peekstr()
  Name:     inp() - input from a port
  Usage:    <integer> = inp(<port>)
  Params:   integer <port> - the port number to read from. You can
            also specify the port value as a hexadecimal string
  Returns:  an integer equal to the value read in from the port
Example
                 * passing the port as an integer:
                 mportval = inp(2)
                 * inputs data from port #2
                 *passing the port as a hex string:
                 mportval = inp("03dA")
                 * inputs data from port 03DAh
Ti garantisco che funziona egregiamente, l'unica cosa che mi viene da
pensare, hai la certezza assoluta riguardo l'apparecchiatura che immette i
dati nel PC?
Mi spiego meglio: "non vorrei che tu facessi mille prove e poi vieni a
sapere che i dati non arrivano"
Ciao

Grazie.
Ho provato a fare la cosa che mi hai detto.
Diciamo che la prova è andata abbastanza bene.
L'unico problema è che oltre al bipolare telefonico dovrò 
sicuramente usare l'amplificatore di dati per la porta parallela.
Comunque se hai novità fammi sapere, gentilmente.
Di nuovo grazie e ciao.
