이것은 C++ newbie 질문입니다. 나는 블루투스 저에너지 UART 통보를 전송하기 위해 다음과 같은 Arduino 스케치를 가지고있다.문자열에서 부호없는 char *로 캐스팅 쓰레기 수거
command
이 5자인 경우 블루투스 수신기 쪽에서 5 문자를 얻습니다. 그러나 한 문자 명령으로 5 문자 command
을 따라 가면받은 문자는 이전 문자 인 command
의 마지막 3 문자가옵니다.
예는
command
는 -1,0t
이다. 내가받는 것은 -1,0t
입니다. 그러나 다음 command
은 단지 r
입니다. 내가받는 것은 r,0t
입니다.
여기가 어떻게됩니까? "r"은 어떻게 얻나요?
int BLEsend(String command){
byte length = sizeof(command);
unsigned char* notification = (unsigned char*) command.c_str(); // cast from string to unsigned char*
Serial.print(length);
BLE.sendData(UART_SEND, notification, length);
Serial.print("Notification Sent: "); Serial.println(command);
delay(100);
return 1;
}
주'를 sizeof (명령)'* * 당신에게 문자열의 길이를 제공하지 않습니다. ['length'] (http://arduino.cc/en/Reference/StringLength) 멤버 함수를 사용해야합니다. –
그게 문제 였어! 감사. 대답을 적어주세요. 받아 들일 것입니다. (나는 바보처럼 느껴진다.) – Chirantan