Cześć, mam problem z przesyłaniem i konwertowaniem danych. Przy wartościach powyżej 128 nie dostaję odpowiednich wyników.
void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
{
//Serial.println("wiadomość dotarła");
//Serial.print(webSocket.connectedClients());
// String str = (char*)payload;
// Serial.println(str);
if (type == WStype_TEXT) {
//Serial.println(brightness);
String str = (char*)payload;
Serial.println(str);
if (str[0] == 'T') {
int r = (int)payload[1];
int g = (int)payload[2];
int b = (int)payload[3];
Serial.println(payload[1]);
Serial.println(payload[2]);
Serial.println(payload[3]);
Jest to część funkcji którą wykorzystuję. Przesyłam 3 wartości od 0 do 255 jako uint8 ale z jakiegoś powodu są one inne.
s ="T" + chr(color[0]) + chr(color[1]) + chr(color[2])
print(s)
ws.send(s)
powyżej część kodu w pythonie która odpowiada za wysyłanie danych
Przykładowe dane:
python:
(228, 227, 228)
ä ã ä
co odebrał c++:
äãä //zrzutowany do klasy String i wyświetlony przesłany komunikat
195 //kolejne odebrane wartości
164
195