R503 parmak izi okuyucu kütüphanesini STM32 de çalıştırma

Başlatan argelojik, 09 Mayıs 2023, 13:50:46

argelojik

        Merhabalar, birkaç yıl önce almış olduğum GROW marka R502 model parmak izi okuyucu modülünü kullanmak istiyorum. Aracımda ki kontak anahtarını iptal edip, start-stop modülüyle anahtar kullanmadan parmak izi ile birlikte çalışacak bir sistem tasarımı projesi yapmak istedim.

        İnternette bulduğum R502/503 fingerprint kütüphanesi (Adafruit) Arduiuno için yazılmış. Yetkili firmaya yazdığımda, STM32 için bir kütüphane olmadığı cevabını verdiler. Ben STM32 kullanarak birçok proje yaptım fakat Arduiuno hiç kullanmadım. Bu kütüphaneler "C++"  dilinde yazılmış. Acaba benim için bu R502/503 kütüphanesini "C" diline çevirmeniz mümkün mü? Kapsamlı bir kütüphane değil aslında... Ben epey kafa yordum fakat oradaki class: private structlarını bilmediğim için başarılı olamadım. Sonuç olarak özetlemem gerekirse, gönderdiğim projedeki linkte bulunan   "503cpp","503hpp" dosyalarını  "503.c" ve "503.h" şekline getirmeniz mümkün mü? Eğer mümkün olursa ben de bu yapıların nasıl dönüştüğünü öğrenmiş olacağım.

             Modüle bilgi gönderme ve alma işlemlerini kendim halledebilirim. Modül zaten UART üzerinden 57600bps üzerinden haberleşiyor. Projede STM32F103C8T6 kullanacağım.  Şimdiden çok teşekkür ederim.







argelojik

Sizden ricam, daha önce class sınıfını kullanmadım. Bu yapı nasıl oluyor? Burayı C dilinde nasıl dönüştürürüz? Buradaki fonksiyonlara erişim kısmını anlamıyorum.

class R503 {
    uint32_t address;
    uint32_t password;
    long baudrate;
    
    uint16_t finger_library_size;
    uint16_t data_package_size;
    
    int rxPin, txPin;
    SoftwareSerial *serial;
    
public:

    R503(int rxPin, int txPin, uint32_t address = 0xFFFFFFFF, uint32_t password = 0x0, long baudrate = 57600);
    virtual ~R503();
    static char const *errorMsg(int code);

SERRO EFE

https://download.mikroe.com/documents/datasheets/R503_datasheet.pdf
Niye dönüştürme çabasındasınız. Seri haberleşme yaptığı belli dökümanda hangi adresin ne işe yaradığı nasıl bir protokol ile çalıştığı açıkça anlatılmış.
Bunun üzerinden gitseniz sanki daha hızlı yol alırsınız.
 

argelojik

Cevap için teşekkür ederim. Hızlı olması için sizlerden yardım istemiştim. Diğer türlü çok zaman alacak. Yeni kütüphane yazmış olacağım. Çok zaman alacak. Datasheet elimde mevcut. Teşekkür ederim yine de.

volkanunal

Alıntı yapılan: argelojik - 09 Mayıs 2023, 16:38:43Sizden ricam, daha önce class sınıfını kullanmadım. Bu yapı nasıl oluyor? Burayı C dilinde nasıl dönüştürürüz? Buradaki fonksiyonlara erişim kısmını anlamıyorum.

class R503 {
    uint32_t address;
    uint32_t password;
    long baudrate;
    
    uint16_t finger_library_size;
    uint16_t data_package_size;
    
    int rxPin, txPin;
    SoftwareSerial *serial;
    
public:

    R503(int rxPin, int txPin, uint32_t address = 0xFFFFFFFF, uint32_t password = 0x0, long baudrate = 57600);
    virtual ~R503();
    static char const *errorMsg(int code);

Yukarda bulunan sınıfı C dilini dönüştürmek problem değil Ancak kütüphanenin bir çok noktasında diğer Arduino fonksiyonlarına bağımlılık mevcut. Kısaca yukarda bulunan kütüphane bazı platform bağımlılıklarını içeriyor. İlgili .h ve .cpp dosyasını sadece .c ve .h yapmak değil ihtiyaç dahilinde STM32 platformu içinde port etmek gerekiyor.  Elimde sensör yok ama aceleniz yok ise ilgili sensör için bir kütüphane yazabilirim, sensörü sizden alıp.
Primum nil nocere

argelojik

Çok sevinirim Volkan bey. Size gönderebilirim. Özelden size mesaj yazıyorum. Çok teşekkür ederim.