Well isn't that something. It seems to work 9/10 times. Every once and awhile it will print 0000, but I put some error handling in my Visual Studio part of this project to catch that. Going through your code, I have some questions:
What exactly is this doing?
#define A_SIZEOF(ARRAY) (sizeof(ARRAY) / sizeof(ARRAY[0]))
The compile time operator 'sizeof' returns the number of bytes an entity occupies. In this case the entities are the size of a complete array and the size of an element of the array. Given the size of the array divided by the size of a single element of the array we can determine the count of elements in an array whose elements are specified at compile time.
Is there a specific reason you use uint8_t instead of int? (I had to look it up to see what it was

)
Edit: Is it because of the sizeof(long) that you should define the integers as 8 bits?
Is this question directed at any particular piece of code? I'm not quite sure where to direct a reply unless we narrow the question down a bit.
Sorry.
How does this work? There is nothing in the curly braces?
while ( serialRFID.available() < 1 )
{ }
Personal preference I suppose as I don't like any of the following -
while ( serialRFID.available() < 1 )
;
... or ...
while ( serialRFID.available() < 1 ) ;
... to me my version clearly shows that we do nothing other than loop waiting for the condition to be satisfied.
For this code, could I use other commands, such as 'w' and then put my write functions under that case?
switch ( command )
{
// receive command from serial to search for and read card
case 'r':
readTagID();
idSend();
break;
default:
break;
Yes, as long as it's a single character command, and that's why I did it that way so you could expand on it.
Thank you again for all your help. Sorry about all the questions, but I'm trying to make sure I actually understand how it works for when I make changes.
Not a problem. That is why I prefer to post code that can be questioned as it allows me to determine what you know or don't know. As well as to expose you to different solutions than those shown in the tutorials.
Feel free to ask about anything and I'll do my best to answer within the context of what I think you already know limited by my free time at the moment.