#include "platform.h" #ifdef ESP_PLATFORM #include "esp_system.h" #include "esp_log.h" #include static const char *TAG = "PLATFORM"; #define MAX_ID_STRING (32) char *platform_create_id_string() { uint8_t mac[6]; char *id_string = calloc(1, MAX_ID_STRING); ESP_MEM_CHECK(TAG, id_string, return NULL); esp_read_mac(mac, ESP_MAC_WIFI_STA); sprintf(id_string, "ESP32_%02x%02X%02X", mac[3], mac[4], mac[5]); return id_string; } int platform_random(int max) { return esp_random()%max; } long long platform_tick_get_ms() { struct timeval te; gettimeofday(&te, NULL); // get current time long long milliseconds = te.tv_sec*1000LL + te.tv_usec/1000; // calculate milliseconds // printf("milliseconds: %lld\n", milliseconds); return milliseconds; } void ms_to_timeval(int timeout_ms, struct timeval *tv) { tv->tv_sec = timeout_ms / 1000; tv->tv_usec = (timeout_ms - (tv->tv_sec * 1000)) * 1000; } #endif