static gattAttribute_t devInfoAttrTbl[] = {
? ? // Device Information Service
? ? {
? ? ? ? {ATT_BT_UUID_SIZE, primaryServiceUUID}, /* type */
? ? ? ? GATT_PERMIT_READ, ? ? ? ? ? ? ? ? ? ? ? /* permissions */
? ? ? ? 0,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* handle */
? ? ? ? (uint8_t *)&devInfoService? ? ? ? ? ? ? /* pValue */
? ? },
? ? // System ID Declaration
? ? {
? ? ? ? {ATT_BT_UUID_SIZE, characterUUID},
? ? ? ? GATT_PERMIT_READ,
? ? ? ? 0,
? ? ? ? &devInfoSystemIdProps},
? ? // System ID Value
? ? {
? ? ? ? {ATT_BT_UUID_SIZE, devInfoSystemIdUUID},
? ? ? ? GATT_PERMIT_READ,
? ? ? ? 0,
? ? ? ? (uint8_t *)devInfoSystemId},
? ? // Model Number String Declaration
? ? {
? ? ? ? {ATT_BT_UUID_SIZE, characterUUID},
? ? ? ? GATT_PERMIT_READ,
? ? ? ? 0,
? ? ? ? &devInfoModelNumberProps},
? ? // Model Number Value
? ? {
? ? ? ? {ATT_BT_UUID_SIZE, devInfoModelNumberUUID},
? ? ? ? GATT_PERMIT_READ,
? ? ? ? 0,
? ? ? ? (uint8_t *)devInfoModelNumber},
? ? // Serial Number String Declaration
? ? {
? ? ? ? {ATT_BT_UUID_SIZE, characterUUID},
? ? ? ? GATT_PERMIT_READ,
? ? ? ? 0,
? ? ? ? &devInfoSerialNumberProps},
? ? // Serial Number Value
? ? {
? ? ? ? {ATT_BT_UUID_SIZE, devInfoSerialNumberUUID},
? ? ? ? GATT_PERMIT_READ,
? ? ? ? 0,
? ? ? ? (uint8_t *)devInfoSerialNumber},
? ? // Firmware Revision String Declaration
? ? {
? ? ? ? {ATT_BT_UUID_SIZE, characterUUID},
? ? ? ? GATT_PERMIT_READ,
? ? ? ? 0,
? ? ? ? &devInfoFirmwareRevProps},
? ? // Firmware Revision Value
? ? {
? ? ? ? {ATT_BT_UUID_SIZE, devInfoFirmwareRevUUID},
? ? ? ? GATT_PERMIT_READ,
? ? ? ? 0,
? ? ? ? (uint8_t *)devInfoFirmwareRev},
? ? // Hardware Revision String Declaration
? ? {
? ? ? ? {ATT_BT_UUID_SIZE, characterUUID},
? ? ? ? GATT_PERMIT_READ,
? ? ? ? 0,
? ? ? ? &devInfoHardwareRevProps},
? ? // Hardware Revision Value
? ? {
? ? ? ? {ATT_BT_UUID_SIZE, devInfoHardwareRevUUID},
? ? ? ? GATT_PERMIT_READ,
? ? ? ? 0,
? ? ? ? (uint8_t *)devInfoHardwareRev},
? ? // Software Revision String Declaration
? ? {
? ? ? ? {ATT_BT_UUID_SIZE, characterUUID},
? ? ? ? GATT_PERMIT_READ,
? ? ? ? 0,
? ? ? ? &devInfoSoftwareRevProps},
? ? // Software Revision Value
? ? {
? ? ? ? {ATT_BT_UUID_SIZE, devInfoSoftwareRevUUID},
? ? ? ? GATT_PERMIT_READ,
? ? ? ? 0,
? ? ? ? (uint8_t *)devInfoSoftwareRev},
? ? // Manufacturer Name String Declaration
? ? {
? ? ? ? {ATT_BT_UUID_SIZE, characterUUID},
? ? ? ? GATT_PERMIT_READ,
? ? ? ? 0,
? ? ? ? &devInfoMfrNameProps},
? ? // Manufacturer Name Value
? ? {
? ? ? ? {ATT_BT_UUID_SIZE, devInfoMfrNameUUID},
? ? ? ? GATT_PERMIT_READ,
? ? ? ? 0,
? ? ? ? (uint8_t *)devInfoMfrName},
? ? // IEEE 11073-20601 Regulatory Certification Data List Declaration
? ? {
? ? ? ? {ATT_BT_UUID_SIZE, characterUUID},
? ? ? ? GATT_PERMIT_READ,
? ? ? ? 0,
? ? ? ? &devInfo11073CertProps},
? ? // IEEE 11073-20601 Regulatory Certification Data List Value
? ? {
? ? ? ? {ATT_BT_UUID_SIZE, devInfo11073CertUUID},
? ? ? ? GATT_PERMIT_READ,
? ? ? ? 0,
? ? ? ? (uint8_t *)devInfo11073Cert},
? ? // PnP ID Declaration
? ? {
? ? ? ? {ATT_BT_UUID_SIZE, characterUUID},
? ? ? ? GATT_PERMIT_READ,
? ? ? ? 0,
? ? ? ? &devInfoPnpIdProps},
? ? // PnP ID Value
? ? {
? ? ? ? {ATT_BT_UUID_SIZE, devInfoPnpIdUUID},
? ? ? ? GATT_PERMIT_READ,
? ? ? ? 0,
? ? ? ? (uint8_t *)devInfoPnpId}
};