This repository has been archived on 2023-10-10. You can view files and clone it, but cannot push or open issues/pull-requests.
hackfridge/terminal/main.c

84 lines
2.1 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include "nfc.h"
#include "barcode.h"
#include "ldap.h"
#include "tts.h"
#include "config.h"
int main(int argc, char **argv)
{
if (nfc_initialize())
{
printf("NFC initialization failed\n");
tts_speak("Nie można było zainicjalizować czytnika mifare.\n");
return 1;
}
printf("NFC initialization successful\n");
if (barcode_initialize(BARCODE_PORT))
{
printf("Barcode initialization failed\n");
tts_speak("Nie można było zainicjalizować czytnika kodów kreskowych.\n");
return 1;
}
printf("Barcode initialization successful\n");
tts_speak("Refryżyrator gotowy do pracy.");
char MifareID[128];
char Barcode[14];
while (1)
{
int NFCResult = nfc_read(MifareID);
if (NFCResult == 0)
{
char DN[256];
int DNLength = 256;
int LDAPResult = ldap_dn_by_mifare(MifareID, DN, &DNLength);
if (LDAPResult > 0)
{
if (LDAPResult == NO_SUCH_CARD)
{
tts_speak("Nieznana karta.");
printf("NFC: Unknown card.\n");
continue;
}
else
{
tts_speak("Błąd eldapa.");
printf("LDAP: Unknown error %i\n", LDAPResult);
continue;
}
}
printf("LDAP DN: %s\n", DN);
char UID[128];
ldap_uid_from_dn(DN, UID);
printf("LDAP uid: %s\n", UID);
tts_speak("Zeskanuj produkt.\n");
int BarcodeResult = barcode_read(Barcode);
if (BarcodeResult == 0)
{
printf("Scanned barcode %s\n", Barcode);
}
else
{
printf("Barcode error %i\n", BarcodeResult);
// Do error handling here
}
}
else if (NFCResult != NFC_TIMEOUT)
{
printf("NFC error %i\n", NFCResult);
// Do error handling here
}
}
}