use of org.jupnp.model.meta.DeviceDetails in project smarthome by eclipse.
the class HueBridgeDiscoveryParticipantOSGITest method setUp.
@Before
public void setUp() {
discoveryParticipant = getService(UpnpDiscoveryParticipant.class, HueBridgeDiscoveryParticipant.class);
assertThat(discoveryParticipant, is(notNullValue()));
try {
final RemoteService remoteService = null;
hueDevice = new RemoteDevice(new RemoteDeviceIdentity(new UDN("123"), 60, new URL("http://hue"), null, null), new DeviceType("namespace", "type"), new DeviceDetails(new URL("http://1.2.3.4/"), "Hue Bridge", new ManufacturerDetails("Philips"), new ModelDetails("Philips hue bridge"), "serial123", "upc", null), remoteService);
otherDevice = new RemoteDevice(new RemoteDeviceIdentity(new UDN("567"), 60, new URL("http://acme"), null, null), new DeviceType("namespace", "type"), new DeviceDetails("Some Device", new ManufacturerDetails("Taiwan"), new ModelDetails("$%&/"), "serial567", "upc"), remoteService);
} catch (final ValidationException | MalformedURLException ex) {
Assert.fail("Internal test error.");
}
}
use of org.jupnp.model.meta.DeviceDetails in project smarthome by eclipse.
the class FSInternetRadioDiscoveryParticipantJavaTest method createUnknownRemoteDevice.
private RemoteDevice createUnknownRemoteDevice() throws ValidationException, MalformedURLException {
int deviceIdentityMaxAgeSeconds = 60;
RemoteDeviceIdentity identity = new RemoteDeviceIdentity(new UDN("unknownUDN"), deviceIdentityMaxAgeSeconds, new URL("http://unknownDescriptorURL"), null, null);
URL anotherBaseURL = new URL("http://unknownBaseUrl");
String friendlyName = "Unknown remote device";
ManufacturerDetails manifacturerDetails = new ManufacturerDetails("UnknownManifacturer");
ModelDetails modelDetails = new ModelDetails("unknownModel");
String serialNumber = "unknownSerialNumber";
DeviceDetails deviceDetails = new DeviceDetails(anotherBaseURL, friendlyName, manifacturerDetails, modelDetails, serialNumber, DEFAULT_UPC, DEFAULT_URI);
final RemoteService remoteService = null;
return new RemoteDevice(identity, DEFAULT_TYPE, deviceDetails, remoteService);
}
use of org.jupnp.model.meta.DeviceDetails in project smarthome by eclipse.
the class FSInternetRadioDiscoveryParticipant method getIp.
private String getIp(RemoteDevice device) {
final DeviceDetails details = device.getDetails();
if (details != null) {
if (details.getBaseURL() != null) {
return details.getBaseURL().getHost();
}
}
final RemoteDeviceIdentity identity = device.getIdentity();
if (identity != null) {
if (identity.getDescriptorURL() != null) {
return identity.getDescriptorURL().getHost();
}
}
return null;
}
use of org.jupnp.model.meta.DeviceDetails in project smarthome by eclipse.
the class FSInternetRadioDiscoveryParticipant method getThingUID.
/**
* If <code>device</code> is a supported device, a unique thing ID (e.g. serial number) must be returned. Further
* supported devices should be added here, based on the available UPnP information.
*/
@Override
public ThingUID getThingUID(RemoteDevice device) {
final DeviceDetails details = device.getDetails();
if (details != null) {
final ManufacturerDetails manufacturerDetails = details.getManufacturerDetails();
final String manufacturer = manufacturerDetails == null ? null : manufacturerDetails.getManufacturer();
final ModelDetails modelDetails = details.getModelDetails();
if (modelDetails != null) {
// check manufacturer and model number
final String modelNumber = modelDetails.getModelNumber();
if (modelNumber != null) {
if (manufacturer != null) {
final Set<String> supportedRadios = SUPPORTED_RADIO_MODELS.get(manufacturer.trim().toUpperCase());
if (supportedRadios != null && supportedRadios.contains(modelNumber.toUpperCase())) {
return new ThingUID(THING_TYPE_RADIO, details.getSerialNumber());
}
}
// check model name and number
final String modelName = modelDetails.getModelName();
if (modelName != null) {
final Set<String> supportedRadios = SUPPORTED_RADIO_MODELS.get(modelName.trim().toUpperCase());
if (supportedRadios != null && supportedRadios.contains(modelNumber.toUpperCase())) {
return new ThingUID(THING_TYPE_RADIO, details.getSerialNumber());
}
}
}
}
// maybe we can add further indicators, whether the device is a supported one
}
// device not supported
return null;
}
use of org.jupnp.model.meta.DeviceDetails in project smarthome by eclipse.
the class FSInternetRadioDiscoveryParticipantJavaTest method createDefaultFSInternetRadioDevice.
private RemoteDevice createDefaultFSInternetRadioDevice(URL baseURL) throws ValidationException {
ManufacturerDetails manifacturerDetails = new ManufacturerDetails(DEFAULT_RADIO_MANIFACTURER);
ModelDetails modelDetails = new ModelDetails(DEFAULT_RADIO_MODEL_NAME, DEFAULT_RADIO_MODEL_DESCRIPTION, DEFAULT_RADIO_MODEL_NUMBER);
DeviceDetails deviceDetails = new DeviceDetails(baseURL, DEFAULT_RADIO_NAME, manifacturerDetails, modelDetails, DEFAULT_RADIO_SERIAL_NUMBER, DEFAULT_UPC, DEFAULT_URI);
final RemoteService remoteService = null;
return new RemoteDevice(DEFAULT_RADIO_IDENTITY, DEFAULT_TYPE, deviceDetails, remoteService);
}
Aggregations