Example of the usage of the mbed-os-wiegand library.

Dependencies:   mbed-os-wiegand

main.cpp

Committer:
goymame
Date:
2019-04-28
Revision:
0:bf6b79d0e255
Child:
1:26991d042db7

File content as of revision 0:bf6b79d0e255:

#include "mbed.h"
#include "wiegand.h"

RawSerial serial(USBTX, USBRX);
Thread wiegandThread;
EventQueue*  wiegandQueue = new EventQueue (64 * EVENTS_EVENT_SIZE);

void onTag(void);

Wiegand wiegandReader(PE_13, PF_15, wiegandQueue, &onTag, 32);

int main(){
    serial.printf("\r\n******************* Wiegand reader example *******************\r\n");
    wiegandThread.start(callback( wiegandQueue, &EventQueue::dispatch_forever));
}

void onTag(void){
    long double rawInt = wiegandReader.getRawInt();
    serial.printf("Integer:             %.0Lf\r\n",rawInt);

    unsigned char decDigits = wiegandReader.getDecDigits();
    volatile char* decimalString = new volatile char [decDigits+1];
    memset((char*)decimalString,'\0',decDigits+1);
    wiegandReader.getDecString(decimalString);
    serial.printf("Decimal String:      %s\r\n",decimalString);
    delete[] decimalString;

    unsigned char hexDigits = wiegandReader.getHexDigits();
    volatile char* hexadecimalString = new volatile char [hexDigits+1];
    memset((char*)hexadecimalString,'\0',hexDigits+1);
    wiegandReader.getHexString(hexadecimalString);
    serial.printf("Hexadecimal String:  %s\r\n\n",hexadecimalString);
    delete[] hexadecimalString;
    wiegandReader.reset();
}