@@ -69,23 +69,22 @@ struct AdvertisingReportEvent {
6969 const address_t &directAddress,
7070 const mbed::Span<const uint8_t > &advertisingData
7171 ) :
72+ peerAddress(peerAddress),
7273 type(type),
7374 peerAddressType(peerAddressType),
74- peerAddress(peerAddress),
7575 primaryPhy(primaryPhy),
7676 secondaryPhy(secondaryPhy),
7777 SID(SID),
7878 txPower(txPower),
79- rssi(rssi),
8079 periodicInterval(periodicInterval),
80+ rssi(rssi),
8181 directAddressType(directAddressType),
8282 directAddress(directAddress),
8383 advertisingData(advertisingData)
8484 {
8585 }
8686
8787#endif
88-
8988 /* * Get event type. */
9089 const advertising_event_t &getType () const
9190 {
@@ -163,18 +162,44 @@ struct AdvertisingReportEvent {
163162 return advertisingData;
164163 }
165164
165+ /* * Set peer address. */
166+ void setPeerAddress (
167+ const address_t &newPeerAddress
168+ )
169+ {
170+ peerAddress = newPeerAddress;
171+ }
172+
173+
174+ /* * Set peer address type. */
175+ void setPeerAddressType (
176+ const peer_address_type_t &newPeerAddressType
177+ )
178+ {
179+ peerAddressType = newPeerAddressType;
180+ }
181+
182+ /* * Set new advertising payload. */
183+ void setAdvertisingData (
184+ const mbed::Span<const uint8_t > &newAdvertisingData
185+ )
186+ {
187+ advertisingData = newAdvertisingData;
188+ }
189+
166190private:
191+ address_t peerAddress;
167192 advertising_event_t type;
168193 peer_address_type_t peerAddressType;
169- address_t const &peerAddress;
170194 phy_t primaryPhy;
171195 phy_t secondaryPhy;
172196 advertising_sid_t SID;
173197 advertising_power_t txPower;
174- rssi_t rssi;
175198 uint16_t periodicInterval;
199+ rssi_t rssi;
176200 peer_address_type_t directAddressType;
177- const address_t &directAddress;
201+ address_t directAddress;
202+ ble_error_t status;
178203 mbed::Span<const uint8_t > advertisingData;
179204};
180205
@@ -215,12 +240,12 @@ struct ConnectionCompleteEvent {
215240 ) :
216241 status(status),
217242 connectionHandle(connectionHandle),
243+ peerAddress(peerAddress),
218244 ownRole(ownRole),
219245 peerAddressType(peerAddressType),
220- peerAddress(peerAddress),
221246 localResolvablePrivateAddress(localResolvablePrivateAddress),
222- peerResolvablePrivateAddress(peerResolvablePrivateAddress),
223247 connectionInterval(connectionInterval),
248+ peerResolvablePrivateAddress(peerResolvablePrivateAddress),
224249 connectionLatency(connectionLatency),
225250 supervisionTimeout(supervisionTimeout),
226251 masterClockAccuracy(masterClockAccuracy)
@@ -295,15 +320,46 @@ struct ConnectionCompleteEvent {
295320 return masterClockAccuracy;
296321 }
297322
323+
324+ /* * Set connection complete event status. */
325+ void setStatus (ble_error_t new_status)
326+ {
327+ status = new_status;
328+ }
329+
330+ /* * Set peer address type. */
331+ void setPeerAddressType (const peer_address_type_t & address_type)
332+ {
333+ peerAddressType = address_type;
334+ }
335+
336+ /* * Set peer address. */
337+ void setPeerAddress (const address_t &address)
338+ {
339+ peerAddress = address;
340+ }
341+
342+ /* * Set get local resolvable random address if privacy is used. */
343+ void setLocalResolvablePrivateAddress (const address_t &address)
344+ {
345+ localResolvablePrivateAddress = address;
346+ }
347+
348+ /* * Set peer resolvable private address if privacy is used. */
349+ void setPeerResolvablePrivateAddress (const address_t &address)
350+ {
351+ peerResolvablePrivateAddress = address;
352+ }
353+
298354private:
299355 ble_error_t status;
300356 connection_handle_t connectionHandle;
357+ address_t peerAddress;
301358 connection_role_t ownRole;
302359 peer_address_type_t peerAddressType;
303- const address_t &peerAddress;
304- const address_t &localResolvablePrivateAddress;
305- const address_t &peerResolvablePrivateAddress;
360+ address_t localResolvablePrivateAddress;
306361 conn_interval_t connectionInterval;
362+ address_t peerResolvablePrivateAddress;
307363 slave_latency_t connectionLatency;
308364 supervision_timeout_t supervisionTimeout;
309365 uint16_t masterClockAccuracy;
0 commit comments