Generate device name
This commit is contained in:
40
esp32_device/main/dev_name.c
Normal file
40
esp32_device/main/dev_name.c
Normal file
@ -0,0 +1,40 @@
|
||||
#include "stddef.h"
|
||||
#include "dev_name.h"
|
||||
#include "storage.h"
|
||||
#include "stdio.h"
|
||||
#include "random.h"
|
||||
#include "constants.h"
|
||||
#include "string.h"
|
||||
|
||||
#define DEV_PREFIX "ESP32 "
|
||||
|
||||
bool dev_generate_name_if_required()
|
||||
{
|
||||
// Check if a device name has already been defined
|
||||
if (storage_get_dev_name(NULL) > 0)
|
||||
return false;
|
||||
|
||||
// Generate random device name
|
||||
char name[DEV_NAME_LEN];
|
||||
rand_str(DEV_NAME_LEN - 1, name);
|
||||
storage_set_dev_name(name);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
char *dev_name()
|
||||
{
|
||||
size_t len = storage_get_dev_name(NULL);
|
||||
|
||||
char *dev = malloc(len + strlen(DEV_PREFIX) + 1);
|
||||
if (dev == NULL)
|
||||
{
|
||||
printf("Failed to allocate memory to store dev name!\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
strcpy(dev, DEV_PREFIX);
|
||||
storage_get_dev_name(dev + strlen(DEV_PREFIX));
|
||||
|
||||
return dev;
|
||||
}
|
Reference in New Issue
Block a user