aboutsummaryrefslogtreecommitdiff
path: root/TODO
blob: 2c17c6b9a0e888ab788793ad7caf0f40d212a1cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
Background
==========

- Priority scale: High, Medium and Low

- Complexity scale: C1, C2, C4 and C8.  The complexity scale is exponential,
  with complexity 1 being the lowest complexity.  Complexity is a function
  of both task 'complexity' and task 'scope'.

  The general rule of thumb is that a complexity 1 task should take 1-2 weeks
  for a person very familiar with BlueZ codebase.  Higher complexity tasks
  require more time and have higher uncertainty.

  Higher complexity tasks should be refined into several lower complexity tasks
  once the task is better understood.

LE Generic Access Profile
=========================

- Device Name Characteristic is a GAP characteristic for Low Energy. This
  characteristic shall be integrated/used in the discovery procedure. The
  ideia is to report the value of this characteristic using DeviceFound signals.
  Discussion with the community is needed before to start this task. Other GAP
  characteristics for LE needs to follow a similar approach. It is not clear
  if all GAP characteristics can be exposed using properties instead of a primary
  service characteristics.
  See Volume 3, Part C, section 12.1 for more information.

  Priority: Low
  Complexity: C2

ATT/GATT
========

- Add ATT/GATT parsing to hcidump

  Priority: Medium
  Complexity: C2

- GATT server: fix MTU exchange

  Priority: Medium
  Complexity: C2

- GATT server: fix read by UUID (read by handle works)

  Priority: Medium
  Complexity: C2

- gatttool: add an interactive command prompt mode. Many LE devices
  expect the connection to stay up a long time and disable advertising
  after a disconnection so it's inconvenient to use gatttool in the
  current "single operation at a time" mode.

  Priority: Medium
  Complexity: C2

- gatttool should have the ability to wait for req responses before
  quitting (some servers require a small sleep even with cmd's). Maybe a
  --delay-exit or --timeout command line switch.

  Priority: Low
  Complexity: C1

- Client needs to export a property in the Device Characteristic hierarchy
  to manage characteristic value changes reports in the remote device.
  Currently, Client Characteristic Configuration attribute is not exposed
  as an object. The user needs to use gatttool to change the value of the
  this attribute to receive notification/indications. Export this attribute
  as a property is a proposal that needs further discussion.

  Priority: Low
  Complexity: C1

- Attribute server should process queued GATT/ATT commands if the
  client disconnects. The client can simply send a command and quit,
  without wait for a response(ex: Write Command). For this scenario
  that the client disconnects the link quickly the queued received
  command is ignored.

  Priority: Low
  Complecity: C1

- Add sdp discovery support to gattool with BR (--sdp, default is 0x1f)

  Priority: Low
  Complexity: C1

- Add command line support to use medium instead of (default) low
  security level with gatttool (--sec-level)

  Priority: Low
  Complexity: C1

- Implement Server characteristic Configuration support in the attribute
  server to manage characteristic value broadcasting. There is a single
  instance of the Server Characteristic Configuration for all clients.
  See Volume 3, Part G, section 3.3.3.4 for more information.

  Priority: Low
  Complexity: C1

- Long reads/writes don't work (consisting of multiple request packets)

  Priority: Low
  Complexity: C2

- Attribute server shall implement attribute permission verification,
  returning an error code if necessary. See Volume 3, Part F, 3.2.5
  for more information.

  Priority: Low
  Complexity: C2

- Implement Client Characteristic Configuration support in the attribute
  server to manage indications and notications. This is a per client attribute
  to control how the client wants to receive reports of changes in a given
  characteristic value.
  See Volume 3, Part G, section 3.3.3.3 for more information

  Priority: Low
  Complexity: C2