[ Leopold13 @ 12.01.2013. 18:25 ] @
Pozdrav dobri ljudi

Potrebna mi je mala pomoc... Hteo bih da sam napravim program za citanje podataka sa cipovane licne karte i da te podatke insertujem u bazu (MUP-ov CELIK mi ne radi radnju), ali ne znam odakle da pocnem. Da li se neko vec zanimao ovom tematikom? Verujem da neko jeste, pa bih molio za pomoc... Programski jezik koji bih koristio je C#, a baza bi bila SQL Server 2008.

Hvala unapred svima na odgovorima
[ Dusan Kondic @ 13.01.2013. 07:12 ] @
Skini sa MUP-ovog sajta CelikApi.dll i CelikNET.dll i referenciraj ih u svom projektu.
Osnovni kod je sledeći:
Code:

            using (CelikNET.CelikInterop x = new CelikNET.CelikInterop())
            {
                image1.Source = loadBitmap(x.ReadProfileImage());
                CelikNET.FixedPersonalData d1 = new CelikNET.FixedPersonalData();
                d1 = x.ReadFixedPersonalData();
                CelikNET.VariablePersonalData d2 = new CelikNET.VariablePersonalData();
                d2 = x.ReadVariablePersonalData();
                CelikNET.DocumentData d3 = new CelikNET.DocumentData();
                d3 = x.ReadDocumentData();

                lblIme.Content = d1.givenName;
                lblPrezime.Content = d1.surname;
                lblJMBG.Content = d1.personalNumber;
                lblDatumRodjenja.Content = d1.dateOfBirth;
                lblMestoRodjenja.Content = d1.placeOfBirth;
                lblOpstinaRodjenja.Content = d1.communityOfBirth;
                lblDrzavaRodjenja.Content = d1.stateOfBirth;
                lblImeRoditelja.Content = d1.parentGivenName;
                lblPol.Content = d1.sex;
                lblBrojStana.Content = d2.apartmentNumber;
                lblOpstina.Content = d2.community;
                lblUlaz.Content = d2.entrance;
                lblSprat.Content = d2.floor;
                lblSlovoKuce.Content = d2.houseLetter;
                lblBrojKuce.Content = d2.houseNumber;
                lblMesto.Content = d2.place;
                lblDrzava.Content = d2.state;
                lblUlica.Content = d2.street;
                lblRegBrDokumenta.Content = d3.docRegNo;
                lblDatumIsteka.Content = d3.expiryDate;
                lblDokumentIzdao.Content = d3.issuingAuthority;
                lblDatumIzdavanja.Content = d3.issuingDate;
            }

Kod je iz WPF-a ali mislim da je sve jasno. image1 je kontrola za smeštanje fotografije, lblIme i ostale lbl kontrole su labele a kod tebe mogu da budu parametri procedure ili nešto slično.
Pošto sam imao problema sa iščitavanjem, te delove koda sam izveo na sledeći način:
Code:

                while (procitao == false && BrPokusajaD1 < 10)
                {
                    try
                    {
                        greska = false;
                        d1 = x.ReadFixedPersonalData();
                    }
                    catch
                    {
                        BrPokusajaD1++;
                        greska = true;
                    }
                    if (!greska) { procitao = true; }
                }

Po statistici, uspešno iščitavanje je iz drugog - trećeg puta.
Pozdrav
[ mmix @ 13.01.2013. 11:02 ] @
Izbacili su celikNET?
[ Dusan Kondic @ 13.01.2013. 15:57 ] @
Nisu. Skoro da sam zaboravio da si ti Miljane (mmix) wrap-ovao njihov dll i napravio CelikNET.dll. Ja ti se ovom prilikom zahvaljujem zbog toga. Hvala.
Fajl može da se skine ovde
Pozdrav

[Ovu poruku je menjao Shadowed dana 13.01.2013. u 19:07 GMT+1]
[ mmix @ 13.01.2013. 16:22 ] @
a, ok ja vec pomislio da su napravili svoj
[ Leopold13 @ 14.01.2013. 08:06 ] @
Kao prvo hvala na brzim odgovorima


Napredujemo, ali imam mali problem, ne mogu da dodam referencu CelikApi.dll (poruka je: Please make sure that the file is accessible, and that it is a valid assembly or COM component). Koristim .NET 4.0 framework (ako ima uopste veze sa problemom).

Drugo, u koji event treba da smestim deo koda koji sledi (Load, button event ili nesto trece)?

using (CelikNET.CelikInterop x = new CelikNET.CelikInterop())
{
image1.Source = loadBitmap(x.ReadProfileImage());
CelikNET.FixedPersonalData d1 = new CelikNET.FixedPersonalData();
.
.
.
[ del-boy @ 14.01.2013. 08:21 ] @
Ne treba da dodaješ referencu na CelikApi.dll nego na CelikNET.dll, a CelikApi.dll treba samo da ti bude u istom folderu u output-u kao i CelikNET.dll.
[ Dusan Kondic @ 14.01.2013. 08:24 ] @
Target framework moje aplikacije je takođe .NET Framework 4 tako da to nije problem. Pokušaj da promeniš Platform target na x86. S tim sam imao problema. Iščitaj postove na linku koji sam ti poslao, ima veze i gde se nalaze dll fajlovi.
Kod možeš da staviš u koji god event handler želiš ali nekako mi je logično da postoji neki button na koji ćeš da klikćeš kada god izvadiš jednu i staviš drugu ličnu kartu.
[ Leopold13 @ 14.01.2013. 08:29 ] @
Citat:
del-boy:
Ne treba da dodaješ referencu na CelikApi.dll nego na CelikNET.dll, a CelikApi.dll treba samo da ti bude u istom folderu u output-u kao i CelikNET.dll.


Provalio sam i sam, ali hvala u svakom slucaju...
[ Leopold13 @ 15.01.2013. 06:53 ] @
Elem, imam jos jedno pitanje...

Da li je moguce da kada pokrenem aplikaciju i nakon toga ubacim licnu kartu u citac da automatski popunim polja tj. koji dogadjaj treba da uhvatim (ako je uopste izvodljivo) da bih ovo izveo? Sve ostalo mi radi OK (ucitavanje na klik dugmeta, snimanje u bazu i praznjenje polja), ali prethodno opisani scenario kopka malo...

Hvala unapred