uint16_t readWebsiteFromSD(uint8_t *buf) { plen = http200ok(); //Sende HTTP 200 OK char lbuffer[SD_BUFFERSIZE]; //Lege Puffer für die Zeilen an SD_BUFFERSIZE ist der gleiche wie bei getLinesInFile also hier auch 50 uint16_t lines = getLinesInFile(&Fil, "website/test.txt", 1); //Lese alle Zeilen von "website/test.txt" aus(Webseite mit 10 Zeile) f_open(&Fil, "website/test.txt", FA_READ | FA_OPEN_EXISTING); //Öffne die Datei erneut um zu lesen for(int i = 1; i < lines; i++) { //For Schleife für jede Zeile f_gets(lbuffer, sizeof(lbuffer), &Fil); //Lese jede Zeile aus //Prüfe auf Codes und ersetzte sie dann mit dem passenden Werten if(strstr(lbuffer, "~ds18b20TempIn~") != NULL) { //DS18B20 Innen if(ds18b20_tempInside != 1000) { sprintf(tempBuffer, "%.2f", ds18b20_tempInside); sprintf(lbuffer, "%s\r\n", replace_str(lbuffer, "~ds18b20TempIn~", tempBuffer)); }else{ sprintf(lbuffer, "%s\r\n", replace_str(lbuffer, "~ds18b20TempIn~", "Can't find the Temp Sensor")); } } if(strstr(lbuffer, "~ds18b20TempOut~") != NULL) { //DS18B20 Außen if(ds18b20_tempOutside != 1000) { sprintf(tempBuffer, "%.2f", ds18b20_tempOutside); sprintf(lbuffer, "%s\r\n", replace_str(lbuffer, "~ds18b20TempOut~", tempBuffer)); }else{ sprintf(lbuffer, "%s\r\n", replace_str(lbuffer, "~ds18b20TempOut~", "Can't find the Temp Sensor")); } } if(strstr(lbuffer, "~serverRunningTime~") != NULL) { //Server Time sprintf(tempBuffer, "%d:%d:%d:%d", currentTimeDay, currentTimeHou, currentTimeMin, currentTimeSec); sprintf(lbuffer, "%s\r\n", replace_str(lbuffer, "~serverRunningTime~", tempBuffer)); } if(strstr(lbuffer, "~websiteCalls~") != NULL) { //Server Calls sprintf(tempBuffer, "%d", serverAccessCount); sprintf(lbuffer, "%s\r\n", replace_str(lbuffer, "~websiteCalls~", tempBuffer)); } if(strstr(lbuffer, "~pings~") != NULL) { //Server Pings sprintf(tempBuffer, "%d", serverPingCount); sprintf(lbuffer, "%s\r\n", replace_str(lbuffer, "~pings~", tempBuffer)); } plen = fill_tcp_data(buf, plen, lbuffer); //Sende Daten als TCP } f_close(&Fil); //Schließe Datei return (plen); //Gebe plen zurück(ENC28J60) }