diff --git a/src/ble/gatt-service/device_information_service_server.c b/src/ble/gatt-service/device_information_service_server.c index e1d4fd09f..5172f5a89 100644 --- a/src/ble/gatt-service/device_information_service_server.c +++ b/src/ble/gatt-service/device_information_service_server.c @@ -123,6 +123,14 @@ void device_information_service_server_init(void){ int service_found = gatt_server_get_get_handle_range_for_service_with_uuid16(ORG_BLUETOOTH_SERVICE_DEVICE_INFORMATION, &start_handle, &end_handle); if (!service_found) return; + // set length for fixed size characateristics + device_information_fields[SYSTEM_ID].data = device_information_system_id; + device_information_fields[SYSTEM_ID].len = 8; + device_information_fields[IEEE_REGULATORY_CERTIFICATION].data = device_information_ieee_regulatory_certification; + device_information_fields[IEEE_REGULATORY_CERTIFICATION].len = 4; + device_information_fields[PNP_ID].data = device_information_pnp_id; + device_information_fields[PNP_ID].len = 7; + // get characteristic value handles int i; for (i=0;i> 32; little_endian_store_16(device_information_system_id, 5, organizationally_unique_identifier); @@ -206,9 +211,6 @@ void device_information_service_server_set_system_id(uint64_t manufacturer_ident * @param ieee_regulatory_certification */ void device_information_service_server_set_ieee_regulatory_certification(uint16_t value_a, uint16_t value_b){ - device_information_fields[IEEE_REGULATORY_CERTIFICATION].data = device_information_ieee_regulatory_certification; - device_information_fields[IEEE_REGULATORY_CERTIFICATION].len = 4; - little_endian_store_16(device_information_ieee_regulatory_certification, 0, value_a); little_endian_store_16(device_information_ieee_regulatory_certification, 2, value_b); } @@ -220,9 +222,6 @@ void device_information_service_server_set_ieee_regulatory_certification(uint16_ * @param product_id */ void device_information_service_server_set_pnp_id(uint8_t vendor_source_id, uint16_t vendor_id, uint16_t product_id, uint16_t product_version){ - device_information_fields[PNP_ID].data = device_information_pnp_id; - device_information_fields[PNP_ID].len = 7; - device_information_pnp_id[0] = vendor_source_id; little_endian_store_16(device_information_pnp_id, 1, vendor_id); little_endian_store_16(device_information_pnp_id, 3, product_id);