Seite 7 von 9

Re: HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Verfasst: 19.06.2020, 13:49
von mcbo
Update:

Ich habe das HB-UNI-Sen-RFID-RC Device in der CCU jetzt umbenannt
und den AskSinAnalyzer neu gestartet.

Jetzt wird das Device geslistet. :o


Gruß

Marcel

Re: HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Verfasst: 25.06.2020, 23:02
von mcbo
Hallo @all,

ich hätte da noch eine Frage :wink:

Code: Alles auswählen

// define all device properties
const struct DeviceInfo PROGMEM devinfo = {
  {0xf3, 0x3c, 0x00},     // Device ID
  "JPRFID0001",           // Device Serial
  {0xf3, 0x3c},           // Device Model
  0x10,                   // Firmware Version
  as::DeviceType::Remote, // Device Type
  {0x00, 0x00}            // Info Bytes
};
An dieser Stelle, bzw. im Bootloader wird die Device ID
und die Device Serial hinterlegt und in den Flash Speicher geschrieben.

Ich würde diese Daten gerne auf dem OLED Display ausgeben.
Wie komme ich an die Daten im Flashspeicher, und kann sie z.B. auf der Serial Konsole ausgeben?
Die Daten stehen ja leider nicht in einer Variable. :roll:

Gruß

Marcel

Re: HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Verfasst: 26.06.2020, 07:01
von jp112sdl
Serielle Konsole:
DDEVINFO(sdev);

Beispiel für LCD Display:
https://github.com/jp112sdl/HB-UNI-Sen- ... 0.ino#L258

Re: HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Verfasst: 26.06.2020, 07:07
von FrankenKai
Hallo schaue Dir mal die C (++) syntax zu "struct" an.
Dann wirst du feststellen das es sich um eine Variable handelt (die im diesen fall consant ist).
Zugriff
deine_variable=devinfo."element";

Gruß
Kai

Re: HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Verfasst: 26.06.2020, 11:38
von mcbo
Danke, werde das mal testen.


Gruß

Marcel

Re: HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Verfasst: 26.06.2020, 12:35
von papa
mcbo hat geschrieben:
25.06.2020, 23:02
An dieser Stelle, bzw. im Bootloader wird die Device ID
und die Device Serial hinterlegt und in den Flash Speicher geschrieben.

Ich würde diese Daten gerne auf dem OLED Display ausgeben.
Wie komme ich an die Daten im Flashspeicher, und kann sie z.B. auf der Serial Konsole ausgeben?
Die Daten stehen ja leider nicht in einer Variable. :roll:
Nutze bitte Device::getSerial() bzw. Device::getDeviceID() - dann hast Du auch die wirklich verwendeten Daten.

Re: HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Verfasst: 26.06.2020, 14:45
von jp112sdl
papa hat geschrieben:
26.06.2020, 12:35
Nutze bitte Device::getSerial()
https://github.com/jp112sdl/HB-Dis-EP-4 ... W.ino#L826
papa hat geschrieben:
26.06.2020, 12:35
Device::getDeviceID()
https://github.com/jp112sdl/HB-UNI-Sen- ... #L265-L268

Evtl. noch als Hilfe dazu

Re: HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Verfasst: 16.07.2020, 00:27
von mcbo
Hi,

Mein Projekt "HB-UNI-Sen-RFID-RC - Wiegand" macht Fortschritte.
Mittlerweile habe ich auch schon eine kleine Platine entwickkelt. (mein erstes KiCAD Projekt :wink:)

mit

Code: Alles auswählen

sdev.getDeviceSerial(serial);
sdev.getDeviceID(temp);
Kann ich in der HB-UNI-Sen-RFID-RC.ino die Serial und DeviceID auslesen.

Gibt es auch eine Möglichkeit, von der "Wiegand.cpp" auf die DeviceID bzw. Serial zuzugreifen?
Hier fehlt ja das Konstrukt "sdev." :roll:

Gruß

Marcel

Re: HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Verfasst: 16.07.2020, 07:24
von jp112sdl
mcbo hat geschrieben:
16.07.2020, 00:27
Gibt es auch eine Möglichkeit, von der "Wiegand.cpp" auf die DeviceID bzw. Serial zuzugreifen?
Hier fehlt ja das Konstrukt "sdev." :roll:
Korrekt, das geht so nicht.

Du müsstest dir noch 2 set-Methoden (setDeviceSerial, setDeviceID) in die Wiegand Lib einbauen und dann aus dem Hauptsketch aus sowas machen wie

Code: Alles auswählen

sdev.getDeviceSerial(serial);
sdev.getDeviceID(temp);
readerDevice.setDeviceSerial(serial);
readerDevice.setDeviceID(temp);
Was hast du denn vor, dass du direkt in der Wiegand-Bibliothek einbauen willst?
Editieren von Lib-Files versuche ich immer zu vermeiden, da bei Updates die Änderungen verloren gehen / wieder nachgepflegt werden müssen

Re: HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Verfasst: 16.07.2020, 21:13
von mcbo
jp112sdl hat geschrieben: Du müsstest dir noch 2 set-Methoden (setDeviceSerial, setDeviceID) in die Wiegand Lib einbauen und dann aus dem Hauptsketch aus sowas machen wie
Klingt kompliziert. :roll:
jp112sdl hat geschrieben: Was hast du denn vor, dass du direkt in der Wiegand-Bibliothek einbauen willst?
Du erinnerst Dich sicher noch an meinen Wunsch, einen Taster mit einzubauen ("MixDevice").
Da der Sketch mit OLED Display zu groß wurde, habe ich die Portabfrage,
einfachhalber direkt in die "Wiegand.cpp" eingebaut und sende bei "digitalRead(CLOSE_PIN1)==HIGH" eine feste Chip ID.

Das funktioniert auch gut und passt mit 97% noch in den Flashspeicher des Arduinos.
Auf meiner Platine habe 2 Taster vorgesehen.
Damit könnte man z.B.: einen als Klingeltaster und einen zum Verschließen der Tür missbrauchen.
NUM_CHANNELS habe ich momentan mit 20 laufen, dann sind noch 18 Kanäle für Chips, PINs oder Fingerprints übrig.

Um den Sketch noch ein bisschen dynamischer zu gestalten, würde ich für die Taster, statt der festen Chip ID,
gerne eine ID, in Abhängigkeit von der Device ID oder Device Serial, generieren.

z.B.: Device ID: 8215EB
Taster1: 8215EB01
Taster2: 8215EB02

Mitlerweile habe ich die Taster Abfrage komplett in die "RFID.h" eingebaut, damit bleibt die "Wiegand.cpp" unverändert.

Code: Alles auswählen

#ifdef USE_WIEGAND
   if ((rdrDev.available()) || (digitalRead(CLOSE_PIN1)==HIGH) || (digitalRead(CLOSE_PIN2)==HIGH)) {

     unsigned long wgAddr = rdrDev.getCode();
     
     if (digitalRead(CLOSE_PIN1)==HIGH) {
       wgAddr = 10815001; // Chip ID Taster 1
     }
     
     if (digitalRead(CLOSE_PIN2)==HIGH) {
       wgAddr = 10815002; // Chip ID Taster 2
     }

Gruß

Marcel