From cfa47eb8cdd0d86cc564c4a7765b505973fdb06a Mon Sep 17 00:00:00 2001 From: Martin/Geno <geno+dev@fireorbit.de> Date: Wed, 21 Aug 2019 10:19:06 +0200 Subject: [PATCH] ble: card10 svc - rewrite WIP --- epicardium/ble/card10.c | 67 ++++++++++++++++++++++++++++++----------- 1 file changed, 50 insertions(+), 17 deletions(-) diff --git a/epicardium/ble/card10.c b/epicardium/ble/card10.c index e7aa58fa..65d974ea 100644 --- a/epicardium/ble/card10.c +++ b/epicardium/ble/card10.c @@ -85,7 +85,7 @@ enum { /* BLE UUID for card10 service*/ static const uint8_t UUID_svc[] = { CARD10_UUID_SUFFIX, 0x0, CARD10_UUID_PREFIX }; - +static const uint16_t UUID_len = sizeof(UUID_svc); // starting at 0x01 with write (non visual) charateristics @@ -95,6 +95,7 @@ static const uint8_t UUID_char_time[] = { UINT16_TO_BYTES(CARD10_TIME_UPDATE_VAL_HDL), CARD10_UUID_SUFFIX, 0x01, CARD10_UUID_PREFIX }; +static const uint16_t UUID_char_len = sizeof(UUID_char_time); static const uint8_t UUID_attChar_time[] = { CARD10_UUID_SUFFIX, 0x01, CARD10_UUID_PREFIX @@ -239,24 +240,54 @@ static const uint8_t UUID_attChar_light_sensor[] = { /* * Create the BLE service description. */ -static void *addCard10GroupDyn(void) + +static const attsAttr_t card10SvcAttrList[] = +{ + { + attPrimSvcUuid, + (uint8_t *) UUID_svc, + (uint16_t *) &UUID_len, + sizeof(UUID_svc), + 0, + ATTS_PERMIT_READ + }, + { + attChUuid, + (uint8_t *) UUID_char_time, + (uint16_t *) &UUID_char_len, + sizeof(UUID_char_time), + 0, + ATTS_PERMIT_READ + }, + { + attDnChUuid, + UUID_attChar_time, + (uint16_t *) &UUID_len, + sizeof(UUID_attChar_time), + 0, + sizeof(uint64_t), + ATTS_SET_WRITE_CBACK, + (ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC | ATTS_PERMIT_WRITE_AUTH) + }, +}; + +static attsGroup_t svcCard10Group = +{ + NULL, + (attsAttr_t *) card10SvcAttrList, + NULL, + NULL, + CARD10_START_HDL, + CARD10_END_HDL, +}; + +/* +static void *addCard10Group(void) { void *pSHdl; uint8_t initLightSensorValue[] = { UINT16_TO_BYTES(0) }; - /* Create the service */ - pSHdl = AttsDynCreateGroup(CARD10_START_HDL, CARD10_END_HDL); - if (pSHdl != NULL) { - /* Primary service */ - AttsDynAddAttrConst( - pSHdl, - attPrimSvcUuid, - UUID_svc, - sizeof(UUID_svc), - 0, - ATTS_PERMIT_READ - ); // TIME UPDTAE @@ -274,7 +305,7 @@ static void *addCard10GroupDyn(void) UUID_attChar_time, NULL, 0, - sizeof(uint64_t), + Ysizeof(uint64_t), ATTS_SET_WRITE_CBACK, ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC | ATTS_PERMIT_WRITE_AUTH); @@ -535,6 +566,7 @@ static void *addCard10GroupDyn(void) } return pSHdl; } +*/ /* * Set the time given in milliseconds since 1.1.1970 as 64 bit integer. @@ -712,6 +744,7 @@ static uint8_t readCard10CB( void bleCard10_init(void) { - void *pSHdl = addCard10GroupDyn(); - AttsDynRegister(pSHdl, readCard10CB, writeCard10CB); + AttsAddGroup(&svcCard10Group); + svcCard10Group.readCback = readCard10CB; + svcCard10Group.writeCback = writeCard10CB; } -- GitLab