Pagina 1 di 7 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 62
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    87

    [VB] Creare automa riconoscitore

    Ciao a tutti!
    E' la...terza volta che scrivo su questo Forum, spero di NON omettere nulla!
    Ho creato un programma in VB che, collegato ad un lettore di tessere magnetiche, "scarica" i dati salvati nella sua memoria e li deve tradurre in "variabili"; mi spiego meglio.
    Quando viene passata una tessera, questo memorizza:
    - data, ora, numero tessera, senso passaggio (Entrata o Uscita);
    I dati mi vengono restituiti sotto questa forma
    codice:
    D7FFFFFFD9598 <- "connessione"
    CE <- numero tessere (2)
    24FFFFFFD8FFFFFFD99 <- "connessione"
    1000025BA314D2F1C141414140FFFFFFE5FFFFFFE2 <- 1ª tessera
    1000025BA314D2F1D141414140FFFFFFE5FFFFFFE2 <- 2ª tessera
    9691 <- CRC (o qualcosa di simile!)
    D7 <- chiusura "connessione"
    Vorrei creare un automa in grado di capire quando accettare i dati, e come accettarli. La cosa "difficile" è che oltre a questi dati, il lettore presuppone altri 3 comandi (connessione, richiesta dati ^questo^, cancellazione memoria, reset) e tutti hanno un'apertura di frame differente da quella qui indicata come "connessione".

    Riuscite a darmi una mano?!
    GRAZIE!!!

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466

    Moderazione

    A quale versione di VB ti riferisci?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    87
    Già, scusate! Parlo di VB6.
    Cmq penso che non conti molto: è la struttura del ciclo che a me interessa. Se me la proponete in C, la trasformo io!
    Il più è capire come leggere "lettera dopo lettera" il codice ed interpretarlo nella maniera corretta!

    Grazie ancora!

  4. #4
    Ciao..secondo me devi essere più preciso: ti interessa sapere come si estrae un carattere alla volta (coma emerge dall'ultimo tuo post) oppure vuoi sapere a cosa corrisponde quello che hai postato?
    Nel senso che vuoi sapere tra quei dati qual'è l'ora, il numero di tessera e il senso?
    Forse se mi fai un esempio più chiaro capisco meglio.....ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    87
    Azz...!!!
    No, so benissimo come estrarre un carattere alla volta da una stringa!!
    Allora: il mio lettore di tessere magnetiche, una volta contattato, mi restituisce sulla porta COM uan serie di caratteri Hex che io converto in decimali uno a uno.
    Ora, il mio problema è costruire un automa in grado di, preso un carattere alla volta, capire cosa farsene o come trattarlo, visto che, a seconda delle interrogazioni che gli pongo, mi ritorna informazioni ogni volta differenti...

    Spero di essermi chiarito!
    Grazie!!!

  6. #6
    Allora avevo capito bene (la seconda volta), te vuoi distinguere le varie stringhe..
    Non avendo a disposizione nè il prodotto (lettore magnetico) nè il libretto delle istruzioni (o il cd..) allora ti posso dire come farei io:

    1) passa una carta magnetica di cui conosci il numero
    2) ricordati l'ora del passaggio (ora, minuti, secondi) e poi metti indietro l'orologio del computer a quella ora (ammesso che l'ora non sia elaborata nel lettore..)
    3) passa nuovamente la tessera (entrambe le volte o uscita o entrata)

    Rifai lo stesso per due volte, 1 volta con uscita (stesso orario), 1 volta con un numero di tessera diverso....

    Mi sa che non sono stato chiaro, ma forse hai intuito cosa ho pensato di fare....poi posta tutte le stringhe (dicendo che tipo di tentativo hai fatto).....ciao...

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    87
    Azz!!! No, quello l'ho già fatto!
    Diciamo che ho già capito come sono strutturate.
    Ora andiamo a leggere, supponiamo la sequenza che ho postato, che viene fornita CARATTERE x CARATTERE: io NON so e NON posso sapere in aticipo quale carattere mi verrà fornito.. O meglio: il mio automa sa che i primi caratteri saranno, supponiamo sempre dalla stringa, "D7FFFFFFD9598" dopodichè? dovrà accettare qualsiasi dato in ingresso.
    So ad esempio che i dati di passaggio di una tessera vengono forniti nella forma
    codice:
    10000 XXXXXXXXXXXXXXXXXXXXX FFFFFFE5FFFFFFE2
    con 10000 e la serie di FF..E2 rappresentanti "inizio e fine tessera".
    La parte "cancellata" dalle X NON è di lunghezza costante, poichè dipende dal valore degli anni (1: 1990 - 10: 2005 [hex]), o dal numero della tessera ed altri...
    Pensavo di fare una cosa tipo:
    codice:
    if (ch=?)
      if (ch+1=?)
        if (ch+2=?)
          ...
        elseif (ch+2=?)
            ...
        else
          ...
      else (ch+1=?)
        ...
    else (ch=?)
      ...
    endif
    Che dite?
    Grazie della pazienza!!!

  8. #8
    Ciao..se mi spieghi il sistema di codifica (come hai fatto con 10000 e la serie di FFFF..) ti posso dire se il metodo da te suggerito va bene..
    Mi sbaglio o te vuoi analizzare carattere per carattere la stringa compresa tra 10000 e la serie di f?

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    87
    La stringa
    codice:
    1000025BA314D2F1C141414140FFFFFFE5FFFFFFE2
    rappresenta il passaggio di una tessera e deve essere trasformata in decimale (e fin qui nulla di difficile!). Ottengo così questa stringa:
    codice:
    10 00
    02 5B <- numero tessera in hex, 02 (2) e 5B (91) -> 291
    A <- anno (10) parte dal 1995
    3 <- mese
    14 <- giorno
    D <- ore (13)
    [se l'ora è maggiore di 18 allora lo stato è Uscita altrimenti Entrata]
    2F <- minuti (47)
    1C <- secondi
    
    141414140 FFFFFFE5FFFFFF E2
    Sinceramente NON so come procedere nel codice, ed intanto ti ringrazio!
    Grazie ancora!

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    87
    Preciso che quanto mi giunge NON è solo questo, ma il codice è un po' più lungo, sempre a seconda delle richieste!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.