KNX IoT
KNX IoT Point API stack implementation
oc_uuid.h File Reference

uuid implementationGenerate and work with UUIDs as specified in RFC 4122. More...

#include <stdint.h>

Go to the source code of this file.

Macros

#define OC_UUID_LEN   (37)
 The length of a UUID string. More...
 

Functions

void oc_gen_uuid (oc_uuid_t *uuid)
 Generate a random Universally Unique IDentifier (UUID) More...
 
void oc_str_to_uuid (const char *str, oc_uuid_t *uuid)
 Convert a UUID string representation to a 128-bit oc_uuid_t. More...
 
void oc_uuid_to_str (const oc_uuid_t *uuid, char *buffer, int buflen)
 Convert the 128 bit oc_uuid_t to a sting representation. More...
 

Detailed Description

uuid implementation

Generate and work with UUIDs as specified in RFC 4122.

This module implements the generation of version-4 UUIDs based on its specification in RFC 4122, along with routines to convert between their string and binary representations.

Definition in file oc_uuid.h.

Macro Definition Documentation

◆ OC_UUID_LEN

#define OC_UUID_LEN   (37)

The length of a UUID string.

This is the length of UUID string as specified by RFC 4122.

See also
oc_uuid_to_str

Definition at line 40 of file oc_uuid.h.

Function Documentation

◆ oc_gen_uuid()

void oc_gen_uuid ( oc_uuid_t *  uuid)

Generate a random Universally Unique IDentifier (UUID)

This will return a 128 bit version 4 UUID as specified by RFC 4122.

Version 4 UUID is created using random or pseudo-random numbers

Example

oc_uuid_t device_uuid = { { 0 } };
oc_gen_uuid(&device_uuid);
void oc_gen_uuid(oc_uuid_t *uuid)
Generate a random Universally Unique IDentifier (UUID)
Parameters
[out]uuidthe randomly generated UUID

◆ oc_str_to_uuid()

void oc_str_to_uuid ( const char *  str,
oc_uuid_t *  uuid 
)

Convert a UUID string representation to a 128-bit oc_uuid_t.

Note
oc_str_to_uuid has a special case that does not conform to RFC 4122 if the first character of the str is '*' then the first byte of the oc_uuid_t will be set to '*' (0x2A) and the other bytes will be set to zero.

Example

oc_uuid_t uuid;
oc_str_to_uuid("1628fbcc-13ce-4e37-b883-1fd8d2ad945d", &uuid);
void oc_str_to_uuid(const char *str, oc_uuid_t *uuid)
Convert a UUID string representation to a 128-bit oc_uuid_t.
Parameters
[in]strthe UUID string
[out]uuidthe oc_uuid_t to hold the UUID bits.

◆ oc_uuid_to_str()

void oc_uuid_to_str ( const oc_uuid_t *  uuid,
char *  buffer,
int  buflen 
)

Convert the 128 bit oc_uuid_t to a sting representation.

The string representation of the UUID will be as specified in RFC 4122.

Note
oc_uuid_to_str has a special case that does not conform to RFC 4122 if the first byte of oc_uuid_t is set to '*' (0x2A) this will return a string "*".

Example

oc_uuid_t device_uuid = { { 0 } };
oc_gen_uuid(&device_uuid);
char uuid_str[OC_UUID_LEN] = { 0 };
oc_uuid_to_str(&device_uuid, uuid_str, OC_UUID_LEN);
#define OC_UUID_LEN
The length of a UUID string.
Definition: oc_uuid.h:40
void oc_uuid_to_str(const oc_uuid_t *uuid, char *buffer, int buflen)
Convert the 128 bit oc_uuid_t to a sting representation.
Parameters
[in]uuidA oc_uuid_t to convert to a string
[out]bufferA char array that will hold the string representation of the UUID
[in]buflenThe size of the input buffer. Recommend always using OC_UUID_LEN for buflen.