Remove some magic numbers

master
Tanner Collin 5 years ago
parent 1627ffe639
commit d2d63146da
  1. 16
      firmware/firmware.ino

@ -18,6 +18,8 @@ char cardBuffer[CARD_BUFFER_LENGTH];
#define CARD_DATA_LENGTH 10
#define CARD_CHECK_LENGTH 2
#define CARD_HEAD_BYTE 0x2
#define CARD_TAIL_BYTE 0x3
typedef struct __attribute__((packed)) cardData {
char head;
char data[CARD_DATA_LENGTH];
@ -48,6 +50,7 @@ typedef struct __attribute__((packed)) cardData {
#define LED_ERROR_BLINK_TIME 50
#define EEPROM_SIZE 4095
#define EEPROM_END_MARKER '$'
enum wifiStates
{
@ -117,7 +120,7 @@ void tickerLoop()
if (readChar == -1) {
break;
} else if (readChar == 0x2) {
} else if (readChar == CARD_HEAD_BYTE) {
bufPos = 0;
}
@ -127,7 +130,7 @@ void tickerLoop()
cardBuffer[bufPos++] = readChar;
if (readChar == 0x3 && bufPos == CARD_BUFFER_LENGTH) {
if (readChar == CARD_TAIL_BYTE && bufPos == CARD_BUFFER_LENGTH) {
if (lockState == LOCK_OFF && LEDState == LED_OFF) checkCard();
break;
}
@ -177,7 +180,10 @@ void checkCard()
{
cardData_t *cardData = (cardData_t *) cardBuffer;
if (cardData->head == 0x2 && cardData->tail == 0x3 && checksum(cardData)) {
if (cardData->head == CARD_HEAD_BYTE &&
cardData->tail == CARD_TAIL_BYTE &&
checksum(cardData)) {
String cardStr = String();
String authorizedCards = String();
@ -188,7 +194,7 @@ void checkCard()
for (uint16_t i = 0; i < EEPROM_SIZE; i++) {
char tmp = EEPROM.read(i);
authorizedCards += tmp;
if (tmp == '$') break;
if (tmp == EEPROM_END_MARKER) break;
}
if (LOGGING) Serial.println("[INFO] Good scan from card: " + cardStr);
@ -457,7 +463,7 @@ void getCards()
if (cardHTTPCode == HTTP_CODE_OK) {
if (LOGGING) Serial.print("[INFO] Resource found, parsing response: ");
String cardPayload = cardHTTP.getString();
cardPayload += "$"; // Mark the end
cardPayload += String(EEPROM_END_MARKER);
if (LOGGING) Serial.println(cardPayload);
noInterrupts(); // commit() disables interrupts, but we want an atomic EEPROM buffer write

Loading…
Cancel
Save