On Thu, Jun 23, 2016 at 4:00 PM, will sanfilippo <[email protected]> wrote:
>> On Jun 23, 2016, at 2:35 PM, chris collins <[email protected]> wrote:
>> * Nimble:
>>    * The application can either manually specify the contents of a
>>      notification (ble_gattc_notify_custom()), or have the stack read
>>      the contents of the associated characteristic
>>      (ble_gattc_notify()).
>>
>>    * Notifications can be sent to any peer at any time.  Subscription
>>      is not necessary.
>>
>> * Thoughts:
>>    * I think the ability to send free-form notifications is important.
>>      Notifications are the only way for a server to send unsolicited
>>      data to a client, and giving the application more freedom in this
>>      area opens up the possibility of using bluetooth as a generic
>>      transport layer for application protocols.
>>
> I wonder if latter softdevices have added this capability? Does seem
> like a handy thing to have.

I was also surprised, but I didn't see it in any of the soft device
APIs.  I very well could have missed it.

>> **** Timeouts
>> * S130:
>>    * Timeouts are 16-bit values expresssed in seconds.
>>
>> * Nimble:
>>    * Timeouts are 32-bit values expressed in milliseconds.
>>
> Are these for user-defined timeouts? Does the specification define
> some of these timeouts or is it up to the app? How much space would be
> saved using 16-bit timeouts? Just curious.

I should have been more specific.  Yes, these are for user-specified
timeouts.  The application specifies this value when it initiates a
scan, advertise, or connect procedure.

I think the memory savings is negligible.  But then, an application
probably doesn't need millisecond precision for these procedures.  The
nimble host already uses milliseconds internally, so I thought it made
sense to use the same units in the API.

>> **** Privacy
>> * S130:
>>    * Application specifies a single own-address-type for all
>>      connections.
>>
>> * Nimble:
>>    * Application specifies an own-address-type per connection.
>>
>> * Thoughts:
>>    * It isn't clear to me how the S130 generates a resolvable private
>>      address if the application never specifies an identity address to
>>      use.
>>
> Does the softdevice allow for any of the own address types to be used?
> When you say “single own address type” for all connections does this
> apply to both master and slave? Is the S130 specification only for
> peripherals or can it be either a central or peripheral?

The S130 is both central and peripheral.  I believe the device uses the
same address for all roles.  At least, that is my interpretation of the
sd_ble_gap_address_set() documention
(https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s130.api.v2.0.0/group___b_l_e___g_a_p___f_u_n_c_t_i_o_n_s.html?cp=3_6_2_1_0_2_1_2_1#ga78b1e409a55beedde9902e2c35a5b5c9)

I did find an answer to my previous question, though (what identity
address does the S130 use initially).  I was looking at the 1.0
documentation earlier; the 2.0 documentation answers this question (from
the same page mentioned above):

    By default the SoftDevice will set an address of type
    BLE_GAP_ADDR_TYPE_RANDOM_STATIC upon being enabled. The address is a
    random number populated during the IC manufacturing process and
    remains unchanged for the lifetime of each IC.

Thanks,
Chris

Reply via email to