Esistono standard per la gestione dei tergicristalli nelle applicazioni?

2

Sono nel mezzo della creazione di un'applicazione web per un cliente, e lui vuole che io integri i tergicristalli magnetici, in modo che il personale dell'ufficio possa scorrere rapidamente una carta e caricare i dettagli per specifici pazienti (a ciascun paziente viene assegnato un numero univoco corrispondente a una carta unica).

Nel mio software, gestire la stringa in ingresso è abbastanza semplice, poiché lo swiper della scheda simula i tasti per ogni carattere nell'ID sulla carta.

Tuttavia, ho incontrato alcune stranezze. Utilizziamo due diversi tipi di tergicristalli e ho scoperto che uno swiper di una carta genera una stringa che inizia con " + ", mentre l'altro swiper genera una stringa che inizia con " ; ". I numeri effettivi sulla carta (il numero identificativo che viene dopo " + " o " ; ") sono gli stessi per ogni tipo di swiper.

Naturalmente posso aggiungere al mio codice e rilevare sia per " + " sia per " ; ". Tuttavia, sono preoccupato che se introduciamo ancora un'altra marca o modello di swiper delle carte, potrebbe generare qualcosa di completamente diverso. Oppure, se decidono di utilizzare una marca diversa di carte, potrei ottenere qualcosa di diverso ancora.

Non voglio dover continuare ad applicare patch al mio codice per gestire tutte queste differenze, se possibile. Esiste una sorta di documentazione che definisce gli standard per tutti i tergicristalli e le carte magnetiche? Sto cercando qualcosa che possa dirmi qualcosa del tipo:

  1. Tutte le carte iniziano con uno di questi: ['$', '+', ';']
  2. Seguito da una stringa di lunghezza variabile di caratteri alfanumerici
  3. Finire con uno di questi: ['?', '*', '^']

Ecco alcune considerazioni aggiuntive:

  1. Si tratta di semplici carte magnetiche, che contengono semplicemente una stringa di caratteri (utilizzate come identificatori per la ricerca rapida). Non stiamo scorrendo le carte di credito o qualcosa del genere.
  2. Questa è un'applicazione web distribuita, che verrà utilizzata in tutti gli Stati Uniti. E non ho il controllo su quale marca di scheda o swiper utilizza ogni ufficio.
  3. A causa dei requisiti aziendali, sto utilizzando il riconoscimento di pattern basato sull'evento keypress . Non sto guardando la stringa generata all'interno di una casella di testo.
posta Matt Spinks 17.05.2018 - 20:27
fonte

1 risposta

3

Non proprio, no. Almeno, non al di fuori del fatto che ci sono tre tracce da leggere e ognuna ha un numero massimo di byte che possono contenere.

Sebbene esistano standard seguiti, dipende in larga misura dall'industria / dal realizzatore. Ad esempio, le patenti di guida sono codificate in base alle specifiche pubblicate da AAMVA. Ad esempio:

The following data is stored on track 1:[16]

  • Start Sentinel - one character (generally '%')
  • State or Province - two characters
  • City - variable length (seems to max out at 13 characters)
  • Field Separator - one character (generally '^') (absent if city reaches max length)
  • Last Name - variable length
  • Field Separator - one character (generally '$')
  • First Name - variable length
  • Field Separator - one character (generally '$')
  • Middle Name - variable length
  • Field Separator - one character (generally '^')
  • Home Address (house number and street) - variable length
  • Field Separator - one character (generally '^')
  • Unknown - variable length
  • End Sentinel - one character (generally '?')

Notare che i vari caratteri di delimitazione non sono specificati. Sì, il carattere iniziale è solitamente '%', ma non sempre! Devi solo sapere che il primo byte è un delimitatore.

Il modo in cui sono stato in grado di aggirare questo è ignorare il personaggio stesso. Solo conoscere il primo carattere è un delimitatore significa che posso ignorarlo e leggere i prossimi due caratteri per l'abbreviazione dello stato.

In altri casi, non è così secco e tagliente (vedi il campo città sopra). È qui che devi determinare il tipo di carta e, in base al tipo di carta, utilizzare una diversa strategia di analisi. Il modello di strategia è utile qui.

Ulteriori letture:

risposta data 17.05.2018 - 21:37
fonte

Leggi altre domande sui tag