Olá! Estou tentando realizar uma transmissão de strings entre dois módulos.
Porém não estou conseguindo enviar a string completa:
int listaEndDevices[5] = {0, 00, 0, 0, 0};
String Data = “011001ST012350022350032350042400052400062550072600082350092245102500112600122700132350142475152500FF”;
CMD_aplicacao((listaEndDevices[polingID % 5]),0x10,Data);
char CMD_aplicacao(int id, char cmd, String mensagem)
{
char id_lsb = id & 0xFF; //separando o ind em dois bytes para enviar no pacote; &0xFF pega somente os 8 bits menos significativos
char id_msb = (id >> 8) & 0xFF; //bitwise desloca os 8 bits mais signficativos e pega somente a parte msb do int
char comando = cmd; // comando referente a GPIO
int tamanho = mensagem.length() + 1; //inclui o fim de string 0x00
char payload[tamanho];
mensagem.toCharArray(payload, tamanho);
char pacote[tamanho + 5]; // 03 bytes do cabeçalho (id_lsb, id_msb e comando) e 2 bytes do crc
pacote[0] = id_lsb;
pacote[1] = id_msb;
pacote[2] = cmd;
int count = 0;
for (count = 3; count < (tamanho + 3); count++)
{
pacote[count] = payload[count - 3];
}
int crc = CalculaCRC(pacote, tamanho + 3);
pacote[tamanho + 3] = crc & 0xFF;
pacote[tamanho + 4] = ((crc >> 8) & 0xFF);
radio_master_serial_cmd.write(pacote, tamanho + 5);
Serial.print(“Envio string para o ID: “);//somente para aparecer no monitor serial do Arduino
Serial.print(id);
Serial.println(” — — —”);
return (1);
}
Na parte do receptor/mestre, não chega nem a receber o payload