Добрый день. Необходимо отправить запрос и вычитать ответ из nfc-ридера и перевести в String, подключение через bluetooth. Делаю так:
SerialBT.setTimeout(10);
String sendData = "4d004E2117100a004880AE8000420000000001000000000000000804000000000009802312010005E7C6C72200000000000000000000000000000000000000000000000000000000000000000000000000FE";
char SendDataC[fullSendData.length() + 1];
sendData .toCharArray(SendDataC, sendData .length() + 1);
sendData = "";
uint8_t sendData_Hex[strlen(SendDataC) / 2] = {};
memset(sendData_Hex, 0, sizeof(sendData_Hex));
String btAnswer= "";
SerialBT.write(sendData_Hex, sizeof(sendData_Hex));
byte btAnswerChr[512];
uint8_t counter = 0;
while (SerialBT.available() > 0) {
char ch = SerialBT.read();
/*
Serial.print ("Get byte: ");
Serial.print (counter);
Serial.print ("---");
Serial.print (ch,HEX);
Serial.println ("");
*/
btAnswerChr[counter] = ch;
counter++;
}
String result="";
Serial.print ("counter: ");
Serial.println (counter);
for (int i = 0; i<=counter-1; i++)
{
if (convert.decimalToHexa(btAnswerChr [i]).length()==1)
result+="0";
result+=convert.decimalToHexa(btAnswerChr [i]);
}
memset(btAnswerChr, 0, sizeof(btAnswerChr));
Serial.print (result);
Если блок
Serial.print ("Get byte: ");
Serial.print (counter);
Serial.print ("---");
Serial.print (ch,HEX);
Serial.println ("");
Раскомментировал все вычитывается правильно:
7081A657135167803202840547D24112010000000001960F5A0851678032028405475F24032411305F25031911015F280208045F3401018C279F02069F03069F1A0295055F2A029A039C019F37049F35019F45029F4C089F34039F21039F7C148D0C910A8A0295059F37049F4C088E0E000000000000000042031E031F039F0702FFC09F080200029F0D05B4508400009F0E0500000000009F0F05B4708480009F420209809F4A01829000
если закомментирован, почему-то вычитывается только часть:
95055F2A029A039C019F37049F35019F45
При этом counter = 17