Program doesnt want to recognize the function inside its own file, neither in the main .ino file.
And i have a second question, how to use anothers(example: somestuff.h) file commands in a different .cpp file(someotherstuff.cpp) or in (main.ino).
Some help would be appreciated.
Console error log:
sketch\RFIDFunc.cpp: In function 'void setup()':
RFIDFunc.cpp:16:3: error: 'dump_byte_array' was not declared in this scope
dump_byte_array(key.keyByte, MFRC522::MF_KEY_SIZE);
^~~~~~~~~~~~~~~
sketch\RFIDFunc.cpp:16:3: note: suggested alternative: '__cpp_runtime_arrays'
dump_byte_array(key.keyByte, MFRC522::MF_KEY_SIZE);
^~~~~~~~~~~~~~~
__cpp_runtime_arrays
sketch\RFIDFunc.cpp: In member function 'void RFIDFunc::Check()':
RFIDFunc.cpp:62:7: error: 'OpenDoor' was not declared in this scope
OpenDoor();
^~~~~~~~
C:\Users\ville\Documents\Arduino\main_feb27a\main_feb27a.ino: In function 'void loop()':
main_feb27a:100:3: error: 'Check' was not declared in this scope
Check();
^~~~~
sketch\RFIDFunc.cpp:62:7: note: suggested alternative: 'perror'
OpenDoor();
^~~~~~~~
perror
C:\Users\ville\Documents\Arduino\main_feb27a\main_feb27a.ino: In function 'void MainPage()':
main_feb27a:146:9: error: 'OpenDoor' was not declared in this scope
OpenDoor();
^~~~~~~~
C:\Users\ville\Documents\Arduino\main_feb27a\main_feb27a.ino:146:9: note: suggested alternative: 'perror'
OpenDoor();
^~~~~~~~
perror
exit status 1
'dump_byte_array' was not declared in this scope
RFIDFunc.h:
#include <Arduino.h>
#include <SPI.h>
#include <MFRC522.h>
#include "RFIDFunc.h"
#include "DoorFunc.h"
MFRC522 mfrc522(53, 2); //SS_PIN, RST_PIN
MFRC522::MIFARE_Key key;
void setup() {
//Init RFID Reader
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522 card
for (byte i = 0; i < 6; i++) {
key.keyByte[i] = 0xFF;
}
Serial.print(F("Using key (for A and B):"));
dump_byte_array(key.keyByte, MFRC522::MF_KEY_SIZE);
Serial.println();
}
void RFIDFunc::Check() {
// Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle.
if ( ! mfrc522.PICC_IsNewCardPresent())
return;
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial())
return;
byte sector = 1;
byte blockAddr = 4;
byte dataBlock[] = {
//Not important
};
byte trailerBlock = sector * 4 + 3;
MFRC522::StatusCode status;
byte buffer[18];
byte size = sizeof(buffer);
Serial.println(F("Current data in sector:"));
mfrc522.PICC_DumpMifareClassicSectorToSerial(&(mfrc522.uid), &key, sector);
Serial.println();
// Check that data in block is what we have written
// by counting the number of bytes that are equal
Serial.println(F("Checking result..."));
byte count = 0;
for (byte i = 0; i < 16; i++) {
// Compare buffer (= what we've read) with dataBlock (= what we've written)
if (buffer[i] == dataBlock[i])
count++;
/*
Serial.print("Buffer: ");
Serial.print(buffer[i]);
Serial.print("\n");
Serial.print("DataBlock: ");
Serial.print(dataBlock[i]);
Serial.print("\n");
*/
}
Serial.print(F("Number of bytes that match = ")); Serial.println(count);
if (count == 16) {
OpenDoor();
} else {
Serial.println(F("Failure, no match :-("));
Serial.println(F("perhaps you have the wrong card..."));
}
// Halt PICC
mfrc522.PICC_HaltA();
// Stop encryption on PCD
mfrc522.PCD_StopCrypto1();
}
void RFIDFunc::dump_byte_array(byte *buffer, byte bufferSize) {
for (byte i = 0; i < bufferSize; i++) {
Serial.print(buffer[i] < 0x10 ? " 0" : " ");
Serial.print(buffer[i], HEX);
}
}
RFIDFunc.h:
#ifndef RFIDFunc_h
#define RFIDFunc_h
#include <Arduino.h>
#include <MFRC522.h>
class RFIDFunc
{
public:
void Check();
void dump_byte_array(byte *buffer, byte bufferSize);
//unsigned char serNum[5];
//unsigned char AserNum[5];
private:
//int _chipSelectPin;
//int _NRSTPD;
};
#endif
RFIDFunc.cpp (2.27 KB)
RFIDFunc.h (334 Bytes)