
#include "esp_log.h"
#include <stdio.h>
#include <time.h>
#include <onewire.h>
#include <ds18b20.h>  // Die Header-Datei mit DS18B20-Funktionen
#include <task.h>
#include <esp_wifi.h>
#include <FreeRTOSConfig.h>

struct appldata;
/*
struct appldata{
    uint8_t mac[6];
    float temp;
    float battaryVoltage;
    unsigned long upTime;
}
*/
int app_main() {


  // Variable to store the MAC address
  uint8_t baseMac[6];

  long uptime = (xTaskGetTickCount() * (1000/configTICK_RATE_HZ));
  
  // Get MAC address of the WiFi station interface
  esp_read_mac(baseMac, ESP_MAC_WIFI_STA);
  printf("Station MAC: ");
  for (int i = 0; i < 5; i++) {
    printf("%02X:", baseMac[i]);
  }
  printf("%02X\n", baseMac[5]);

  printf( "Uptime = %d\n", (xTaskGetTickCount() * (1000/configTICK_RATE_HZ)));




    // Create variable for handler
    ds18b20_handler_t sensor;
    // Check for any initialization failures
    if (!ds18b20_init(&sensor, GPIO_NUM_2, TEMP_RES_12_BIT))        
    {
    ESP_LOGE("TAG", "Failed to initalize DS18B20!");

    return 0; // Exit
    } 
    float temp = 0;
    printf("hit");
    for(int i = 0; i < 30; ++i) {
        // Initalize conversion
        ds18b20_convert_temp(&sensor);
        temp = ds18b20_read_temp(&sensor);
        vTaskDelay(5000 / portTICK_PERIOD_MS);
        printf("\n");
        printf( "Temperature = %.4f\n", temp);
        printf( "Uptime = %d", (xTaskGetTickCount() * (1000/configTICK_RATE_HZ)));
    };

    // Print temperature with 4 decimal places 
    // (12 bit resolution measurement accuracy is 0.0625 Celsius)
    ESP_LOGI("TAG", "Temperature = %.4f", temp);
    





    return 0;
}

