The documentation simply says: 1 for variable length and 0 for fixed length.
What exactly does changing this do? Do I save space by setting it to fixed? Why does BDS set it to 1 by default.
The documentation simply says: 1 for variable length and 0 for fixed length.
What exactly does changing this do? Do I save space by setting it to fixed? Why does BDS set it to 1 by default.
Hi,
is_var_len indicates if the user characteristic descriptor has variable length or not. When you are setting up characteristics there is a vlen field can be set to mark a characteristic as variable length. A characteristic can either be of constant length (vlen = 0), or of variable length (vlen = 1).
E.g. for the UART characteristics, it makes sense to have vlen = 1, since you may want to transmit any size of data from e.g. 1 to 20 bytes. But, e.g. for the Temperature Type, which is a fixed length characteristic (it has 8 bits and every bit is fixed),vlen should be 0.
Thanks for the info. I think I answered the question myself. It would appear that since my notification characteristic doesn't always send 20 bytes of data (the last packet sent won't always be 20 Bytes aligned), that is_var_len needs to be set to true.
Thanks for the info. I think I answered the question myself. It would appear that since my notification characteristic doesn't always send 20 bytes of data (the last packet sent won't always be 20 Bytes aligned), that is_var_len needs to be set to true.