+
+ /** Defines a service attribute with a contents that can fit into an 16-bit integer.
+ *
+ * \param name Name of the attribute (used to identify the attribute variable only)
+ * \param type Type of attribute contents, a value from the \ref ServiceDiscovery_DataTypes_t enum
+ * \param size Size of the data, in bytes
+ * \param ... Data to associate with the attribute
+ */
+ #define SERVICE_ATTRIBUTE_LEN16(name, type, size, ...) const ServiceAttributeData16Bit_t name PROGMEM = \
+ {.Header = (type | 6), .Size = size, .Data = __VA_ARGS__}
+
+ /** Defines a service attribute with a contents that can fit into an 32-bit integer.
+ *
+ * \param name Name of the attribute (used to identify the attribute variable only)
+ * \param type Type of attribute contents, a value from the \ref ServiceDiscovery_DataTypes_t enum
+ * \param size Size of the data, in bytes
+ * \param ... Data to associate with the attribute
+ */
+ #define SERVICE_ATTRIBUTE_LEN32(name, type, size, ...) const ServiceAttributeData32Bit_t name PROGMEM = \
+ {.Header = (type | 7), .Size = size, .Data = __VA_ARGS__}
+
+ /** Terminator for a service attribute table of type \ref ServiceAttributeTable_t. */
+ #define SERVICE_ATTRIBUTE_TABLE_TERMINATOR {.Data = NULL}
+
+ /* Enums: */
+ enum ServiceDiscovery_DataTypes_t
+ {
+ SDP_DATATYPE_Nill = (0 << 3),
+ SDP_DATATYPE_UnsignedInt = (1 << 3),
+ SDP_DATATYPE_SignedInt = (2 << 3),
+ SDP_DATATYPE_UUID = (3 << 3),
+ SDP_DATATYPE_String = (4 << 3),
+ SDP_DATATYPE_Boolean = (5 << 3),
+ SDP_DATATYPE_Sequence = (6 << 3),
+ SDP_DATATYPE_Alternative = (7 << 3),
+ SDP_DATATYPE_URL = (8 << 3),
+ };