Skip to content
Snippets Groups Projects
Commit 9c1b4e55 authored by genofire's avatar genofire
Browse files

Merge branch 'ble-fileTrans-const-init' into 'master'

Ble file trans const init

See merge request !181
parents 76acf664 21a99831
No related branches found
No related tags found
No related merge requests found
...@@ -78,115 +78,101 @@ enum { ...@@ -78,115 +78,101 @@ enum {
}; };
/* BLE File transfer Service UUID */ /* BLE File transfer Service UUID */
static const uint8_t fileTransSvc[] = { FILE_TRANS_UUID_SUFFIX, static const uint8_t fileTransSvc[] = { FILE_TRANS_UUID_SUFFIX,
0x00, 0x00,
FILE_TRANS_UUID_PREFIX }; FILE_TRANS_UUID_PREFIX };
static const uint16_t fileTransSvc_len = sizeof(fileTransSvc);
/* BLE File transfer Central TX configuration */ /* BLE File transfer Central TX configuration */
static const uint8_t txChConfig[] = { ATT_PROP_WRITE_NO_RSP, static const uint8_t txChConfig[] = { ATT_PROP_WRITE_NO_RSP,
UINT16_TO_BYTES( UINT16_TO_BYTES(
FILE_TRANS_CENTRAL_TX_VAL_HDL), FILE_TRANS_CENTRAL_TX_VAL_HDL),
FILE_TRANS_UUID_SUFFIX, FILE_TRANS_UUID_SUFFIX,
0x01, 0x01,
FILE_TRANS_UUID_PREFIX }; FILE_TRANS_UUID_PREFIX };
static const uint16_t txChConfig_len = sizeof(txChConfig);
/* BLE File transfer Central TX UUID */ /* BLE File transfer Central TX UUID */
static const uint8_t attTxChConfigUuid[] = { FILE_TRANS_UUID_SUFFIX, static const uint8_t attTxChConfigUuid[] = { FILE_TRANS_UUID_SUFFIX,
0x01, 0x01,
FILE_TRANS_UUID_PREFIX }; FILE_TRANS_UUID_PREFIX };
/* BLE File transfer Central RX configuration */ /* BLE File transfer Central RX configuration */
static const uint8_t rxChConfig[] = { ATT_PROP_READ | ATT_PROP_NOTIFY, static const uint8_t rxChConfig[] = { ATT_PROP_READ | ATT_PROP_NOTIFY,
UINT16_TO_BYTES( UINT16_TO_BYTES(
FILE_TRANS_CENTRAL_RX_VAL_HDL), FILE_TRANS_CENTRAL_RX_VAL_HDL),
FILE_TRANS_UUID_SUFFIX, FILE_TRANS_UUID_SUFFIX,
0x02, 0x02,
FILE_TRANS_UUID_PREFIX }; FILE_TRANS_UUID_PREFIX };
static const uint16_t rxChConfig_len = sizeof(rxChConfig);
/* BLE File transfer Central RX UUID */ /* BLE File transfer Central RX UUID */
static const uint8_t attRxChConfigUuid[] = { FILE_TRANS_UUID_SUFFIX, static const uint8_t attRxChConfigUuid[] = { FILE_TRANS_UUID_SUFFIX,
0x02, 0x02,
FILE_TRANS_UUID_PREFIX }; FILE_TRANS_UUID_PREFIX };
static uint8_t attRxChConfigValue[64];
static uint16_t attRxChConfigValue_len = 0;
/* File descriptor of the currently transferred file */ /* File descriptor of the currently transferred file */
static int file_fd = -1; static int file_fd = -1;
/* /* Attribute list for uriCfg group */
* Create the BLE service description. static const attsAttr_t fileTransCfgList[] = {
*/ /* Service declaration */
static void *fileTransAddGroupDyn(void) {
{ .pUuid = attPrimSvcUuid,
void *pSHdl; .pValue = (uint8_t *)fileTransSvc,
uint8_t initCcc[] = { UINT16_TO_BYTES(0x0000) }; .pLen = (uint16_t *)&fileTransSvc_len,
.maxLen = sizeof(fileTransSvc),
/* Create the service */ .settings = 0,
pSHdl = AttsDynCreateGroup(FILE_TRANS_START_HDL, FILE_TRANS_END_HDL); .permissions = ATTS_PERMIT_READ,
},
if (pSHdl != NULL) { /* File transfer Central TX characteristic */
/* Primary service */ {
AttsDynAddAttrConst( .pUuid = attChUuid,
pSHdl, .pValue = (uint8_t *)txChConfig,
attPrimSvcUuid, .pLen = (uint16_t *)&txChConfig_len,
fileTransSvc, .maxLen = sizeof(txChConfig),
sizeof(fileTransSvc), .settings = 0,
0, .permissions = ATTS_PERMIT_READ,
ATTS_PERMIT_READ },
); /* File transfer Central TX, this contains information about the real data */
{
/* File transfer Central TX characteristic */ .pUuid = attTxChConfigUuid,
AttsDynAddAttrConst( .pValue = NULL,
pSHdl, .pLen = NULL,
attChUuid, .maxLen = 128,
txChConfig, .settings = ATTS_SET_WRITE_CBACK | ATTS_SET_VARIABLE_LEN,
sizeof(txChConfig), .permissions = ATTS_PERMIT_WRITE,
0, },
ATTS_PERMIT_READ /* File transfer Central RX characteristic */
); {
.pUuid = attChUuid,
/* File transfer Central TX, this contains information about the real data */ .pValue = (uint8_t *)rxChConfig,
AttsDynAddAttr( .pLen = (uint16_t *)&rxChConfig_len,
pSHdl, .maxLen = sizeof(rxChConfig),
attTxChConfigUuid, .settings = 0,
NULL, .permissions = ATTS_PERMIT_READ,
0, },
128, /* File transfer Central RX, this contains information about the real data */
ATTS_SET_WRITE_CBACK | ATTS_SET_VARIABLE_LEN, {
ATTS_PERMIT_WRITE .pUuid = attRxChConfigUuid,
); .pValue = attRxChConfigValue,
.pLen = &attRxChConfigValue_len,
/* File transfer Central RX characteristic */ .maxLen = sizeof(attRxChConfigValue),
AttsDynAddAttrConst( .settings = ATTS_SET_VARIABLE_LEN,
pSHdl, .permissions = ATTS_PERMIT_READ,
attChUuid, },
rxChConfig, /* File transfer Central RX notification channel */
sizeof(rxChConfig), {
0, .pUuid = attCliChCfgUuid,
ATTS_PERMIT_READ .pValue = attRxChConfigValue,
); .pLen = &attRxChConfigValue_len,
.maxLen = sizeof(attRxChConfigValue),
/* File transfer Central RX, this contains information about the real data */ .settings = ATTS_SET_CCC,
AttsDynAddAttr( .permissions = ATTS_PERMIT_READ | ATTS_PERMIT_WRITE,
pSHdl, },
attRxChConfigUuid, };
NULL,
0,
64,
ATTS_SET_READ_CBACK,
ATTS_PERMIT_READ
);
/* File transfer Central RX notification channel */
AttsDynAddAttr(
pSHdl,
attCliChCfgUuid,
initCcc,
sizeof(uint16_t),
sizeof(uint16_t),
ATTS_SET_CCC,
ATTS_PERMIT_READ | ATTS_PERMIT_WRITE
);
}
return pSHdl;
}
/** /**
* Send a repose with an optional CRC. * Send a repose with an optional CRC.
...@@ -413,22 +399,17 @@ static uint8_t writeCallback( ...@@ -413,22 +399,17 @@ static uint8_t writeCallback(
} }
} }
static uint8_t readCallback( static attsGroup_t fileTransCfgGroup = {
dmConnId_t connId, .pAttr = (attsAttr_t *)fileTransCfgList,
uint16_t handle, .writeCback = writeCallback,
uint8_t operation, .startHandle = FILE_TRANS_START_HDL,
uint16_t offset, .endHandle = FILE_TRANS_END_HDL,
attsAttr_t *pAttr };
) {
LOG_ERR("filetrans", "read callback\n");
return ATT_SUCCESS;
}
/* /*
* This registers and starts the BLE file transfer service. * This registers and starts the BLE file transfer service.
*/ */
void bleFileTransfer_init(void) void bleFileTransfer_init(void)
{ {
void *pSHdl = fileTransAddGroupDyn(); AttsAddGroup(&fileTransCfgGroup);
AttsDynRegister(pSHdl, readCallback, writeCallback);
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment