Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
L
lufa
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Erik Strand
lufa
Commits
b98158bd
Commit
b98158bd
authored
14 years ago
by
Dean Camera
Browse files
Options
Downloads
Patches
Plain Diff
Clean up the Service tables, add incomplete ProtocolDescriptorList attribute to the SDP service.
parent
32ab52a2
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.c
+68
-45
68 additions, 45 deletions
Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.c
Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.h
+19
-7
19 additions, 7 deletions
Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.h
with
87 additions
and
52 deletions
Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.c
+
68
−
45
View file @
b98158bd
...
...
@@ -34,7 +34,11 @@ const struct
{
uint8_t
Header
;
uint32_t
Data
;
}
PROGMEM
SDP_Attribute_ServiceHandle
=
{(
SDP_DATATYPE_UnsignedInt
|
SDP_DATASIZE_32Bit
),
SWAPENDIAN_32
(
0x00010000
)};
}
PROGMEM
SDP_Attribute_ServiceHandle
=
{
(
SDP_DATATYPE_UnsignedInt
|
SDP_DATASIZE_32Bit
),
SWAPENDIAN_32
(
0x00010000
),
};
const
struct
{
...
...
@@ -43,12 +47,29 @@ const struct
ItemUUID_t
UUIDList
[];
}
PROGMEM
SDP_Attribute_ServiceClassIDs
=
{
.
Header
=
(
SDP_DATATYPE_Sequence
|
SDP_DATASIZE_Variable16Bit
),
.
Size
=
SWAPENDIAN_16
(
sizeof
(
ItemUUID_t
)
*
1
),
.
UUIDList
=
(
SDP_DATATYPE_Sequence
|
SDP_DATASIZE_Variable16Bit
),
SWAPENDIAN_16
(
sizeof
(
ItemUUID_t
)
*
1
),
{
{(
SDP_DATATYPE_UUID
|
SDP_DATASIZE_128Bit
),
{
BASE_80BIT_UUID
,
{
0x00
,
0x00
,
0x00
,
0x00
,
0x10
,
0x00
}}}
}
};
const
struct
{
uint8_t
Header
;
uint16_t
Size
;
ItemProtocol_t
ProtocolList
[];
}
PROGMEM
SDP_Attribute_ProtocolDescriptor
=
{
(
SDP_DATATYPE_Sequence
|
SDP_DATASIZE_Variable16Bit
),
SWAPENDIAN_16
(
sizeof
(
ItemProtocol_t
)
*
1
),
{
{
{.
Header
=
(
SDP_DATATYPE_UUID
|
SDP_DATASIZE_128Bit
),
.
UUID
=
{
BASE_80BIT_UUID
,
{
0x00
,
0x00
,
0x00
,
0x00
,
0x10
,
0x00
}},}
(
SDP_DATATYPE_Sequence
|
SDP_DATASIZE_Variable8Bit
),
sizeof
(
UUID_t
),
{(
SDP_DATATYPE_UUID
|
SDP_DATASIZE_128Bit
),
{
BASE_80BIT_UUID
,
{
0x00
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
}}},
}
}
};
const
struct
...
...
@@ -58,12 +79,11 @@ const struct
Item16Bit_t
VersionList
[];
}
PROGMEM
SDP_Attribute_Version
=
{
.
Header
=
(
SDP_DATATYPE_Sequence
|
SDP_DATASIZE_Variable8Bit
),
.
Size
=
(
sizeof
(
Item16Bit_t
)
*
1
),
.
VersionList
=
{
{.
Header
=
(
SDP_DATATYPE_UnsignedInt
|
SDP_DATASIZE_16Bit
),
.
Value
=
SWAPENDIAN_16
(
0x0100
)}
}
(
SDP_DATATYPE_Sequence
|
SDP_DATASIZE_Variable8Bit
),
(
sizeof
(
Item16Bit_t
)
*
1
),
{
{(
SDP_DATATYPE_UnsignedInt
|
SDP_DATASIZE_16Bit
),
SWAPENDIAN_16
(
0x0100
)}
}
};
const
struct
...
...
@@ -73,9 +93,9 @@ const struct
char
Text
[];
}
PROGMEM
SDP_Attribute_ServiceName
=
{
.
Header
=
(
SDP_DATATYPE_String
|
SDP_DATASIZE_Variable8Bit
),
.
Size
=
sizeof
(
"SDP"
)
-
1
,
.
Text
=
"SDP"
,
(
SDP_DATATYPE_String
|
SDP_DATASIZE_Variable8Bit
),
(
sizeof
(
"SDP"
)
-
1
)
,
"SDP"
,
};
const
struct
...
...
@@ -85,19 +105,20 @@ const struct
char
Text
[];
}
PROGMEM
SDP_Attribute_ServiceDescription
=
{
.
Header
=
(
SDP_DATATYPE_String
|
SDP_DATASIZE_Variable8Bit
),
.
Size
=
sizeof
(
"Service Discovery Protocol Server"
)
-
1
,
.
Text
=
"Service Discovery Protocol Server"
,
(
SDP_DATATYPE_String
|
SDP_DATASIZE_Variable8Bit
),
(
sizeof
(
"Service Discovery Protocol Server"
)
-
1
)
,
"Service Discovery Protocol Server"
,
};
/** Service Discovery Protocol attribute table, listing all supported attributes of the service. */
const
ServiceAttributeTable_t
SDP_Attribute_Table
[]
PROGMEM
=
{
{.
AttributeID
=
SDP_ATTRIBUTE_ID_SERVICERECORDHANDLE
,
.
Data
=
&
SDP_Attribute_ServiceHandle
},
{.
AttributeID
=
SDP_ATTRIBUTE_ID_SERVICECLASSIDS
,
.
Data
=
&
SDP_Attribute_ServiceClassIDs
},
{.
AttributeID
=
SDP_ATTRIBUTE_ID_VERSION
,
.
Data
=
&
SDP_Attribute_Version
},
{.
AttributeID
=
SDP_ATTRIBUTE_ID_SERVICENAME
,
.
Data
=
&
SDP_Attribute_ServiceName
},
{.
AttributeID
=
SDP_ATTRIBUTE_ID_SERVICEDESCRIPTION
,
.
Data
=
&
SDP_Attribute_ServiceDescription
},
{.
AttributeID
=
SDP_ATTRIBUTE_ID_SERVICERECORDHANDLE
,
.
Data
=
&
SDP_Attribute_ServiceHandle
},
{.
AttributeID
=
SDP_ATTRIBUTE_ID_SERVICECLASSIDS
,
.
Data
=
&
SDP_Attribute_ServiceClassIDs
},
// {.AttributeID = SDP_ATTRIBUTE_ID_PROTOCOLDESCRIPTORLIST, .Data = &SDP_Attribute_ProtocolDescriptor },
{.
AttributeID
=
SDP_ATTRIBUTE_ID_VERSION
,
.
Data
=
&
SDP_Attribute_Version
},
{.
AttributeID
=
SDP_ATTRIBUTE_ID_SERVICENAME
,
.
Data
=
&
SDP_Attribute_ServiceName
},
{.
AttributeID
=
SDP_ATTRIBUTE_ID_SERVICEDESCRIPTION
,
.
Data
=
&
SDP_Attribute_ServiceDescription
},
SERVICE_ATTRIBUTE_TABLE_TERMINATOR
};
...
...
@@ -106,7 +127,11 @@ const struct
{
uint8_t
Header
;
uint32_t
Data
;
}
PROGMEM
RFCOMM_Attribute_ServiceHandle
=
{(
SDP_DATATYPE_UnsignedInt
|
SDP_DATASIZE_32Bit
),
SWAPENDIAN_32
(
0x00010001
)};
}
PROGMEM
RFCOMM_Attribute_ServiceHandle
=
{
(
SDP_DATATYPE_UnsignedInt
|
SDP_DATASIZE_32Bit
),
SWAPENDIAN_32
(
0x00010001
),
};
const
struct
{
...
...
@@ -115,12 +140,11 @@ const struct
ItemUUID_t
UUIDList
[];
}
PROGMEM
RFCOMM_Attribute_ServiceClassIDs
=
{
.
Header
=
(
SDP_DATATYPE_Sequence
|
SDP_DATASIZE_Variable16Bit
),
.
Size
=
SWAPENDIAN_16
(
sizeof
(
ItemUUID_t
)
*
1
),
.
UUIDList
=
{
{.
Header
=
(
SDP_DATATYPE_UUID
|
SDP_DATASIZE_128Bit
),
.
UUID
=
{
BASE_80BIT_UUID
,
{
0x00
,
0x00
,
0x00
,
0x00
,
0x11
,
0x01
}},}
}
(
SDP_DATATYPE_Sequence
|
SDP_DATASIZE_Variable16Bit
),
SWAPENDIAN_16
(
sizeof
(
ItemUUID_t
)
*
1
),
{
{(
SDP_DATATYPE_UUID
|
SDP_DATASIZE_128Bit
),
{
BASE_80BIT_UUID
,
{
0x00
,
0x00
,
0x00
,
0x00
,
0x11
,
0x01
}}}
}
};
const
struct
...
...
@@ -130,12 +154,11 @@ const struct
Item16Bit_t
OffsetList
[];
}
PROGMEM
RFCOMM_Attribute_LangOffset
=
{
.
Header
=
(
SDP_DATATYPE_Sequence
|
SDP_DATASIZE_Variable8Bit
),
.
Size
=
(
sizeof
(
Item16Bit_t
)
*
1
),
.
OffsetList
=
{
{.
Header
=
(
SDP_DATATYPE_UnsignedInt
|
SDP_DATASIZE_16Bit
),
.
Value
=
SWAPENDIAN_16
(
0x0100
)}
}
(
SDP_DATATYPE_Sequence
|
SDP_DATASIZE_Variable8Bit
),
(
sizeof
(
Item16Bit_t
)
*
1
),
{
{(
SDP_DATATYPE_UnsignedInt
|
SDP_DATASIZE_16Bit
),
SWAPENDIAN_16
(
0x0100
)}
}
};
const
struct
...
...
@@ -145,9 +168,9 @@ const struct
char
Text
[];
}
PROGMEM
RFCOMM_Attribute_ServiceName
=
{
.
Header
=
(
SDP_DATATYPE_String
|
SDP_DATASIZE_Variable8Bit
),
.
Size
=
sizeof
(
"Serial Port"
)
-
1
,
.
Text
=
"Serial Port"
,
(
SDP_DATATYPE_String
|
SDP_DATASIZE_Variable8Bit
),
sizeof
(
"Serial Port"
)
-
1
,
"Serial Port"
,
};
const
struct
...
...
@@ -157,17 +180,17 @@ const struct
char
Text
[];
}
PROGMEM
RFCOMM_Attribute_ServiceDescription
=
{
.
Header
=
(
SDP_DATATYPE_String
|
SDP_DATASIZE_Variable8Bit
),
.
Size
=
sizeof
(
"Wireless Serial Port Service"
)
-
1
,
.
Text
=
"Wireless Serial Port Service"
,
(
SDP_DATATYPE_String
|
SDP_DATASIZE_Variable8Bit
),
sizeof
(
"Wireless Serial Port Service"
)
-
1
,
"Wireless Serial Port Service"
,
};
const
ServiceAttributeTable_t
RFCOMM_Attribute_Table
[]
PROGMEM
=
{
{.
AttributeID
=
SDP_ATTRIBUTE_ID_SERVICERECORDHANDLE
,
.
Data
=
&
RFCOMM_Attribute_ServiceHandle
},
{.
AttributeID
=
SDP_ATTRIBUTE_ID_SERVICECLASSIDS
,
.
Data
=
&
RFCOMM_Attribute_ServiceClassIDs
},
{.
AttributeID
=
SDP_ATTRIBUTE_ID_SERVICENAME
,
.
Data
=
&
RFCOMM_Attribute_ServiceName
},
{.
AttributeID
=
SDP_ATTRIBUTE_ID_SERVICEDESCRIPTION
,
.
Data
=
&
RFCOMM_Attribute_ServiceDescription
},
{.
AttributeID
=
SDP_ATTRIBUTE_ID_SERVICERECORDHANDLE
,
.
Data
=
&
RFCOMM_Attribute_ServiceHandle
},
{.
AttributeID
=
SDP_ATTRIBUTE_ID_SERVICECLASSIDS
,
.
Data
=
&
RFCOMM_Attribute_ServiceClassIDs
},
{.
AttributeID
=
SDP_ATTRIBUTE_ID_SERVICENAME
,
.
Data
=
&
RFCOMM_Attribute_ServiceName
},
{.
AttributeID
=
SDP_ATTRIBUTE_ID_SERVICEDESCRIPTION
,
.
Data
=
&
RFCOMM_Attribute_ServiceDescription
},
SERVICE_ATTRIBUTE_TABLE_TERMINATOR
};
This diff is collapsed.
Click to expand it.
Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.h
+
19
−
7
View file @
b98158bd
...
...
@@ -48,6 +48,7 @@
#define SDP_ATTRIBUTE_ID_SERVICERECORDHANDLE 0x0000
#define SDP_ATTRIBUTE_ID_SERVICECLASSIDS 0x0001
#define SDP_ATTRIBUTE_ID_PROTOCOLDESCRIPTORLIST 0x0004
#define SDP_ATTRIBUTE_ID_VERSION 0x0200
#define SDP_ATTRIBUTE_ID_SERVICENAME 0x0100
#define SDP_ATTRIBUTE_ID_SERVICEDESCRIPTION 0x0101
...
...
@@ -87,13 +88,6 @@
const
void
*
AttributeTable
;
/**< Pointer to the UUID's attribute table, located in PROGMEM memory space */
}
ServiceTable_t
;
/** Structure for a list of Data Elements containing UUIDs, for service attributes requiring UUID lists. */
typedef
struct
{
uint8_t
Header
;
/**< Data Element header, should be (SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit) */
UUID_t
UUID
;
/**< UUID to store in the list Data Element */
}
ItemUUID_t
;
/** Structure for a list of Data Elements containing 8-bit integers, for service attributes requiring such lists. */
typedef
struct
{
...
...
@@ -115,6 +109,24 @@
uint32_t
Value
;
/**< Value to store in the list Data Element */
}
Item32Bit_t
;
/** Structure for a list of Data Elements containing UUIDs, for service attributes requiring UUID lists. */
typedef
struct
{
uint8_t
Header
;
/**< Data Element header, should be (SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit) */
UUID_t
UUID
;
/**< UUID to store in the list Data Element */
}
ItemUUID_t
;
/** Structure for a list of Data Elements Sequences containing UUID Data Elements, for service attributes requiring
* protocol lists.
*/
typedef
struct
{
uint8_t
Header
;
/**< Data Element header, should be (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit) */
uint8_t
Size
;
/**< Size of the inner Data Element sequence */
ItemUUID_t
UUID
;
/**< UUID to store in the protocol list Data Element sequence */
}
ItemProtocol_t
;
/* External Variables: */
extern
const
ServiceAttributeTable_t
SDP_Attribute_Table
[];
extern
const
ServiceAttributeTable_t
RFCOMM_Attribute_Table
[];
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment