[W5100] WebServer и переменная типа char[]
- Войдите на сайт для отправки комментариев
Ср, 22/01/2014 - 17:05
#include <SPI.h>
#include "RF24.h"
#include <Ethernet.h>
RF24 radio(7, 8);
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xFE };
IPAddress ip(192,168,1,10);
EthernetServer server(80);
const uint64_t pipes[2] = {0xF0F0F0F000LL, 0xF0F0F0F0FFLL};
// адреса каналов приема и передачи
char data[16] = "";
void setup(){
Serial.begin(9600);
Ethernet.begin(mac, ip);
radio.begin();
radio.setDataRate(RF24_250KBPS); // Скорость передачи
radio.setChannel(100); // Номер канала от 0 до 127
radio.setRetries(15,15); // Кол-во попыток и время между попытками
radio.openWritingPipe(pipes[1]); // Открываем канал передачи
radio.openReadingPipe(1, pipes[0]); // Открываем один из 6-ти каналов приема
radio.startListening(); // Начинаем слушать эфир
}
void loop(){
EthernetClient client = server.available();
if (client.connected()) {
client.println ("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'");
client.println ("<html>");
client.println ("<head> ");
client.println ("<meta http-equiv= refresh content=60;>");
client.println ("<meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> ");
client.println ("</head> ");
client.println ("<body>");
client.println(data);
client.println ("</body>");
client.println("</html>");
client.stop();
}
if(Serial.available()){
char data[5] = "";
for (int i=0; i<5; i++) {
data [i] = Serial.read ();
delay (50);
// Serial.print (data[i]);
}
// Serial.println ();
radio.stopListening();
radio.write(&data, 5);
radio.startListening();
}
if(radio.available()){
radio.read(&data, 16);
Serial.print(data);
}
}
Данные с удаленного датчика получает, в чериал переменную char data[] выводит нормально, но эту же самую строку вида DHT21H35T23.4>, выводит только >
Уже и в цикл вида
for (int i=0; i<16; i++) {
client.print (data[i]);
}
выводил, но все равно одно и то же ">" и больше ничего...
char не выводит Ethernet?
char data[5] = ""; for (int i=0; i<16; i++) { client.print (data[i]); }char data[5] = ""; for (int i=0; i<16; i++) { client.print (data[i]); }пробовал, выводит
Что пробовали? Это не проба, а указание на ошибку. Наводящий вопрос: Чем отличается 5 от 16 ?
Что пробовали? Это не проба, а указание на ошибку. Наводящий вопрос: Чем отличается 5 от 16 ?
Хм, а если предполагается, что размер данных может быть с разных датчиков разный, а где то не показания а задача, т.е. рамер должен быть динамичным.
Вам, как новичку, лучше использовать статические массивы. Обьявляйте размер с запасом.
Попробую прислушаться.