Сравнение двух массивов
- Войдите на сайт для отправки комментариев
Пт, 29/05/2015 - 11:59
Есть скетч который принимает данные через wifi от клиента и по нужной команде должен повернуть серву.
#include "ESP8266.h"
uint32_t len;
uint8_t buffer[128] = {0};
uint8_t mux_id = 0xFF;
ESP8266 wifi(Serial2);
void setup(void)
{
Serial.begin(9600);
//Serial.begin(115200);
Serial.print("setup begin\r\n");
if (wifi.setOprToStationSoftAP()) {
Serial.print("to station + softap ok\r\n");
} else {
Serial.print("to station + softap err\r\n");
}
if (wifi.enableMUX()) {
Serial.print("multiple ok\r\n");
} else {
Serial.print("multiple err\r\n");
}
if (wifi.startTCPServer(8090)) {
Serial.print("start tcp server ok\r\n");
} else {
Serial.print("start tcp server err\r\n");
}
}
void loop(void) {
len = wifi.recv(&mux_id, buffer, sizeof(buffer), 100);
if (len > 0) {
for(uint32_t i = 0; i < len; i++) {
Serial.print((char)buffer[i]);
}
}
}
В мониторе все работает, строки приходят и правильно отображаются, например "right", каким образом возможно сделать так, если пришла команда "right" то повернуть серво мотор на 90 ?
Почитайте про strcmp().
int val = strcmp((char *) buffer, "right");
Решил проблему другим путем. Спасибо за Ваш ответ, тоже пригодился.
Заменил все на string
Message += (String)(char)buffer[i];