1

I find https://www.bluetooth.com/specifications/specs/current-time-service-1-1/ but can not get data format.

Where give me those info?

1 Answer 1

1

The service and characteristic UUIDs should be available in the Assigned Number doc.

The Exact Time 256 is defined in the GATT Specifications Supplement, section 3.83 at this time. It is composed of a Day Date Time struct (8 bytes) followed by one byte for Fractions256.

Day Date Time is in turn defined in section 3.65, where we learn it is Date Time (7 bytes) + `Day of Week (1 byte).

Date Time in section 3.64: Year (2 bytes) + Month + Day + Hours + Minutes + Seconds (1 byte each).

The spec also details the allowed values, including 'Unknown' for the fields that allow it.

This question and answer tells us:

All of of the values are just strung together in a single bytes object from top to bottom (left to right).

Exact Time 256 + Adjust Reason(uint8)
Exact Time 256 = Day Date Time + Fractions256(uint8)

Day Date Time = Date Time + Day of Week
Date Time = Year(uint16) + Month(uint8) + Day(uint8) + Hours(uint8) + Minutes(uint8) + Seconds(uint8)
Day of Week = Day of Week(uint8) [0=unknown, 1=Monday, etc.]
Octet Meaning (left to right)
0 Year
1 Year
2 Month
3 Day
4 Hours
5 Minutes
6 Seconds
7 Day of Week (0 = unknown)
8 Fractions256 (0 = uknown)
9 Adjust Reason (0x03 = Manual Update => External Reference => No Time Zone Change => No DST Change)

This discussion also tells us that

D0070101000000000000 value for current time characteristic corresponds to 2000-01-01 00:00:00 date and time

(...)

D007(year) 01(month) 01(day) 00(Hour) 00(Minute) 00(Second) 00(Day of week) 00(Sec frac) 00(Adjust) where, year = 0x07D0 = 2000

The year is LSB first, so D0 07 -> 0x07D0 = 2000

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.