Re: [PATCH BlueZ] Recognize Eddystone Configuration Service UUIDs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Francois,

> ---
> monitor/uuid.c | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
> 
> diff --git a/monitor/uuid.c b/monitor/uuid.c
> index 54adb0d..6c60a67 100644
> --- a/monitor/uuid.c
> +++ b/monitor/uuid.c
> @@ -540,6 +540,26 @@ static struct {
> 	{ }
> };
> 
> +static struct {

lets make the table also const.

> +	const char *uuid;
> +	const char *str;
> +} uuid128_table[] = {
> +	{ "a3c87500-8ed3-4bdf-8a39-a01bebede295", "Eddystone Configuration Service"	},
> +	{ "a3c87501-8ed3-4bdf-8a39-a01bebede295", "Capabilities"			},
> +	{ "a3c87502-8ed3-4bdf-8a39-a01bebede295", "Active Slot"				},
> +	{ "a3c87503-8ed3-4bdf-8a39-a01bebede295", "Advertising Interval"		},
> +	{ "a3c87504-8ed3-4bdf-8a39-a01bebede295", "Radio Tx Power"			},
> +	{ "a3c87505-8ed3-4bdf-8a39-a01bebede295", "(Advanced) Advertised Tx Power"	},
> +	{ "a3c87506-8ed3-4bdf-8a39-a01bebede295", "Lock State"				},
> +	{ "a3c87507-8ed3-4bdf-8a39-a01bebede295", "Unlock"				},
> +	{ "a3c87508-8ed3-4bdf-8a39-a01bebede295", "Public ECDH Key"			},
> +	{ "a3c87509-8ed3-4bdf-8a39-a01bebede295", "EID Identity Key"			},
> +	{ "a3c8750a-8ed3-4bdf-8a39-a01bebede295", "ADV Slot Data"			},
> +	{ "a3c8750b-8ed3-4bdf-8a39-a01bebede295", "(Advanced) Factory reset"		},
> +	{ "a3c8750c-8ed3-4bdf-8a39-a01bebede295", "(Advanced) Remain Connectable"	},
> +	{ NULL, NULL }

Just us an empty { } here.

> +};
> +

I am fine doing it this way, but since we might add more than just Eddystone, maybe this should be split in a prefix match table and then subtable for UUID-16 or UUID-32 matches. Main reason is so that we can prefix these with Eddystone or other project/company/vendor names. Other a UUID name that just says "Unlock" for example is a bit to generic and misleading.

> const char *uuid16_to_str(uint16_t uuid)
> {
> 	int i;
> @@ -567,6 +587,7 @@ const char *uuid128_to_str(const unsigned char *uuid)
> 
> const char *uuidstr_to_str(const char *uuid)
> {
> +	int i;
> 	uint32_t val;

Generally I prefer that i iteration variable come last.

> 
> 	if (!uuid)
> @@ -575,6 +596,11 @@ const char *uuidstr_to_str(const char *uuid)
> 	if (strlen(uuid) != 36)
> 		return NULL;
> 
> +	for (i = 0; uuid128_table[i].str; i++) {
> +		if (strcasecmp(uuid128_table[i].uuid, uuid) == 0)
> +			return uuid128_table[i].str;
> +	}
> +
> 	if (strncasecmp(uuid + 8, "-0000-1000-8000-00805f9b34fb", 28))
> 		return "Vendor specific";

Regards

Marcel

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux