Я работаю над фрагментом кода Arduino, который использует версию BlackWidow со встроенным Wi-Fi. Используя библиотеку WiServer.h, я использую пример SimpleClient.pde с модами для отправки вызова на веб-сервер, который будетпросто верните целое число - 0, 1 или 2. Конечной целью является включение булавки для правильного красного, зеленого или желтого цвета стоп-сигнала.Целые числа представляют совокупное состояние нашего Хадсона.
Я ленивый ублюдок PHP, и указатели меня пугают.Код, с которым я работаю:
// Function that prints data from the server
void printData(char* data, int len) {
// Print the data returned by the server
// Note that the data is not null-terminated, may be broken up into smaller packets, and
// includes the HTTP header.
while (len-- > 0) {
Serial.print(*(data++));
}
}
printData () - это обратный вызов для вызова веб-сервера, и при запуске он отправляет следующее на последовательный монитор (это 3 цикла, без новой строки до новогоoutput):
HTTP/1.1 200 OK
Date: Thu, 10 Feb 2011 17:37:37 GMT
Server: Apache/2.2.13 (Unix) mod_ssl/2.2.13 OpenSSL/0.9.8k DAV/2 PHP/5.2.11
X-Powered-By: PHP/5.2.11
Content-Length: 1
Connection: close
Content-Type: text/html
0HTTP/1.1 200 OK
Date: Thu, 10 Feb 2011 17:37:45 GMT
Server: Apache/2.2.13 (Unix) mod_ssl/2.2.13 OpenSSL/0.9.8k DAV/2 PHP/5.2.11
X-Powered-By: PHP/5.2.11
Content-Length: 1
Connection: close
Content-Type: text/html
0HTTP/1.1 200 OK
Date: Thu, 10 Feb 2011 17:37:58 GMT
Server: Apache/2.2.13 (Unix) mod_ssl/2.2.13 OpenSSL/0.9.8k DAV/2 PHP/5.2.11
X-Powered-By: PHP/5.2.11
Content-Length: 1
Connection: close
Content-Type: text/html
0
Часть, которую мне нужно определить, - это 0, который также может быть 1 или 2.
Вместо printData () эта функция станет turnOnAppresponLight ()или что-то, просто установив штифт на HIGH.Затем это активирует реле для питания соответствующего светодиодного массива.
Теперь, когда я написал это, похоже, мне просто нужно сохранить последний символ и выполнить переключение на основе значения.* (Data ++) - запутанная часть, хотя я знаю, что он увеличивает индекс указателя ... Я просто не уверен, как перейти непосредственно к последнему символу в этом индексе.Нет необходимости в этом цикле, чтобы выплюнуть результат.