Сравнение двух массивов
- Войдите на сайт для отправки комментариев
Пт, 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];