View Full Version : [C] smart card
RaouL_BennetH
04-10-2004, 12:23
Salve ragazzi :)
Avevo intenzione di acquistare questo prodotto:
http://www.icintracom.biz/prodotto.asp?pid=1592&catid=105
E volevo sapere, prima dell'acquisto, se sia difficile programmare una smart card in modo che mi gestisca l'orario di entrata e di uscita di una persona. Sulla rete ho trovato numerosi prodotti, ed anche dove lavoro io c'è un marcatempo installato, solo che, ne servirebbe uno 'artigianale' per l'aziendina di mio padre, dove non ci sono troppi soldini da spendere in tecnologia :(
In particolare, dato che sto studiando il C, volevo semplicemente sapere se fosse possibile fare quanto segue, e, in caso positivo, sappiate indicarmi qualche link o darmi qualche dritta:
Vorrei fare in modo che quando viene inserita la card, si digiti un codice che, se valido, memorizzi l'ingresso sia sulla card che su un file nel PC. Ho provato ad abbozzare qualcosa solo in 'locale', nel senso di simulare l'inserimento di un codice da computer, compreso tra un intervallo di valori e, sebbene non sia il massimo della programmazione, per ora è più che sufficiente. Sarebbe possibile applicare questo discorso in modo alquanto semplice sul lettore smart card e sulla card stessa?
Thx.
RaouL.
maxnaldo
04-10-2004, 15:18
se il problema è più che altro economico io ti consiglierei prima di acquistare un lettore di SmartCard di verificare le tipologie di carte che possono essere "gestite" da quel lettore.
di carte ne esistono tanti tipi ognuna con caratteristiche differenti e anche prezzi differenti.
comunque di solito per il controllo "Badge" degli accessi in entrata e uscita del "personale" si utilizzano carte a Banda Magnetica, non a microchip, in quanto non c'è alcuna necessità di "scrivere" dati sulla carta durante il controllo.
in pratica il lettore badge legge la banda magnetica acquisendo così il codice della persona. Poi i dati vengono registrati da un pc in un database che gestirà gli orari.
una carta a microchip è in realtà più complessa e si usa quando si vogliono memorizzare dati sul chip. Per esempio molti supermercati e negozi che offrono dei "punti" premio le usano proprio per memorizzarci i punti acquisiti ad ogni pagamento.
in parole povere le carte a banda magnetica costano molto meno e sono più che sufficienti per una applicazione di controllo del personale.
(le carte vengono scritte solo la prima volta quando vengono "inizializzate" e poi il codice è associato alla persona nel Database dell'applicazione.)
RaouL_BennetH
04-10-2004, 15:40
Originariamente inviato da maxnaldo
se il problema è più che altro economico io ti consiglierei prima di acquistare un lettore di SmartCard di verificare le tipologie di carte che possono essere "gestite" da quel lettore.
di carte ne esistono tanti tipi ognuna con caratteristiche differenti e anche prezzi differenti.
comunque di solito per il controllo "Badge" degli accessi in entrata e uscita del "personale" si utilizzano carte a Banda Magnetica, non a microchip, in quanto non c'è alcuna necessità di "scrivere" dati sulla carta durante il controllo.
in pratica il lettore badge legge la banda magnetica acquisendo così il codice della persona. Poi i dati vengono registrati da un pc in un database che gestirà gli orari.
una carta a microchip è in realtà più complessa e si usa quando si vogliono memorizzare dati sul chip. Per esempio molti supermercati e negozi che offrono dei "punti" premio le usano proprio per memorizzarci i punti acquisiti ad ogni pagamento.
in parole povere le carte a banda magnetica costano molto meno e sono più che sufficienti per una applicazione di controllo del personale.
(le carte vengono scritte solo la prima volta quando vengono "inizializzate" e poi il codice è associato alla persona nel Database dell'applicazione.)
Prima di tutto, grazie infinite per la risposta :)
In effetti, la problematica per la smart card adesso mi è più chiara e forse, come mi hai suggerito, per una cosa così sarebbe davvero superflua. Hai consigli o qualche link da darmi per iniziare? Io ne ho trovati alcuni con google ovviamente, ma qualche altro link, suggerimento, dritta in più, confesso che mi farebbe molto comodo.
Thx.
RaouL.
RaouL_BennetH
06-10-2004, 23:34
up :)
RaouL_BennetH
08-10-2004, 00:48
uppettino notturno :p
maxnaldo
08-10-2004, 10:14
dunque, qui puoi vedere una tipologia di vendita per le tessere a banda bagnetica: http://www.cdperfect.com/catalog/product_info.php?cPath=26&products_id=50
come vedi una tessera a banda magnetica costa meno di 1 euro...
però bisogna considerare alcuni punti:
- Esistono tanti tipi di lettori a banda magnetica, alcuni sono predisposti anche per il controllo del personale, con orologi e funzioni di "timbratura" già predisposte. Altri sono semplici lettori della banda magnetica, molto economici.
- Un lettore di SmartCards a microchip funziona sia in lettura che in scrittura mentre per i lettori a banda magnetica non è così. Una periferica che deve scrivere la banda magnetica di una tessera deve essere "forzatamente" motorizzata. Nel senso che mentre per la lettura si può usare la "mano" per strisciare la carta, nella scrittura c'è bisogno di precisione assoluta che viene dunque fatta da macchinari appositi che trascinano la carta o la testina a velocità costante. Naturalmente esistono diversi tipi di questi "macchinari" per la scrittura badges ma non sono molto economici vista la loro complessità (la maggior parte sono anche stampanti a colori per la stampa grafica della tessera)
- Le SmartCards sono più facili da gestire ma costano di più (si va nell'ordine di 4/5 euro a tessera per le più economiche fino ad arrivare a 20 e passa euro per quelle qualitativamente migliori
dunque in conclusione vedi tu :D
se ad esempio devi gestire 50 tessere dovrai spendere
Banda Magnetica
- 50 euro per le tessere
- 50 euro per un semplice lettore
- avrai bisogno di qualcuno che scriva le carte e quindi dovrai affidarti a qualche azienda specializzata nella produzione di tessere badges, oppure spendere qualche centinaia di euro per una stampante in grado di magnetizzare le tessere.
SmartCards
- 250 Euro per le carte a microchip (come minimo)
- 20/30 Euro per un lettore/scrittore del microchip
come vedi i vantaggi del Badge a banda magnetica sono la sua economicità , ma questa diventa svantaggiosa se devi gestire poche tessere rispetto alle SC.
Le smartcards sono appunto più vantaggiose quando devi gestire poche tessere.
considera comunque che una piccola applicazione di controllo accessi personale può essere fatta anche in altri modi. Ad esempio si possono anche stampare semplici tessere plastificate con un codice a barre (stampabile da qualunque stampante). Le tessere plastificate costano quanto quelle a banda magnetica ma per leggerle ti basterà una apposita "Penna ottica" e per produrle una semplice stampante.
Nel caso del codice a barre la sicurezza è quella che è, nel senso che è facilmente copiabile e "duplicabile".
:D :D :D
disumano
08-10-2004, 12:13
inoltre il codice a barre viene letto dal lettore che restituisce al so una semplice stringa di testo (lavora in emulazione di tastiera), quindi il programma lo puoi scrivere nel linguaggio che preferisci e non dovrai scrivere codice apposito per l'interfaccia lettore-applicazione.
cmq tornando alle smart card, io in passato ho scritto dei programmini che leggevano e scrivevano su smart card, ma utilizzai a tale scopo un controllo activeX fornito in versione demo dal produttore del letttore.
trovai a suo tempo anche altre interfacce smart card (anche visual studio incorpora un sdk per smart card), ma trovai alcune difficoltà a scrivere le funzioni e le procedure che mi servivano...
se decidessi di usare le smart card, quindi, io baderei + al supporto software del produttore che non magari ad altri fattori.
RaouL_BennetH
08-10-2004, 13:10
Prima di tutto, grazie mille per le risposte e l'interessamento :)
Credo che mi orienterò sulle smart-card perchè ne dovrò gestire appunto pochissime :p
Ma, forse mi sono espresso male all'inizio :(
A prescindere da quello che acquisterò, dove potrei trovare qualche guida su come programmare io in C un sistemino del genere?
Trattandosi di una cosa da fare artigianalmente per l'aziendina di mio padre, dove non ci sono molti fondi da investire in tecnologie purtroppo, sarebbe molto complicato?
In rete ho trovato programmi completi compresi di lettore/scrittore, ma, ovviamente costa più il software già fatto che non le apparecchiature e, purtroppo, quei fondi non li abbiamo da investire. Quindi, se qualcuno di voi potesse postarmi anche qualche link oltre a quelli che già sto scovando (con difficoltà perchè vedo che non è un tipo di programmazione molto diffusa) davvero gliene sarei grato all'infinito :ave:
In sostanza, vorrei riuscire a fare una cosuccia del genere:
Dotarmi di una scheda
Associare a questa scheda un codice
Fare in modo che su questa scheda venga registrato l'orario di ingresso e di uscita
Prelevare i dati da questa scheda.
Al momento, riesco a fare una simulazione molto grossolana sul pc, su un file di testo.
Thx a lot, and more :D
RaouL.
maxnaldo
08-10-2004, 14:08
Fare in modo che su questa scheda venga registrato l'orario di ingresso e di uscita
ok, allora vuoi mantenere un Log anche nel chip della carta, non sarebbe necessario ma si può fare, ti complichi però la vita così.
io ho sviluppato per parecchi anni nel settore della Monetica, ho gestito macchine che producono le varie tipologie di carte e i vari sistemi che le fanno funzionare: http://curriculumax.altervista.org/
posso dirti che di solito si usa il C per leggere e scrivere queste carte, ciò non toglie che tu possa anche farne a meno e usare linguaggi tipo il VB (ti basta gestire la porta seriale a cui è connesso il lettore e il gioco è fatto).
Si tratterà di scrivere delle funzioni di lettura e scrittura sulla porta seriale, dialogando con il lettore stesso e il chip della carta.
il lettore dovrà avere il suo manuale con le specifiche per tutti i comandi da usarsi.
stessa cosa per il chip della smartcard, dovrà esserci anche lì un bel manualone con tutti i comandi supportati dalla carta.
quindi una volta che hai testato e provato le varie funzionalità della carta puoi passare a generare un software di "Produzione" delle carte stesse, si baserà probabilmente su un database del personale.
poi il resto è solo una applicazione "gestionale" che gira sul PC, la puoi fare in VB o come ti pare e piace. Presumo che ogni persona che entra o esce dovrà inserire la sua carta nel lettore che è sempre connesso ad un PC sul quale gira il programma di controllo entrate/uscite.
:D :D :D
non è difficile, basta avere un po' di pazienza ed imparare per benino le varie funzionalità del chip e del lettore, il resto è una semplice gestione DB.
RaouL_BennetH
08-10-2004, 14:18
Originariamente inviato da maxnaldo
ok, allora vuoi mantenere un Log anche nel chip della carta, non sarebbe necessario ma si può fare, ti complichi però la vita così.
io ho sviluppato per parecchi anni nel settore della Monetica, ho gestito macchine che producono le varie tipologie di carte e i vari sistemi che le fanno funzionare: http://curriculumax.altervista.org/
:ave:
posso dirti che di solito si usa il C per leggere e scrivere queste carte, ciò non toglie che tu possa anche farne a meno e usare linguaggi tipo il VB (ti basta gestire la porta seriale a cui è connesso il lettore e il gioco è fatto).
In effetti, dato che sto studiando il C, mi interesserebbe proprio usare questo linguaggio, il visual basic mi affascina, ma mi serve qualcosa di più portabile (eppoi già imparare un linguaggio per me è na faticaccia, figuriamoci due :D )
Si tratterà di scrivere delle funzioni di lettura e scrittura sulla porta seriale, dialogando con il lettore stesso e il chip della carta.
Ecco, a tal proposito, mi sapresti consigliare qualche link, libro o qualsiasi cosa?
il lettore dovrà avere il suo manuale con le specifiche per tutti i comandi da usarsi.
stessa cosa per il chip della smartcard, dovrà esserci anche lì un bel manualone con tutti i comandi supportati dalla carta.
quindi una volta che hai testato e provato le varie funzionalità della carta puoi passare a generare un software di "Produzione" delle carte stesse, si baserà probabilmente su un database del personale.
poi il resto è solo una applicazione "gestionale" che gira sul PC, la puoi fare in VB o come ti pare e piace. Presumo che ogni persona che entra o esce dovrà inserire la sua carta nel lettore che è sempre connesso ad un PC sul quale gira il programma di controllo entrate/uscite.
:D :D :D
non è difficile, basta avere un po' di pazienza ed imparare per benino le varie funzionalità del chip e del lettore, il resto è una semplice gestione DB.
Ci proverò, ma intanto, davvero grazie infinite!!!!! :ave:
RaouL_BennetH
12-10-2004, 22:03
up :(
RaouL_BennetH
16-10-2004, 23:04
un uppettino :)
RaouL_BennetH
22-10-2004, 23:22
uppi :)
RaouL_BennetH
01-11-2004, 11:37
Ragazzi, mi date una manina?
Anche link o qualsiasi info, perchè (ma probabilmente non cerco bene) sulla rete ho trovato ben poco :(
Thx.
RaouL.
maxithron
01-11-2004, 18:53
Ciao. Guarda che la cosa non è proprio così "maccheronica", dato che richiede una buona base di conoscenza di programmazione. Se mi autorizzi a mandarti una mail, dandomela in pvt, posso suggerirti qualcosa che si basa su un progetto da me fatto proprio nel settore della rilevazione degli accessi che riguarda sia le smart-card sia le impronte digitali. Ti avviso però che, a meno che tu non acquisti qualcosa di già pronto, non è di semplice realizzazione. Oppure, se non hai particolare fretta o urgenza, tra qualche mese pubblicherò i sorgenti del lavoro svolto, così potrai studiarteli con calma.
ringhio.net
03-11-2004, 13:58
non è difficile programmare una smart, acquista il lettore scr330 o il lettore scr335, è facilissimo programmare con questi lettori, le smart card sono le sle442.
se hai bisogno vai sul sito shop.internavigare.it.
maxithron
03-11-2004, 15:43
Originariamente inviato da ringhio.net
non è difficile programmare una smart, acquista il lettore scr330 o il lettore scr335, è facilissimo programmare con questi lettori, le smart card sono le sle442.
se hai bisogno vai sul sito shop.internavigare.it.
programmarla per un lettore/scrittore attaccato comodamente via usb ad un pc infatti non richiede nessuno sforzo particolare se non un pò di lettura di qualche semplice guida. Costruirsi un apparecchietto stand-alone che memorizzi su se stesso i dati, e non solo sulla smart è un pochetto più impegnativo :P ma non tanto poi. Credo che l'autore del 3d volesse realizzare qualcosa del genere. Io l'ho fatto e seguo tutt'ora un progetto del genere (ma per un ramo leggermente più vasto) che come dicevo comprende sia la smart-card che un rilevatore di impronte digitali (tutti apparecchietti che già esistono sul mercato) solo ho dovuto per una particolare commessa costruire un apparecchio ad hoc con un sft leggermente più complesso. Comunque, se non c'è una particolare fretta fra qualche mese renderò disponibile il sorgente, semprechè sia di un qualche interesse per qualcuno :)
ringhio.net
04-11-2004, 08:17
avevo capito roma per toma.
aspetto cmq il sorgente... non si sa mai!:)
RaouL_BennetH
22-11-2004, 11:36
Allora, riprendo questo post:
Ho acquistato un lettore seriale di badge, dato che i badge sono per me molto più semplici da gestire. Questo lettore lavora sia da solo che collegato al pc tramite porta seriale. Ha una piccola eprom che gli permette di memorizzare fino a 20 strisciate, che, per il momento, per lo scopo sono più che sufficienti. Il problema che ho è questo:
Non riesco a portare su un file, il risultato della strisciata e del tempo in cui viene eseguita. Cioè, passo il badge numero 123456789, il badge lo riconosce e lo accetta, ma non riesco a scrivere il numero del badge e "l'istante" in cui viene passato nel lettore. Mi dareste un aiuto?
Thx.
RaouL.
RaouL_BennetH
23-11-2004, 15:27
mi uppo un pochetto e aggiungo:
Ma tramite hyper terminal, come si inviano comandi sulla porta seriale?
E' una cosa che devo fare tramite prompt del dos?
Oppure, in quale altro modo si inviano e ricevono dati dalla porta seriale?
Plz, a little help :(
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.