Unterstützung nativer Bibliotheken von 3.x

Hallo zusammen,

ich nutze die PC/SC Library von EmJay zum Lesen meines Smardcard Readers.

Unter 3.4 wurde sie noch erfolgreich geladen:

26.01.2016 10:48:36.205 |     0 | MESSAGE | ModuleLoader         | Lade Native-Bibliotheken
26.01.2016 10:48:36.413 |     0 | MESSAGE | PC/SC Library        | Register Version 3.1.0
26.01.2016 10:48:36.444 |     0 | MESSAGE | ModuleLoader         | #Geladenen PCSC_Generic
26.01.2016 10:48:36.460 |     0 | MESSAGE | ModuleLoader         | #Geladenen PCSC_ACR122
26.01.2016 10:48:36.491 |     0 | MESSAGE | ModuleLoader         | #Geladenen PCSC_SCL011

Unter 4.0 fehlt sie jedoch. Werden native Bibliotheken nicht mehr länger unterstützt oder habe ich da etwas übersehen?

Viele Grüße

Burkhard

Werden native Bibliotheken nicht mehr länger unterstützt oder habe ich da etwas übersehen?

Zur Zeit beiten wir keinerlei SDK für die 4.0er Version an. Zumal, sofern wir ein anbieten würden, dies in C++ sein würde (vorher Delphi) und somit höchstwahrscheinlich alle die Module neu entwickeln müssten.

paresy

Oh je, das hört sich nicht gut an. Auf den Smartcardleser wollen die Familie und ich nicht verzichten.[emoji20]
Gibt es sonst Ideen, wie man einen SCR einbinden kann?

Gruß

Burkhard

Darf ich fragen, was du mit den SmartCards anstellst? Ließt du von ihnen nur eine ID aus „aka Türöffnung“ oder speicherst du auf ihnen bestimmte Werte? Challenge Response, Keys, etc. genutzt?

Was wird am Ende mit ihnen ausgelöst bzw. was beeinflusst mögliche Schreibvorgänge?

Im 1. Schritt zwar keine Hilfe für dein Problem, aber oft fällt einem was ein, wenn man im Kontext sucht.

Ich lese die Id, um dann die Tür zu öffnen. Ein Schreiben ist nicht gefordert[emoji1]
Hättest du eine Idee?

Erster Ansatz: Kartenlesen außerhalb von IP-Symcon und dann an IP-Symcon weiterleiten. Direktes Einbauen wird deutlich schwieriger.

Dann benötigst du eine Software vielleicht dieses??? Smart Card Digging Utilities | Literatecode

Hier vielleicht auch Hilfreich zum Einlesen ins SmartCard Thema Homepage of Wolfgang Rankl - Chipkarten-Anwendungen

Alternativ, vielleicht rückt ja der Autor des derzeitigen Symcon Plugins einen Teil (alles) seines Quellcodes heraus und es kann jemand neu kompilieren als externe Software, die über IP Sockets mit IPS kommuniziert. Bzw. er baut es selbst um.

Ja, an den Ansatz habe auch schon gedacht. Das würde dann wohl ein größeres Projekt. Ich würde es in Java versuchen und dann IPS „informieren“. Schöner wäre es vermutlich aber wohl mit einem IPS SDK umzusetzen.

Eine andere Idee: ob man auf dem selben Rechner wohl parallel eine IPS 3.4 Instanz laufen lassen könnte? Das wäre vielleicht ein einfacher Weg…

Leider bin ich mit dem Projekt noch nicht sehr weit gekommen. Der Aufwand und die Komplexität über die Java smartcardio Klasse auf das Gerät zuzugreifen ist höher als vermutet. Zwar kann ich inzwischen die RFID auslesen, aber das Schreiben auf das Gerät, um z.B. eine LED zu aktivieren, gelingt mir noch nicht.

Kurzum: ich würde nun eher versuchen, den zweiten Weg zu gehen:

Kann mir jemand sagen, ob es technisch möglich und lizenzrechtlich erlaubt ist? Ich würde die 3.4 Instanz ausschließlich mit dem Smardcard Modul laufen lassen wollen und die Werte dann zwischen den Version über json austauschen.

Später, so hoffe ich, wird es mal ein SDK für 4.x geben und das Modul könnte umgestellt werden.

Viele Grüße

Burkhard

Lizenzrechtlich sollte es kein Problem sein. Technisch würde ich das zweite IPS aber in eine VM verfrachten.

paresy

Kannst du das noch näher begründen? Ich würde lieber ohne eine VM und dem damit verbundenen Pflege- und Ressourcenbedarf auskommen.

Gruß

Burkhard

Du müsstest dir per Hand einen weiteren Dienst erstellen. Du müsstest sicherstellen, dass ggf. der WebServer auf einem anderen Port läuft. Der Port 3777 ist doppelt belegt, somit ist zwangsweise nur ein IPS darüber erreichbar.

paresy

Ok. Das sollte ich hoffentlich hinbekommen. Ich werde den Weg mal probieren.

Gruß

Burkhard

An dieser Stelle hänge ich leider momentan noch.

Ich habe 4.0 unter c:\IP-Symcon und 3.4 unter c:\IP-Symcon_3.4 installiert. So weit gut und 4.0 startet auch erfolgreich.

Da der Service „IPSServer“ kein zweites mal unter dem gleichen Namen installiert werden kann, habe ich den 3.4er Service als Administrator unter einem anderen Namen manuell installiert:

sc create IPSServer3.4 binPath= c:\IP-Symcon_3.4\ips.exe

Die Installation war ebenfalls erfolgreich, so dass nun zwei Services installiert sind.

Will ich aber den 3.4 Service starten mit:

sc start IPSService3.4

so bleibt er im Startmodus hängen. Ein Logfile wird nicht angelegt. Das Verhalten ist unabhängig davon, ob der 4.0er Service gestartet ist oder nicht.

Hast du noch einen Tipp?

Gruß

Burkhard

Push :slight_smile:
Hat noch jemand eine Idee?

Gruß

Burkhard

Start mal IP-Symcon 3.4 mit dem Parameter /noservice. Dann hast es zwar erstmal nicht als Dienst, aber es müsste laufen.

paresy

Danke! So geht es. Ich habe nun mein Haupt-IPS unter 4.0 laufen und starte eine 3.4er Version (mit eingebundenem Modul) als Prozess in der Startphase. Den Datenaustausch führe ich wie in der Doku beschrieben über JSON durch.

Funktioniert gut. :loveips:

Hoffe aber weiterhin auf ein SDK für 4.x :slight_smile:

Gruß

Burkhard