CelikNET: LGPL CLR Interop Wrapper za CelikAPI

Zakačeno
  • 182 odgovora
  • 99.048 pregleda
CelikNET: LGPL CLR Interop Wrapper za CelikAPI 26.11.2010. u 10:53 · pre 193 meseci #1
Eve ga

Q&A:

1. Kako se koristi?
A: Dodati CelikNET u reference, u deployment dodati i CelikAPI jer ga CelikNET referencira.

2. Zasto CelikAPI nije u binaries?
A: Nisam siguran koja mu je licenca pa ga nisam ukljucio, u svakom slucaju imate radnu verziju u source arhivi

3. Zasto LGPL?
A: Cilj mi nije bio da zaradim pare na ovome, proizvod je besplatan samo ne zelim da ga neko prodaje za svoj ceh. LGPL umesto GPL da biste mogli da ga koristite u sopstvenim komercijalnim aplikacijama bez da ste nesto duzni meni ili komuni. Ako me se setite u About boxu za dan Bezbednosti, setite, ako ne to je bila moja gradjanska duznost.

4. User manual?
A: Mnogo hocete Pogledajte celikAPI doc, od mene ovoliko:

Code (csharp):

                using (CelikNET.CelikInterop x = new CelikNET.CelikInterop())
                {
                    CelikNET.FixedPersonalData d1 = x.ReadFixedPersonalData();
                    CelikNET.VariablePersonalData d2 = x.ReadVariablePersonalData();
                    CelikNET.DocumentData d3 = x.ReadDocumentData();
                    Bitmap c = x.ReadProfileImage();
                }
 


5. Sta je sa inicijalizacijom/cleanup-om?
A: Static type konstruktor inicijalizuje API, application cleanup ga cisti (preko destruktora static singletona). Sam CelikInterop koristi Disposable pattern za Begin/End read, tako da je sve transparentno, koristite using(...) {} i uzivajte

6. WPF ne koristi Bitmap image, kako da prikazem sliku
A: Postoji konvertor koji prebacuje GDI Bitmap u WPF BitmapSource, proguglajte

7. Podrska za cirilicu?
A: Tu je, cirilicna polja se vracaju kao unicode cirilica

8. Sta je CelikException?
A: Njega baca CelikNET kad neka od CelikAPI funkcija vrati negativan rezultat. CelikException Ima sledeca vazna polja (primer)
EIDErrorCode -> -1
EIDErrorDescriptionEn -> "General error"
EIDErrorDescriptionSr -> "Opšta greška" // <- cirilicom

9. Multithreading?
A: Sve instance metode su thread safe (serijalizuje se pristup APIu). Medjutim u ovom trenutku isntancijacija nije serijalizovana, ukoliko se uspostavi potreba za ozbiljan multithreading support, dodacemo.

Ova tema je otvorane za priedbe, komentare, sugestije.

UPDATE 2: Ubaceno ime roditelja. Fix za static konstruktor u C++/CLI.

[Ovu poruku je menjao mmix dana 01.12.2010. u 12:25 GMT+1]
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: CelikNET: LGPL CLR Interop Wrapper za CelikAPI 26.11.2010. u 22:47 · pre 193 meseci #2
Čini mi se da si zaboravio ime roditelja, vidim da ga nema u strukturi :)
Taman sam uključio binaries, kad ono nema tog podatka, pa pomislih da ti nije neki stariji build, kad ono, cvrc :)
Potpis
A vi,kako 'te?
Re: CelikNET: LGPL CLR Interop Wrapper za CelikAPI 26.11.2010. u 23:15 · pre 193 meseci #3
yup, fali, updateovacu ujutro
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: CelikNET: LGPL CLR Interop Wrapper za CelikAPI 27.11.2010. u 14:16 · pre 193 meseci #4
Ne bih baš da zvocam, ali ako bi moglo da se builduje za .NET 2.0, ukoliko nije zahtev da je 4.0, a mislim da nije :)
Potpis
A vi,kako 'te?
Re: CelikNET: LGPL CLR Interop Wrapper za CelikAPI 01.12.2010. u 10:55 · pre 193 meseci #5
Ovde ipak nešto nije kako treba...
Program radi samo u Debug modu kada se pokrene iz Visual Studia, i to na XP-u. Na Win7 pročita sve podatke iz nekoliko pokušaja, a nekad se baš zainati, mada verujem da je to do drajvera.


Sa CTRL + F5 pre pojavljivanja forme ispisuje se sledeća greška

Visual Studio Just-In-Time Dubugger:
An unhandled Microsoft .NET Framework exception occured in MojProgram.exe [58136]

.. i nudi mi da debagujem program...

Nakon prihvatanja da debagujem, to je dakle kada je program još uvek pokrenut, vidim da se izbacuje CelikException sa porukom "BeginRead nije izvršen", a to je prilikom kreiranja objekta CelikInterop. Stavio sam to u try-catch, čisto da vidim dokle ću da doguram, i nakon toga mi se forma prikazala. Naravno čitanja nije bilo, i prilikom zatvaranja aplikacije ista greška, samo vezana za EndRead.

Miljane, pošto si rekao da je baratanje sa životnim ciklusom tog objekta slobodno, shvatam da mogu da ga kreiram u konstruktoru neke moje klase tipa LKDataProvider, koja služi da pročita podatke i vrati ih onako kakvi mi trebaju.

Da li je možda do toga kako je DLL buildovan ili šta već (ja sam dodao referencu iz CelikNet - Binaries)
Potpis
A vi,kako 'te?
Re: CelikNET: LGPL CLR Interop Wrapper za CelikAPI 01.12.2010. u 11:12 · pre 193 meseci #6
OK, pronasao sam o cemu se radi. C++ compiler je istripovan u release build-u

http://connect.microsoft.com/V...or-not-called-in-release-build

ubacicu workaround u klasu
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: CelikNET: LGPL CLR Interop Wrapper za CelikAPI 01.12.2010. u 11:26 · pre 193 meseci #7
Ok, skini novu verziju pa probaj, trebalo bi da je resen problem (sad vec radim na slepo jer sam morao da vratim licnu kartu)

Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: CelikNET: LGPL CLR Interop Wrapper za CelikAPI 01.12.2010. u 12:32 · pre 193 meseci #8
Pomenuti problem je rešen.
Sada na XP-u radi bez greške u svim varijantama.
Ako misliš da će i drugima biti od koristi da se builduje za .NET 2.0, postavi tu verziju, ukoliko ne, onda ću instalirati C++, pa ću da buildujem za sebe :)
U svakom slučaju hvala još jednom!
Potpis
A vi,kako 'te?
Re: CelikNET: LGPL CLR Interop Wrapper za CelikAPI 23.01.2011. u 00:57 · pre 191 meseci #9
Pozdrav,
skinuo sam projekat i pokrenuo CelikNET-Source2/CelikNET.sln

Nakon Rebuild Solution i pokretanja (F5) dobijam poruku "Could not load file or assembly 'CelikNET.dll' or one of its dependencies. The specified module could not be found.

Nemam iskustva sa povezivanjem dll-ova pa bi mi pomoc oko ovoga dobro dosla.

Unapred hvala
Re: CelikNET: LGPL CLR Interop Wrapper za CelikAPI 26.01.2011. u 12:31 · pre 191 meseci #10
CelikNET je napravljan u VS2010 i pod .NET 4.0 framework-om, pa pretpostavljam da pokusavas
da ga implementiras u starijim verzijama, sto je neizvodljivo.Resenje je da instaliras VS2010 pa
da razvijas u njemu.Mada ja bas gledam ovih dana nesto temu i napravio sam za mene verziju za
.NET 3.5, ali nisam stigao da je isprobam jer nemam citac pri ruci, pa cu upload-ovati ovde .dll pa
probajte (naravno samo ako se Miljan slaze). 8)
Potpis
"Ne menjaj nesto sto te sasvim dobro sluzi, ne trazi leba preko pogace" - Aleksandar Andrijevic
Re: CelikNET: LGPL CLR Interop Wrapper za CelikAPI 26.01.2011. u 12:57 · pre 191 meseci #11
Okaci slobodno. Sve i da hocu (a necu) ne mogu da ti zabranim. LGPL.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: CelikNET: LGPL CLR Interop Wrapper za CelikAPI 26.01.2011. u 15:13 · pre 191 meseci #12
Evo ga.Imam problema sa atributima, tj. ne pokazuju se kada se referencira
(kada ga otvoris posebno, tu su).Mozda je zbog express verzije c++ ili zato sto
je .NET 3.5, ne bih znao.Probajte pa javite.
Potpis
"Ne menjaj nesto sto te sasvim dobro sluzi, ne trazi leba preko pogace" - Aleksandar Andrijevic
Re: CelikNET: LGPL CLR Interop Wrapper za CelikAPI 28.01.2011. u 07:50 · pre 191 meseci #15
lokal patriotizam i lojalnost prema ESu? :) Videcemo :)
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: CelikNET: LGPL CLR Interop Wrapper za CelikAPI 05.02.2011. u 16:03 · pre 191 meseci #16
aco,

skinuo sam tvoj projekat citac licnih karata.rar i moze da se pokrene (ranije sam imao problem sa dll- om) .
Uspesno procita tekstualne podatke iz gornjeg dela forme ali neuspeva da procita "Ostale podatke " i sliku.

Javlja sledecu poruku: Kod greske= -7 Kartica nije prisutna u citacu

Interesantno, dok sam ovo pisao prebacio sam ocitavanje slike ispred citanja ostalih podataka i sada sve radi odlicno!

'Podaci o ličnoj karti
Dim d1 As CelikNET.DocumentData = x.ReadDocumentData
TextBox1.Text = d1.docRegNo
TextBox2.Text = d1.issuingDate
TextBox3.Text = d1.expiryDate
TextBox4.Text = d1.issuingAuthority

'Lični podaci
Dim d2 As CelikNET.FixedPersonalData = x.ReadFixedPersonalData
TextBox5.Text = d2.personalNumber
TextBox6.Text = d2.givenName
TextBox7.Text = d2.surname
TextBox8.Text = d2.sex
TextBox9.Text = d2.placeOfBirth
TextBox10.Text = d2.stateOfBirth
TextBox11.Text = d2.dateOfBirth
TextBox12.Text = d2.communityOfBirth

'Slika
PictureBox1.Image = x.ReadProfileImage()

'Ostali podaci
Dim d3 As CelikNET.VariablePersonalData = x.ReadVariablePersonalData
TextBox13.Text = d3.state
TextBox14.Text = d3.community
TextBox15.Text = d3.place
TextBox16.Text = d3.street
TextBox17.Text = d3.houseNumber
TextBox18.Text = d3.houseLetter
TextBox19.Text = d3.entrance
TextBox20.Text = d3.floor
TextBox21.Text = d3.apartmentNumber

Imas li ideju zbog cega se ponasa ovako? Kada vratim citanje slike iza Ostalih podataka opet ne radi i javlja istu gresku.

Hvala mmix-u i aci za projekat.
Re: CelikNET: LGPL CLR Interop Wrapper za CelikAPI 11.02.2011. u 12:39 · pre 191 meseci #17
Da li sam ja jedini kome ovaj projekat ne radi ?

Cudno mi je sto mi radi MUP app ali ovaj projekat prijavljuje -1 opstu gresku na

Code:
Dim d1 As CelikNET.DocumentData = x.ReadDocumentData


Da li znate sta moze da bude uzrok tome?
Potpis
Samo ambicija modifikuje gene !!!
Re: CelikNET: LGPL CLR Interop Wrapper za CelikAPI 12.02.2011. u 17:43 · pre 191 meseci #18
Ipak radi..
Nije hteo da mi proradi na poslu, pa mi nije bilo tesko da donesem citac i da probam app kuci. Radi bez problema.

Potpis
Samo ambicija modifikuje gene !!!
Re: CelikNET: LGPL CLR Interop Wrapper za CelikAPI 16.02.2011. u 16:35 · pre 190 meseci #19
Pozdrav svima.

Dobio sam projekat u skolu za diplomski rad da napisem program za citac kartica i da podatke snimim u jednu msql bazu.
Probao sam da napisem svoj prevodic za CelikApi.dll za C# ali nece da radi. Nerazumem jos ovo marshalling mnogo...

A onda nasao sam ovaj wraper i izgleda da to bi mi perfektno odgovarao ali nerazumem neke stvari i te bih hteo da pitam i da dobijem malo pomoc za to ako moze.

Kada hocu da nazovem funkciju da citac procita podatke sa kartice i da to snimi onda treba samo da upisem ovo? :
Code:
using (CelikNET.CelikInterop x = new CelikNET.CelikInterop())
                {
                    CelikNET.FixedPersonalData d1 = x.ReadFixedPersonalData();
                    CelikNET.VariablePersonalData d2 = x.ReadVariablePersonalData();
                    CelikNET.DocumentData d3 = x.ReadDocumentData();
                    Bitmap c = x.ReadProfileImage();
                }


Ne treba nista drugo? Netreba ovaj EidStartup i ostali? To ne razumem. Ovaj mi je prvi put da radim sa wraperom i sa dllima. Noob sam sa ovima jos .
Ne treba da mu dam ime citac kartica da bih znao odakle da cita? Ili to radi automatski?

Izvinite ako ove pitanje izgledaju glupe ali ja to nerazumem.

Pozdrav,
Ronel123
Re: CelikNET: LGPL CLR Interop Wrapper za CelikAPI 16.02.2011. u 21:13 · pre 190 meseci #20
Da, to je sve sto ti treba, inicijalizacija se radi transaprentno u pozadini. Sto se tice odabira citaca trenutna verzija to ne podrzava, uvek radi sa prvim citacem na sistemu.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme