package com.adafruit.bluefruit.le.connect.ble;
import com.adafruit.bluefruit.le.connect.app.UartInterfaceActivity;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class KnownUUIDs extends StandardUUIDs {
// Service UUIDs
private static final Map<String, String> sServiceUUIDs;
static {
Map<String, String> aMap = new HashMap<>();
aMap.put("0000febb-0000-1000-8000-00805f9b34fb".toUpperCase(), "Adafruit Unified Sensor");
aMap.put(UartInterfaceActivity.UUID_SERVICE.toUpperCase(), "Nordic UART");
aMap.put("00001530-1212-efde-1523-785feabcd123".toUpperCase(), "Nordic Device Firmware Update Service");
aMap.put("ee0c2080-8786-40ba-ab96-99b91ac981d8".toUpperCase(), "Eddystone-URL Config Service");
aMap.put("8D53DC1D-1DB7-4CD3-868B-8A527460AA84".toUpperCase(), "Newtmgr Service");
sServiceUUIDs = Collections.unmodifiableMap(aMap);
}
// Characteristic UUIDs
private static final Map<String, String> sCharacteristicUUIDs;
static {
Map<String, String> aMap = new HashMap<>();
// Unified
aMap.put("B71E0102-7E57-4AFE-EB1E-5CA1AB1E1DEA".toUpperCase(), "Static Sensor Info");
aMap.put("B71E0103-7E57-4AFE-EB1E-5CA1AB1E1DEA".toUpperCase(), "Dynamic Sensor Info");
aMap.put("b71e0104-7e57-4afe-eb1e-5ca1ab1e1dea".toUpperCase(), "Sensor Data");
aMap.put("00002a24-0000-1000-8000-00805f9b34fb".toUpperCase(), "Model Number");
aMap.put("00001530-1212-efde-1523-785feabcd123".toUpperCase(), "Nordic Device Firmware Update Service");
// DFU
aMap.put("00001532-1212-efde-1523-785feabcd123".toUpperCase(), "DFU Packet");
aMap.put("00001531-1212-efde-1523-785feabcd123".toUpperCase(), "DFU Control Point");
aMap.put("00001534-1212-efde-1523-785feabcd123".toUpperCase(), "DFU Version");
// Uart
aMap.put(UartInterfaceActivity.UUID_RX.toUpperCase(), "RX Buffer");
aMap.put(UartInterfaceActivity.UUID_TX.toUpperCase(), "TX Buffer");
aMap.put(UartInterfaceActivity.UUID_DFU.toUpperCase(), "DFU Service");
// Eddystone
aMap.put("ee0c2081-8786-40ba-ab96-99b91ac981d8".toUpperCase(), "Eddystone Lock State");
aMap.put("ee0c2082-8786-40ba-ab96-99b91ac981d8".toUpperCase(), "Eddystone Lock");
aMap.put("ee0c2083-8786-40ba-ab96-99b91ac981d8".toUpperCase(), "Eddystone Unlock");
aMap.put("ee0c2084-8786-40ba-ab96-99b91ac981d8".toUpperCase(), "Eddystone URI Data");
aMap.put("ee0c2085-8786-40ba-ab96-99b91ac981d8".toUpperCase(), "Eddystone Flags");
aMap.put("ee0c2086-8786-40ba-ab96-99b91ac981d8".toUpperCase(), "Eddystone Adv. TX Power Levels");
aMap.put("ee0c2087-8786-40ba-ab96-99b91ac981d8".toUpperCase(), "Eddystone TX Power Mode");
aMap.put("ee0c2088-8786-40ba-ab96-99b91ac981d8".toUpperCase(), "Eddystone Beacon Period");
aMap.put("ee0c2089-8786-40ba-ab96-99b91ac981d8".toUpperCase(), "Eddystone Reset");
aMap.put("ee0c2090-8786-40ba-ab96-99b91ac981d8".toUpperCase(), "Eddystone (Reserved)");
// Newtmgr
aMap.put("DA2E7828-FBCE-4E01-AE9E-261174997C48".toUpperCase(), "Newtmgr Characteristic");
sCharacteristicUUIDs = Collections.unmodifiableMap(aMap);
}
// Descriptors UUIDs
private static final Map<String, String> sDescriptorUUIDs;
static {
Map<String, String> aMap = new HashMap<>();
sDescriptorUUIDs = Collections.unmodifiableMap(aMap);
}
// Public Getters
public static String getServiceName(String uuid) {
String result;
uuid = uuid.toUpperCase(); // To avoid problems with lowercase/uppercase
result = sServiceUUIDs.get(uuid);
if (result == null) {
result = StandardUUIDs.getServiceName(uuid);
}
return result;
}
public static String getCharacteristicName(String uuid) {
String result;
uuid = uuid.toUpperCase(); // To avoid problems with lowercase/uppercase
result = sCharacteristicUUIDs.get(uuid);
if (result == null) {
result = StandardUUIDs.getCharacteristicName(uuid);
}
return result;
}
public static String getDescriptorName(String uuid) {
String result;
uuid = uuid.toUpperCase(); // To avoid problems with lowercase/uppercase
result = sDescriptorUUIDs.get(uuid);
if (result == null) {
result = StandardUUIDs.getDescriptorName(uuid);
}
return result;
}
}