Skip to content

Commit

Permalink
BLE Service Change
Browse files Browse the repository at this point in the history
BLE Service Change
  • Loading branch information
jin-paul committed Feb 17, 2022
1 parent 67bba73 commit 3a6ca7a
Show file tree
Hide file tree
Showing 9 changed files with 2,020 additions and 1,994 deletions.
49 changes: 36 additions & 13 deletions ble_service.c
Original file line number Diff line number Diff line change
Expand Up @@ -154,27 +154,47 @@ void ble_service_on_ble_evt(ble_evt_t const *p_ble_evt, void *p_context) {

}

static uint32_t device_model_number_char_add(ble_service_t *p_service,
const ble_service_init_t *p_service_init) {

unsigned char init_data[] = { "AA-MB-05" };

ble_add_char_params_t add_char_params;

memset(&add_char_params, 0, sizeof(add_char_params));
add_char_params.uuid = DEVICE_MODEL_NUMBER_UUID_CHAR;
add_char_params.init_len = 8;
add_char_params.max_len = 8;
add_char_params.char_props.read = 1;
add_char_params.p_init_value = init_data;
add_char_params.read_access = SEC_OPEN;

return characteristic_add(p_service->device_service_handle,
&add_char_params, &p_service->device_info_model_number_handles);

}

static uint32_t device_serial_number_char_add(ble_service_t *p_service,
const ble_service_init_t *p_service_init) {

unsigned char init_data[] = { "00000000" };
unsigned char init_data[] = { "0000000000000000" };

ble_add_char_params_t add_char_params;

memset(&add_char_params, 0, sizeof(add_char_params));
add_char_params.uuid = DEVICE_SERIAL_UUID_CHAR;
add_char_params.init_len = 9;
add_char_params.max_len = 9;
add_char_params.uuid = DEVICE_SERIAL_NUMBER_UUID_CHAR;
add_char_params.init_len = 16;
add_char_params.max_len = 16;
add_char_params.char_props.read = 1;
add_char_params.p_init_value = init_data;
add_char_params.read_access = SEC_OPEN;

return characteristic_add(p_service->device_service_handle,
&add_char_params, &p_service->device_info_serial_handles);
&add_char_params, &p_service->device_info_serial_number_handles);

}

static uint32_t device_hw_char_add(ble_service_t *p_service,
static uint32_t device_hw_revision_char_add(ble_service_t *p_service,
const ble_service_init_t *p_service_init) {

unsigned char init_data[] = { "0.0.1" };
Expand All @@ -183,19 +203,19 @@ static uint32_t device_hw_char_add(ble_service_t *p_service,

memset(&add_char_params, 0, sizeof(add_char_params));

add_char_params.uuid = DEVICE_HW_UUID_CHAR;
add_char_params.uuid = DEVICE_HW_REVISION_UUID_CHAR;
add_char_params.init_len = 5;
add_char_params.max_len = 5;
add_char_params.char_props.read = 1;
add_char_params.p_init_value = init_data;
add_char_params.read_access = SEC_OPEN;

return characteristic_add(p_service->device_service_handle,
&add_char_params, &p_service->device_info_hw_handles);
&add_char_params, &p_service->device_info_hw_revision_handles);

}

static uint32_t device_sw_char_add(ble_service_t *p_service,
static uint32_t device_sw_revision_char_add(ble_service_t *p_service,
const ble_service_init_t *p_service_init) {

unsigned char init_data[] = { "0.0.1" };
Expand All @@ -204,15 +224,15 @@ static uint32_t device_sw_char_add(ble_service_t *p_service,

memset(&add_char_params, 0, sizeof(add_char_params));

add_char_params.uuid = DEVICE_SW_UUID_CHAR;
add_char_params.uuid = DEVICE_SW_REVISION_UUID_CHAR;
add_char_params.init_len = 5;
add_char_params.max_len = 5;
add_char_params.char_props.read = 1;
add_char_params.p_init_value = init_data;
add_char_params.read_access = SEC_OPEN;

return characteristic_add(p_service->device_service_handle,
&add_char_params, &p_service->device_info_sw_handles);
&add_char_params, &p_service->device_info_sw_revision_handles);

}

Expand Down Expand Up @@ -249,13 +269,16 @@ uint32_t ble_service_device_info_init(ble_service_t *p_service,
&p_service->device_info_service_handle);
VERIFY_SUCCESS(err_code);

err_code = device_model_number_char_add(p_service, p_service_init);
VERIFY_SUCCESS(err_code);

err_code = device_serial_number_char_add(p_service, p_service_init);
VERIFY_SUCCESS(err_code);

err_code = device_hw_char_add(p_service, p_service_init);
err_code = device_hw_revision_char_add(p_service, p_service_init);
VERIFY_SUCCESS(err_code);

err_code = device_sw_char_add(p_service, p_service_init);
err_code = device_sw_revision_char_add(p_service, p_service_init);
VERIFY_SUCCESS(err_code);

err_code = device_manufacturer_char_add(p_service, p_service_init);
Expand Down
14 changes: 8 additions & 6 deletions ble_service.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,10 @@ NRF_SDH_BLE_OBSERVER(_name ## _obs,
ble_service_on_ble_evt, &_name)

#define DEVICE_INFO_UUID_SERVICE 0x180A
#define DEVICE_SERIAL_UUID_CHAR 0x2A25
#define DEVICE_HW_UUID_CHAR 0x2A27
#define DEVICE_SW_UUID_CHAR 0x2A28
#define DEVICE_MODEL_NUMBER_UUID_CHAR 0x2A24
#define DEVICE_SERIAL_NUMBER_UUID_CHAR 0x2A25
#define DEVICE_HW_REVISION_UUID_CHAR 0x2A27
#define DEVICE_SW_REVISION_UUID_CHAR 0x2A28
#define DEVCIE_MANUFACTURER_CHAR 0x2A29

#define BLE_UUID_BASE {0xBD, 0xE9, 0x6A, 0xF2, 0x08, 0x69, 0x11, 0xEC, \
Expand Down Expand Up @@ -106,9 +107,10 @@ typedef struct {
struct ble_service_s {

uint16_t device_info_service_handle;
ble_gatts_char_handles_t device_info_serial_handles;
ble_gatts_char_handles_t device_info_hw_handles;
ble_gatts_char_handles_t device_info_sw_handles;
ble_gatts_char_handles_t device_info_model_number_handles;
ble_gatts_char_handles_t device_info_serial_number_handles;
ble_gatts_char_handles_t device_info_hw_revision_handles;
ble_gatts_char_handles_t device_info_sw_revision_handles;
ble_gatts_char_handles_t device_info_manufacturer_handles;

uint8_t uuid_type;
Expand Down
12 changes: 4 additions & 8 deletions main.c
Original file line number Diff line number Diff line change
Expand Up @@ -995,17 +995,13 @@ int main(void) {

if (m_conn_handle == BLE_CONN_HANDLE_INVALID) {

if (data_update_state == 0x00) {
adversting_stop();

adversting_stop();
gap_params_init();

gap_params_init();
advertising_init(data_update_state);

advertising_init(data_update_state);

advertising_start();

}
advertising_start();

}

Expand Down
Binary file modified pca10040/s132/armgcc/_build/nrf52832_xxaa.bin
Binary file not shown.
Loading

0 comments on commit 3a6ca7a

Please sign in to comment.