Il mio problema più grosso è la gestione degli accessi, con la lettura del
badge.
Esiste già il lettore che sblocca il tornello se l'utente ha pagato
l'abbonamento o ha acquistato un corso.
E va beh.
Ma non ho mai lavorato con l'acquisizione, immagino su seriale, di un
lettore di badge.
Come arrivano i dati normalmente al PC? Quale è il metodo migliore poi di
gestire questi dati ricevendoli da fuori?
So che è come l'input da tastiera in una maschera collegata ad una tabella,
però ecco, mi manca un po' di base.
Consigli?
Dove trovare un po' di documentazione in merito?
Grazie
Antonio
P.S.
Ho in mente di far sostituire il lettore di badge con una tastierina per
inserimento di pin (evita la dimenticanza del badge).
Cosa cambia? Dove cercare per questo acquisto?
io per comunicare con i registratori di cassa ho preso spunto da qui
http://support.microsoft.com/kb/639415
credo sia la stessa cosa per il tuo caso...si tratta di inviare dati
alla seriale e di leggere le risposte e viceversa...
ovviamente nel manuale del badge dovresti avere la sintassi delle
stringhe da inviare e ricevere
ciao
BFS
qui trovi pure un mdb di test
http://www.riolab.org/attachments/140_rs232.zip
ciao
BFS
Mi sto guardando queste cose, però una cosa mi sfugge:
come si fa a far interfacciare continuamente il software in access con il
lettore seriale?
Come scrive l'accesso in tabella, per poi lanciare le funzioni di controllo
accessi e eventuamente tutte quelle che interagiscono con le lezioni
prenotate e cose di questo tipo, insomma codice per modificare i dati in
tabella?
Antonio
http://msdn.microsoft.com/it-it/library/7ya7y41k%28VS.80%29.aspx
Nello specifico :
http://www.it-lang-vb.net/Documentazione/Articoli/MSCOMM.htm
tu mandi stringe e il lettore ti restituisce stringe....devi essere tu a
interpretare la stringa di risposta...elaborarla e popolare le tue
tabelle. Ovviamente serve il manuale tecnico del lettore
ciao
BFS
>
> http://msdn.microsoft.com/it-it/library/7ya7y41k%28VS.80%29.aspx
Minkia ... Interessante !
Come fai a trovare le cose cosi' facilmente in internet ?
Ma spiegami : gli devo fare un ciclo infinito sulla porta, no ?
Del tipo :
do while true
if arrivata_stringa_nuova( ... ) then
s = leggi_stringa( ... )
segnala_come_letta( ... )
gestisci_stringa(s, ...)
endif
loop
Ultima domanda :
come faccio a sapere quale porta e' ?
Io non credo che lui abbia chiesto ciò... io credo che lui chieda come
fare a "ricevere" informazioni senza inviarne... es. la scheda passa
nel lettore, è il lettore che invia alla seriale del PC e non il
contrario... lui chiede come fare non ad interpretare ciò che riceve,
ma come fa a metter su un sistema vba che "ascolti" ciò che passa
sulla seriale (senza aver chiesto nulla alla seriale)...
Così?
http://lmgtfy.com/?q=VB+inviare+stringhe+porte+seriali
> Ma spiegami : gli devo fare un ciclo infinito sulla porta, no ?
> Del tipo :
>
> do while true
> if arrivata_stringa_nuova( ... ) then
> s = leggi_stringa( ... )
> segnala_come_letta( ... )
> gestisci_stringa(s, ...)
> endif
> loop
Mai affrontato come problematica quindi non ti saprei dire con
certezza, ma non credo che un ciclo infinito sia la risposta... un
"ascoltatore" tipo DataArrival del Winsok sarebbe l'ideale...
> Ultima domanda :
> come faccio a sapere quale porta e' ?
glielo dici tu :
My.Computer.Ports.OpenSerialPort("COM1")
o scegli :
Sub GetSerialPortNames()
' Vedi tutte le porte COM attive
For Each sp As String In My.Computer.Ports.SerialPortNames
Msgobox(sp)
Next
End Sub
> Mai affrontato come problematica quindi non ti saprei dire con
> certezza, ma non credo che un ciclo infinito sia la risposta... un
> "ascoltatore" tipo DataArrival del Winsok sarebbe l'ideale...
Non ci capisco niente, francamente.
Cioe' voglio dire :
dovrei
a)
installare l' ascoltatore
b)
Referenziarlo caricando la libreria nel progetto
c)
e poi interfacciarlo dall' applicazione
... Na parola ! :-(
> glielo dici tu :
> My.Computer.Ports.OpenSerialPort("COM1")
Cos' il "My" ? Un oggetto intrinseco o lo devo referenziare
aggiungendo una libreria al progetto ?
> o scegli :
> Sub GetSerialPortNames()
> ' Vedi tutte le porte COM attive
> For Each sp As String In My.Computer.Ports.SerialPortNames
> Msgobox(sp)
> Next
> End Sub
Grandioso.
Ti stai dimenticando una cosa... questo è VB... devi adattarlo...
...
Facciamo che ti riporto la FAQ 8.2 di Karl che ha trattato
l'argomento...
Problema
Nella tua applicazione di Access, vuoi comunicare con la porta seriale
(RS232), cioè leggere e/o scrivere dati.
Soluzione
Un modo facile per comunicare con la porta seriale è dato dal
controllo ActiveX gratuito di Richard Grier:
http://home.comcast.net/~hardandsoftware/xmcomm.htm
MS fornisce l' MSComm32.ocx che, p. e., si ottiene con VB6.
Esso funziona con Access, però ti è consentito utilizzarlo solo se hai
la licenza di VB. Documentazioni:
http://www.it-lang-vb.net/Documentazione/Articoli/MSCOMM.htm
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/comm98/html/vbobjcomm.asp
(inglese)
A parte questo, devi utilizzare codice API complesso per comunicare
con l'interfaccia:
http://support.microsoft.com/?scid=kb;it;639415
Azz ... Ne sai una piu' del diavolo.
Grazie ! Faro' tesoro di questo 3D.
credevo fosse tipo il classico timbratore presenze...quando ho bisogno
di scaricare i dati devo mandargli un comando...bhe cmq cambia
poco...anzi si semplifica..basta lasciare la porta sempre aperta in
ascolto...presumo che ogni stringa che arriva avrà un terminatore per
capire quando ha finito di trasmettere
ciao
BFS
Si ma il problema, ripeto, non è l'invio, ma proprio l'ascolto...in
access non c'è un oggetto nativo che "origlia"... devi creare o loop
infiniti di ascolto, o dare in pasto l'ascolto a uno strumento esterno
(winsock?) con il suo DataArival...
certo... ma come detto, credo che la domanda sia rivolta più che altro
a "come far capire ad Access" che il file di sti attrezzi è stato
generato (nel senso di "quando" interrogare l'attrezzo)..
Stando all'utilizzo che lui a quanto pare vuol farne, mi immagino un
tizio che entra in palestra e con il suo badge striscia... l'aggeggio
in questo caso produce una stinga che invia alla seriale... è a questo
punto che deve intervenire Access è "ascoltare" la stringa inviata...
per cui 2 son le cose, o Access sta sempre in ascolto (il che la dice
lunga sulle complicazioni a riguardo), o ci si appoggia a un oggetto
esterno che ascolta per lui, "accenndo" access quando deve.
E che sara' mai. Qui l'uso dei timer(s) e' frequente come le smentite di
berlusconi. Comunque al tempo, parecchio fa e non con access ma fa lo
stesso, leggevo quel famoso file quando mi serviva (i.e. quando l'utente
faceva qualcosa che richiedeva i dati aggiornati) tempo di attesa
ridicolo non mi perdevo mai nulla e potevo fare anche "recovery"
(situazione da non sottovalutare) quando necessario. Lasciavo fare al
software proprietario, in genere fornito insieme all'hardware, quello
che sapeva fare benissimo mentre io mi occupavo della parte gestionale.
Se dovessi fare un software di gestione del pezzo di ferro non lo farei
certamente in access.
--
ac
Appunto... roba esterna. ;)
Alessà, hai msn?... volevo chiederti una cosa... il mio è :
pablitomf....(at)....hotmail...(poit)...it
> acquisito
La tua mail?
si che č la mia mail... con i dovuti accorgimenti, ma č la mia...
Ritorno sull'argomento, temporaneamente accantonato ma mo me tocca.
Allora, mi sta bene che devo studiare il manuale del tornello per vedere
come sputa stringhe.
Cmq leggera un badge che da un codice e la stringa dirà con qualche sua
sintassi
è passato Ciccio, che devo fa?
A quel punto io devo testare sta stringa, consultare il database per vedere
se Ciccio può passare e così via.
Come faccio a stare sempre in ascolto sulla seriale?
Due problemi distinti in realtà:
1) come sto sempre in attesa?
2) come faccio a leggere la seriale?
1) se uso access l'unico modo che vedo possibile è una maschera nascosta con
timer a 1 secondo che lancia la lettura della seriale
ci sono altre possibilità?
2) come la leggo sta seriale? ocx, winsock, un bordello... non mi fa paura
studiarmi un po' la cosa, ma c'è un riferimento preciso su cui buttarsi?
Grazie
Antonio
Prova a dare uno sguardo qua :
http://translate.googleusercontent.com/translate_c?hl=it&langpair=en|it&u=http://www.thescarms.com/vbasic/commio.aspx&rurl=translate.google.it&twu=1&usg=ALkJrhi7TJk3tZp8zgfOwHCrIZhsjEvhkw