Newsgroup: it.comp.appl.access
Titolo: Gestire l'input da più tastierini numerici contemporaneamente

Salve a tutti!
Ho la necessità di gestire l'input da più tastierini numerici esterni 
USB contemporaneamente, collegati ad un singolo PC che esegua 
l'applicazione Access.
Intendo, in questo modo, poter utilizzare un singolo PC come "server" di 
varie postazioni a tastierino numerico collegate tramite hub USB allo 
stesso PC. I problemi che si pongono sono principalmente due:
1 - Come riconoscere l'input del tastierino A rispetto a quello B e così 
via, di modo che i dati possano essere poi inseriti nel db in modo 
"personalizzato".
2 - Come far sì che Access stia in "ascolto continuo" di modo che non ci 
sia la necessità di gestire l'input da maschere o da tabelle, ma di 
catturare l'input dai tastierini e inserirlo in modo trasparente 
all'utente nella tabella che conterrà i dati.
Grazie a tutti in anticipo!
Marco

 Marco
-- 
-- 
Ciao
Pablitomf (Maurizio Facciuti)
-----------------------------------------------------------------
Access: 97, 2000, XP e 2003
ASP
-----------------------------------------------------------------
http://www.accessgroup.it/
-----------------------------------------------------------------
Il mio motto :
""Non mi fido molto delle statistiche, perchè un uomo con la testa nel forno
acceso e i piedi nel congelatore statisticamente ha una temperatura media." 

 
pensavo... a una routine che scavalca gli automatismi di winzozz e legge 
direttamente i segnali in ingresso sulle usb, come si fa(ceva) con le 
seriali, che gira in continuazione e memorizza i dati in arrivo
-- 
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\

 seriali, che gira in continuazione e memorizza i dati in arrivo
Aspè... calmo calmo... la seriale prende i dati 1 dietro a un altro (in 
serie), ma se tu conti che si sta parlando di "n" tastierini USB, credo 
vivamente che la cosa sia al quanto diversa... la consecutività dei dati la 
seriale te la restituisce per natura, mentre la sovrapposizione di segnali 
di tastierini in parallelo, non credo sia così semplice da serializzare... 
poi bhò... magari mi sbaglio...
e poi, GIRARE in continuazione che vor' dì? temporizzarla? a quanto, a 
10?... mhà... staresti sostituendo un sistema client quale access con uno 
server tipo VB... troppo sporca come soluzione secondo me visto che 
occuperebbe molte risorse di sistema...
Ma ti ripeto, magari mi sbaglio e hai ragione tu.


 
in linguaggio terra-terra:
while (tasto esc se ne sta buonino)
for i=1 to numerousb
get dati su #i
append dati a qualcosa-i
elabora dati qualcosa-i
next i
wend


 wend
Il concetto acquisizione, qualora interpretato quello di trasmissione, non 
lo discuto.
Ma è proprio quello della trasmissione dei tastierini in serie che non è 
chiaro...
immaginati una scrittura contemporanea di tastierini... come si 
comporterebbe il sistema? salta inserimenti?
Bho


Ammammata ha scritto:

Anche io pensavo ad interrogare direttamente l'hub, e poiché in qualche 
modo il SO riesce effettivamente a "sapere" da che porta dell'hub arriva 
il segnale e a quale porta instradarlo in caso di output (vedi 
stampante), allora pensavo di leggere direttamente in modo ciclico la 
porta, e di seguito il segnale in entrata che (vado ad intuito) dovrebbe 
essere incapsulato in una intestazione che riporti anche l'ID del 
tastierino o della porta dell'hub da cui proviene.
Due o tremila anni informatici fa, era abbastanza facile interrogare la 
seriale, catturare l'input e poi ripulirselo e gestirselo a piacimento, 
ma oggi non saprei da dove cominciare...
Fattibile, quindi? Lo chiedo a voi! ;-)

Fattibile, quindi? Lo chiedo a voi! ;-)
Probabilmente sě, ma a quale prezzo ?
Vincenzo Turturro
Certificato Eucip Core Level
ITA 0000-002299 del 14/05/2007
---------------------------------------------
il sito comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------
risorse Access:
http://www.accessgroup.it
---------------------------------------------
Il sito comune di it.comp.as400
http://www.faq400.com
---------------------------------------------

 dispositivi !
Per l'appunto quel che dicevo io.
il rapporto 1 a 1 è un conto, ma 1 a n è un altro... il lato 1 diverrebbe un 
convogliatore di segnali che non potrebbero + essere diversificati in 
ingresso...


 
Il prezzo č quello di dover programmare ad un livello piů basso di VBA 
ma il guadagno č quello di poter usare tastierini da 18 euro (30 se con 
display LCD) invece di portatili da 500, o di palmari da 200.
La domanda adesso č: con quale funzione VB o VBA posso accedere ad USB?

 La domanda adesso è: con quale funzione VB o VBA posso accedere ad USB?
Aspé; fermiamoci un attimo.
Ammesso che riesci a capire quale porta/tastiera sta inviando i dati su 
quale record/controllo li faresti scrivere?
Facciamo un esempio concreto; una form in visualizzazione foglio dati. Il 
cursore è posizionato sulla prima casella di testo, parte la prima raffica 
di dati dalla tastiera1(T1) ma non termina l'inserimento e inizia anche la 
T2. Come fai a riconoscere i dati di T1 e T2? Dove li scrivi?
Ciao.
-- 
Sergio MAZZA 

 T2. Come fai a riconoscere i dati di T1 e T2? Dove li scrivi?
Magari... già serebbe un passo avanti... lui non vuole (a quanto scrive) 
interfacce... vuole far solo origliare Access in Background...
Ma cmq è quello che sostengo dall'inizio anche io... secondo me è impresa 
ardua, e qualora si riesca a gestire, secondo me perde dati per strada...
--
Pablitomf 

Sergio MAZZA ha scritto:

La mia intenzione sarebbe quella di mettere una routine di Access in 
ciclo continuo (fino alla pressione di un tasto predefinito, tipo ESC) e 
farle continuamente interrogare le porte USB per catturare l'input. I 
dati così prelevati, proprio perché so da dove sono stati prelevati, 
possono essere accorpati, eventualmente formattati correttamente e 
append-ati ad una tabella con relative informazioni (data, ora, ID 
tastierino, dato inserito).
Inoltre, so di tastierini esterni che hanno anche il display LCD, e che 
possono funzionare da calcolatrice. In questo caso, vorrei testare la 
possibilità che il flusso dei dati sia inviato a blocchi, magari alla 
pressione del tasto Enter del tastierino. In questo modo, se digito la 
cifra 123, non dovrò catturare 1, poi 2, poi 3, poi enter, ma 
direttamente 123.
Il problema grosso resta quello di "leggere" le porte USB... ma mi 
stanno venendo grossi dubbi perché dando una scorsa alla Knowledge Base 
di VB mi pare di aver capito che non esiste (!!!) una libreria per la 
lettura delle porte USB, ma solo per le Seriali...

 farle continuamente interrogare le porte USB per catturare l'input.
sembra quasi la mia idea... ;)
potresti verificare se le porte USB hanno una sorta di cache/queue in 
Windows dove depositano i dati in attesa che vengano elaborati
forse č possibile disabilitare gli 'automatismi' di windows e fare in modo 
che tali dati restino nella coda di lavorazione finchč qualcuno li elabora 
(o si riempie lo spazio a disposizione); si dovrebbe anche verificare se la 
coda č LIFO o FIFO (penso la seconda opzione, č piů ovvia)
hai pensato di interpellare il produttore dei tastierini, magari hanno 
sviluppato qualcosa per gli utenti (o per uso interno...)


 
lo ho letto da qualche parte: il dato viaggia insieme a un identificatore 
della connessione/porta/dispositivo/altro: se le informazioni sono 
semplicemente accodate vanno gestite a blocchi (ognuno con il proprio 
'tracciato' record etc etc): un lavoraccio infame ;)
