/*
Struct Opções utilizando: define
Autor: Eng. Fabrício Ribeiro
19/05/2025
Byte MHDR
| Mtype | RFU | Versão |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
*/
//Mtype
#define Join_Request 0
#define Join_Accept 1
#define Unconfirmed_Data_Up 2
#define Unconfirmed_Data_Down 3
#define Confirmed_Data_Up 4
#define Confirmed_Data_Down 5
#define Rejoin_Request 6
#define Proprietary 7
//RFU
#define Teste0 0
#define Teste1 1
#define Teste2 2
#define Teste3 3
#define Teste4 4
#define Teste5 5
#define Teste6 6
#define Teste7 7
//Versão
#define Version_0 0
#define Version_1 1
#define Version_2 2
#define Version_3 3
//Struct de 1 byte
struct _MHDR{
byte Mtype:3; //3bit
byte RFU:3; //3bit
byte Version:2; //2bit
};
void setup(){
Serial.begin(115200);
_MHDR MHDR;
MHDR.Mtype = Join_Accept;
MHDR.RFU = Teste1;
MHDR.Version = Version_1;
Serial.print("MHDR = ");
for(int i=2; i>=0; i--){
Serial.print(bitRead(MHDR.Mtype,i));
}
for(int i=2; i>=0; i--){
Serial.print(bitRead(MHDR.RFU,i));
}
for(int i=1; i>=0; i--){
Serial.print(bitRead(MHDR.Version,i));
}
Serial.println(" ");
}
void loop(){
}