Skip to content
Snippets Groups Projects
Verified Commit e9ba6b1a authored by genofire's avatar genofire
Browse files

ble: card10 svc - rewrite

parent 8e8d8614
No related branches found
No related tags found
No related merge requests found
...@@ -85,7 +85,8 @@ enum { ...@@ -85,7 +85,8 @@ enum {
/* BLE UUID for card10 service*/ /* BLE UUID for card10 service*/
static const uint8_t UUID_svc[] = { CARD10_UUID_SUFFIX, 0x0, CARD10_UUID_PREFIX }; static const uint8_t UUID_svc[] = { CARD10_UUID_SUFFIX, 0x0, CARD10_UUID_PREFIX };
// works vor everyone?
static const uint16_t UUID_len = sizeof(UUID_svc);
// starting at 0x01 with write (non visual) charateristics // starting at 0x01 with write (non visual) charateristics
...@@ -95,6 +96,8 @@ static const uint8_t UUID_char_time[] = { ...@@ -95,6 +96,8 @@ static const uint8_t UUID_char_time[] = {
UINT16_TO_BYTES(CARD10_TIME_UPDATE_VAL_HDL), UINT16_TO_BYTES(CARD10_TIME_UPDATE_VAL_HDL),
CARD10_UUID_SUFFIX, 0x01, CARD10_UUID_PREFIX CARD10_UUID_SUFFIX, 0x01, CARD10_UUID_PREFIX
}; };
// works vor everyone?
static const uint16_t UUID_char_len = sizeof(UUID_char_time);
static const uint8_t UUID_attChar_time[] = { static const uint8_t UUID_attChar_time[] = {
CARD10_UUID_SUFFIX, 0x01, CARD10_UUID_PREFIX CARD10_UUID_SUFFIX, 0x01, CARD10_UUID_PREFIX
...@@ -234,293 +237,297 @@ static const uint8_t UUID_char_light_sensor[] = { ...@@ -234,293 +237,297 @@ static const uint8_t UUID_char_light_sensor[] = {
static const uint8_t UUID_attChar_light_sensor[] = { static const uint8_t UUID_attChar_light_sensor[] = {
CARD10_UUID_SUFFIX, 0xf0, CARD10_UUID_PREFIX CARD10_UUID_SUFFIX, 0xf0, CARD10_UUID_PREFIX
}; };
/* clang-format on */
static uint8_t initLightSensorValue[] = { UINT16_TO_BYTES(0) };
static uint16_t initLightSensorLen = sizeof(initLightSensorValue);
/* /*
* Create the BLE service description. * Create the BLE service description.
*/ */
static void *addCard10GroupDyn(void)
{
void *pSHdl;
uint8_t initLightSensorValue[] = { UINT16_TO_BYTES(0) }; static const attsAttr_t card10SvcAttrList[] =
{
/* Create the service */ {
pSHdl = AttsDynCreateGroup(CARD10_START_HDL, CARD10_END_HDL);
if (pSHdl != NULL) {
/* Primary service */
AttsDynAddAttrConst(
pSHdl,
attPrimSvcUuid, attPrimSvcUuid,
UUID_svc, (uint8_t *) UUID_svc,
(uint16_t *) &UUID_len,
sizeof(UUID_svc), sizeof(UUID_svc),
0, 0,
ATTS_PERMIT_READ ATTS_PERMIT_READ
); },
// TIME UPDTAE // TIME UPDTAE
AttsDynAddAttrConst( {
pSHdl,
attChUuid, attChUuid,
UUID_char_time, (uint8_t *) UUID_char_time,
(uint16_t *) &UUID_char_len,
sizeof(UUID_char_time), sizeof(UUID_char_time),
0, 0,
ATTS_PERMIT_READ ATTS_PERMIT_READ
); },
{
AttsDynAddAttr(
pSHdl,
UUID_attChar_time, UUID_attChar_time,
NULL, NULL,
0, 0,
sizeof(uint64_t), sizeof(uint64_t),
ATTS_SET_WRITE_CBACK, ATTS_SET_WRITE_CBACK,
ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC | (ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
ATTS_PERMIT_WRITE_AUTH); ATTS_PERMIT_WRITE_AUTH)
},
// VIBRA // VIBRA
AttsDynAddAttrConst( {
pSHdl,
attChUuid, attChUuid,
UUID_char_vibra, (uint8_t *) UUID_char_vibra,
(uint16_t *) &UUID_char_len,
sizeof(UUID_char_vibra), sizeof(UUID_char_vibra),
0, 0,
ATTS_PERMIT_READ ATTS_PERMIT_READ
); },
{
AttsDynAddAttr(
pSHdl,
UUID_attChar_vibra, UUID_attChar_vibra,
NULL, NULL,
0, 0,
sizeof(uint16_t), sizeof(uint16_t),
ATTS_SET_WRITE_CBACK, ATTS_SET_WRITE_CBACK,
ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC | (ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
ATTS_PERMIT_WRITE_AUTH); ATTS_PERMIT_WRITE_AUTH)
},
// ROCKETS // ROCKETS
AttsDynAddAttrConst( {
pSHdl,
attChUuid, attChUuid,
UUID_char_rockets, (uint8_t *) UUID_char_rockets,
(uint16_t *) &UUID_char_len,
sizeof(UUID_char_rockets), sizeof(UUID_char_rockets),
0, 0,
ATTS_PERMIT_READ ATTS_PERMIT_READ
); },
{
AttsDynAddAttr(
pSHdl,
UUID_attChar_rockets, UUID_attChar_rockets,
NULL, NULL,
0, 0,
3 * sizeof(uint8_t), 3 * sizeof(uint8_t),
ATTS_SET_WRITE_CBACK, ATTS_SET_WRITE_CBACK,
ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC | (ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
ATTS_PERMIT_WRITE_AUTH); ATTS_PERMIT_WRITE_AUTH)
},
// BG LED Bottom left // BG LED Bottom left
AttsDynAddAttrConst( {
pSHdl,
attChUuid, attChUuid,
UUID_char_led_bg_bottom_left, (uint8_t *) UUID_char_led_bg_bottom_left,
(uint16_t *) &UUID_char_len,
sizeof(UUID_char_led_bg_bottom_left), sizeof(UUID_char_led_bg_bottom_left),
0, 0,
ATTS_PERMIT_READ ATTS_PERMIT_READ
); },
{
AttsDynAddAttr(
pSHdl,
UUID_attChar_led_bg_bottom_left, UUID_attChar_led_bg_bottom_left,
NULL, NULL,
0, 0,
3 * sizeof(uint8_t), 3 * sizeof(uint8_t),
ATTS_SET_WRITE_CBACK, ATTS_SET_WRITE_CBACK,
ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC | (ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
ATTS_PERMIT_WRITE_AUTH); ATTS_PERMIT_WRITE_AUTH)
},
// BG LED Bottom right // BG LED Bottom right
AttsDynAddAttrConst( {
pSHdl,
attChUuid, attChUuid,
UUID_char_led_bg_bottom_right, (uint8_t *) UUID_char_led_bg_bottom_right,
(uint16_t *) &UUID_char_len,
sizeof(UUID_char_led_bg_bottom_right), sizeof(UUID_char_led_bg_bottom_right),
0, 0,
ATTS_PERMIT_READ ATTS_PERMIT_READ
); },
{
AttsDynAddAttr(
pSHdl,
UUID_attChar_led_bg_bottom_right, UUID_attChar_led_bg_bottom_right,
NULL, NULL,
0, 0,
3 * sizeof(uint8_t), 3 * sizeof(uint8_t),
ATTS_SET_WRITE_CBACK, ATTS_SET_WRITE_CBACK,
ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC | (ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
ATTS_PERMIT_WRITE_AUTH); ATTS_PERMIT_WRITE_AUTH)
},
// BG LED top right // BG LED top right
AttsDynAddAttrConst( {
pSHdl,
attChUuid, attChUuid,
UUID_char_led_bg_top_right, (uint8_t *) UUID_char_led_bg_top_right,
(uint16_t *) &UUID_char_len,
sizeof(UUID_char_led_bg_top_right), sizeof(UUID_char_led_bg_top_right),
0, 0,
ATTS_PERMIT_READ ATTS_PERMIT_READ
); },
{
AttsDynAddAttr(
pSHdl,
UUID_attChar_led_bg_top_right, UUID_attChar_led_bg_top_right,
NULL, NULL,
0, 0,
3 * sizeof(uint8_t), 3 * sizeof(uint8_t),
ATTS_SET_WRITE_CBACK, ATTS_SET_WRITE_CBACK,
ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC | (ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
ATTS_PERMIT_WRITE_AUTH); ATTS_PERMIT_WRITE_AUTH)
},
// BG LED top left // BG LED top left
AttsDynAddAttrConst( {
pSHdl,
attChUuid, attChUuid,
UUID_char_led_bg_top_left, (uint8_t *) UUID_char_led_bg_top_left,
(uint16_t *) &UUID_char_len,
sizeof(UUID_char_led_bg_top_left), sizeof(UUID_char_led_bg_top_left),
0, 0,
ATTS_PERMIT_READ ATTS_PERMIT_READ
); },
{
AttsDynAddAttr(
pSHdl,
UUID_attChar_led_bg_top_left, UUID_attChar_led_bg_top_left,
NULL, NULL,
0, 0,
3 * sizeof(uint8_t), 3 * sizeof(uint8_t),
ATTS_SET_WRITE_CBACK, ATTS_SET_WRITE_CBACK,
ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC | (ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
ATTS_PERMIT_WRITE_AUTH); ATTS_PERMIT_WRITE_AUTH)
},
// Dim bottom module // Dim bottom module
AttsDynAddAttrConst( {
pSHdl,
attChUuid, attChUuid,
UUID_char_leds_bottom_dim, (uint8_t *) UUID_char_leds_bottom_dim,
(uint16_t *) &UUID_char_len,
sizeof(UUID_char_leds_bottom_dim), sizeof(UUID_char_leds_bottom_dim),
0, 0,
ATTS_PERMIT_READ ATTS_PERMIT_READ
); },
{
AttsDynAddAttr(
pSHdl,
UUID_attChar_leds_bottom_dim, UUID_attChar_leds_bottom_dim,
NULL, NULL,
0, 0,
sizeof(uint8_t), sizeof(uint8_t),
ATTS_SET_WRITE_CBACK, ATTS_SET_WRITE_CBACK,
ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC | (ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
ATTS_PERMIT_WRITE_AUTH); ATTS_PERMIT_WRITE_AUTH)
},
// Dim top module // Dim top module
AttsDynAddAttrConst( {
pSHdl,
attChUuid, attChUuid,
UUID_char_leds_top_dim, (uint8_t *) UUID_char_leds_top_dim,
(uint16_t *) &UUID_char_len,
sizeof(UUID_char_leds_top_dim), sizeof(UUID_char_leds_top_dim),
0, 0,
ATTS_PERMIT_READ ATTS_PERMIT_READ
); },
{
AttsDynAddAttr(
pSHdl,
UUID_attChar_leds_top_dim, UUID_attChar_leds_top_dim,
NULL, NULL,
0, 0,
sizeof(uint8_t), sizeof(uint8_t),
ATTS_SET_WRITE_CBACK, ATTS_SET_WRITE_CBACK,
ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC | (ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
ATTS_PERMIT_WRITE_AUTH); ATTS_PERMIT_WRITE_AUTH)
},
// led powersafe // led powersafe
AttsDynAddAttrConst( {
pSHdl,
attChUuid, attChUuid,
UUID_char_led_powersafe, (uint8_t *) UUID_char_led_powersafe,
(uint16_t *) &UUID_char_len,
sizeof(UUID_char_led_powersafe), sizeof(UUID_char_led_powersafe),
0, 0,
ATTS_PERMIT_READ ATTS_PERMIT_READ
); },
{
AttsDynAddAttr(
pSHdl,
UUID_attChar_led_powersafe, UUID_attChar_led_powersafe,
NULL, NULL,
0, 0,
sizeof(uint8_t), sizeof(uint8_t),
ATTS_SET_WRITE_CBACK, ATTS_SET_WRITE_CBACK,
ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC | (ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
ATTS_PERMIT_WRITE_AUTH); ATTS_PERMIT_WRITE_AUTH)
},
// flashlight // flashlight
AttsDynAddAttrConst( {
pSHdl,
attChUuid, attChUuid,
UUID_char_flashlight, (uint8_t *) UUID_char_flashlight,
(uint16_t *) &UUID_char_len,
sizeof(UUID_char_flashlight), sizeof(UUID_char_flashlight),
0, 0,
ATTS_PERMIT_READ ATTS_PERMIT_READ
); },
{
AttsDynAddAttr(
pSHdl,
UUID_attChar_flashlight, UUID_attChar_flashlight,
NULL, NULL,
0, 0,
sizeof(uint8_t), sizeof(uint8_t),
ATTS_SET_WRITE_CBACK, ATTS_SET_WRITE_CBACK,
ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC | (ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
ATTS_PERMIT_WRITE_AUTH); ATTS_PERMIT_WRITE_AUTH)
},
// ABOVE LEDS // ABOVE LEDS
AttsDynAddAttrConst( {
pSHdl,
attChUuid, attChUuid,
UUID_char_leds_above, (uint8_t *) UUID_char_leds_above,
(uint16_t *) &UUID_char_len,
sizeof(UUID_char_leds_above), sizeof(UUID_char_leds_above),
0, 0,
ATTS_PERMIT_READ ATTS_PERMIT_READ
); },
{
AttsDynAddAttr(
pSHdl,
UUID_attChar_leds_above, UUID_attChar_leds_above,
NULL, NULL,
0, 0,
11 * 3 * sizeof(uint8_t), 11 * 3 * sizeof(uint8_t),
ATTS_SET_WRITE_CBACK, ATTS_SET_WRITE_CBACK,
ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC | (ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
ATTS_PERMIT_WRITE_AUTH); ATTS_PERMIT_WRITE_AUTH)
},
// LIGHT_SENSOR // ABOVE LEDS
AttsDynAddAttrConst( {
pSHdl,
attChUuid, attChUuid,
UUID_char_light_sensor, (uint8_t *) UUID_char_light_sensor,
(uint16_t *) &UUID_char_len,
sizeof(UUID_char_light_sensor), sizeof(UUID_char_light_sensor),
0, 0,
ATTS_PERMIT_READ ATTS_PERMIT_READ
); },
{
UUID_attChar_light_sensor,
initLightSensorValue,
&initLightSensorLen,
sizeof(uint8_t),
ATTS_SET_READ_CBACK,
(ATTS_PERMIT_READ | ATTS_PERMIT_READ_ENC |
ATTS_PERMIT_READ_AUTH)
},
};
/* clang-format on */
static attsGroup_t svcCard10Group = {
NULL,
(attsAttr_t *)card10SvcAttrList,
NULL,
NULL,
CARD10_START_HDL,
CARD10_END_HDL,
};
/*
AttsDynAddAttr( AttsDynAddAttr(
pSHdl, pSHdl,
UUID_attChar_light_sensor, UUID_attChar_light_sensor,
...@@ -530,11 +537,7 @@ static void *addCard10GroupDyn(void) ...@@ -530,11 +537,7 @@ static void *addCard10GroupDyn(void)
ATTS_SET_READ_CBACK, ATTS_SET_READ_CBACK,
ATTS_PERMIT_READ | ATTS_PERMIT_READ_ENC | ATTS_PERMIT_READ | ATTS_PERMIT_READ_ENC |
ATTS_PERMIT_READ_AUTH); ATTS_PERMIT_READ_AUTH);
*/
APP_TRACE_INFO0("ble-card10: services bound\n");
}
return pSHdl;
}
/* /*
* Set the time given in milliseconds since 1.1.1970 as 64 bit integer. * Set the time given in milliseconds since 1.1.1970 as 64 bit integer.
...@@ -548,7 +551,7 @@ static uint8_t setTime(uint8_t *pValue) ...@@ -548,7 +551,7 @@ static uint8_t setTime(uint8_t *pValue)
time = __bswap64(timeNet); time = __bswap64(timeNet);
epic_rtc_set_milliseconds(time); epic_rtc_set_milliseconds(time);
APP_TRACE_INFO1("set time to: %d\n", time); APP_TRACE_INFO1("ble-card10: set time to: %d\n", time);
return ATT_SUCCESS; return ATT_SUCCESS;
} }
...@@ -712,6 +715,7 @@ static uint8_t readCard10CB( ...@@ -712,6 +715,7 @@ static uint8_t readCard10CB(
void bleCard10_init(void) void bleCard10_init(void)
{ {
void *pSHdl = addCard10GroupDyn(); svcCard10Group.readCback = readCard10CB;
AttsDynRegister(pSHdl, readCard10CB, writeCard10CB); svcCard10Group.writeCback = writeCard10CB;
AttsAddGroup(&svcCard10Group);
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment