blob: 1d16d39228592a1b6e1006c8e97bdd9234acce26 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
#ifndef H_BLE_SVC_DIS_
#define H_BLE_SVC_DIS_
/**
* Example:
*
* char firmware_revision[20] = '?.?.?';
* struct image_version iv;
* if (!imgr_my_version(&iv)) {
* snprintf(firmware_revision, sizeof(firmware_revision),
* "%u.%u.%u", iv.iv_major, iv.iv_minor, iv.iv_revision);
* }
* ble_svc_dis_manufacturer_name_set("MyNewt");
* ble_svc_dis_firmware_revision_set(firmware_revision);
*
*/
#define BLE_SVC_DIS_UUID16 0x180A
#define BLE_SVC_DIS_CHR_UUID16_MODEL_NUMBER 0x2A24
#define BLE_SVC_DIS_CHR_UUID16_SERIAL_NUMBER 0x2A25
#define BLE_SVC_DIS_CHR_UUID16_FIRMWARE_REVISION 0x2A26
#define BLE_SVC_DIS_CHR_UUID16_HARDWARE_REVISION 0x2A27
#define BLE_SVC_DIS_CHR_UUID16_SOFTWARE_REVISION 0x2A28
#define BLE_SVC_DIS_CHR_UUID16_MANUFACTURER_NAME 0x2A29
/**
* Structure holding data for the main characteristics
*/
struct ble_svc_dis_data {
/**
* Model number.
* Represent the model number that is assigned by the device vendor.
*/
const char *model_number;
/**
* Serial number.
* Represent the serial number for a particular instance of the device.
*/
const char *serial_number;
/**
* Firmware revision.
* Represent the firmware revision for the firmware within the device.
*/
const char *firmware_revision;
/**
* Hardware revision.
* Represent the hardware revision for the hardware within the device.
*/
const char *hardware_revision;
/**
* Software revision.
* Represent the software revision for the software within the device.
*/
const char *software_revision;
/**
* Manufacturer name.
* Represent the name of the manufacturer of the device.
*/
const char *manufacturer_name;
};
/**
* Variable holding data for the main characteristics.
*/
extern struct ble_svc_dis_data ble_svc_dis_data;
/**
* Service initialisation.
* Automatically called during package initialisation.
*/
void ble_svc_dis_init(void);
const char *ble_svc_dis_model_number(void);
int ble_svc_dis_model_number_set(const char *value);
const char *ble_svc_dis_serial_number(void);
int ble_svc_dis_serial_number_set(const char *value);
const char *ble_svc_dis_firmware_revision(void);
int ble_svc_dis_firmware_revision_set(const char *value);
const char *ble_svc_dis_hardware_revision(void);
int ble_svc_dis_hardware_revision_set(const char *value);
const char *ble_svc_dis_software_revision(void);
int ble_svc_dis_software_revision_set(const char *value);
const char *ble_svc_dis_manufacturer_name(void);
int ble_svc_dis_manufacturer_name_set(const char *value);
#endif