// Returns the first device regardless of type at the given address, if any public static Device getAnyDevice(InetAddress socket) { if (upnpService != null) { for (Device d : upnpService.getRegistry().getDevices()) { try { InetAddress devsocket = InetAddress.getByName(getURL(d).getHost()); if (devsocket.equals(socket)) { return d; } } catch (Exception e) { } } } return null; }
@Test public void sendMessageToTV() throws Exception { final boolean[] tests = new boolean[1]; UpnpService upnpService = new MockUpnpService(); LocalDevice device = MessageBoxSampleData.createDevice(MyTV.class); upnpService.getRegistry().addDevice(device); MessageSMS msg = new MessageSMS( new DateTime("2010-06-21", "16:34:12"), new NumberName("1234", "The Receiver"), new NumberName("5678", "The Sender"), "Hello World!"); LocalService service = device.findService(new ServiceId("samsung.com", "MessageBoxService")); // DOC: S1 upnpService .getControlPoint() .execute( new AddMessage(service, msg) { @Override public void success(ActionInvocation invocation) { // All OK tests[0] = true; // DOC: EXC1 } @Override public void failure( ActionInvocation invocation, UpnpResponse operation, String defaultMsg) { // Something is wrong } }); // DOC: S1 for (boolean test : tests) { assert test; } for (boolean test : ((LocalService<MyTV>) service).getManager().getImplementation().tests) { assert test; } }
/** Returns the UPnP service used for port mapping. */ private static Service findConnectionService(UpnpService upnpService) { class ConnectionServiceDiscoverer extends PortMappingListener { ConnectionServiceDiscoverer() { super(new PortMapping[0]); } @Override public Service discoverConnectionService(Device device) { return super.discoverConnectionService(device); } } ConnectionServiceDiscoverer discoverer = new ConnectionServiceDiscoverer(); Collection<Device> devices = upnpService.getRegistry().getDevices(); for (Device device : devices) { Service service = discoverer.discoverConnectionService(device); if (service != null) { return service; } } return null; }
@Override public void run() { try { UpnpService upnpService = new UpnpServiceImpl(); // Adiciona um verificador de novos registros de dispositivos UPNP / Add a listener for device // registration events upnpService.getRegistry().addListener(createRegistryListener(upnpService)); // Envia a mensagem de busca de novos dispositivos UPNP para todos os dispositivos da rede / // Broadcast a search message for all devices // Acontece só uma vez upnpService.getControlPoint().search(new STAllHeader()); Scanner scanner = new Scanner(System.in); String command = ""; while (!"quit".equals(command)) { command = scanner.next(); // leitor de comandos do servidor de borda if ("getDevices".equals(command)) { Collection<Device> devices = upnpService.getRegistry().getDevices(); int devicessize = devices.size(); System.out.printf("Esses são os dispositivos locais ( %d )\n", devicessize); System.out.println(Arrays.toString(upnpService.getRegistry().getDevices().toArray())); RemoteDevice newdevice; for (int i = 0; i < devices.size(); i++) { newdevice = (RemoteDevice) devices.toArray()[i]; System.out.println(newdevice.getDetails().getFriendlyName()); } } else if ("exec".equals(command)) { /*Collection<Device> devices = upnpService.getRegistry().getDevices(); ServiceId serviceId = new UDAServiceId("NodoTemp"); RemoteDevice newdevice; for(int i = 0 ; i < devices.size() ; i++){ newdevice = (RemoteDevice) devices.toArray()[i]; Service edgeServer; if ((edgeServer = newdevice.findService(serviceId)) != null) { //AÇÃO A SER EXECUTADA QUANDO ENCONTRADO DISPOSITIVO //ADICIONAR O DISPOSITIVO EM ALGUM LUGAR PRA MONITORAMENTO executeAction(upnpService, edgeServer); } }*/ } else if ("countCadGateways".equals(command)) { synchronized (gatewaysCadastrados) { System.out.println(gatewaysCadastrados.size()); } } } System.exit(0); } catch (Exception ex) { System.err.println("Exception occured: " + ex); System.exit(1); } }
public static Device getDevice(String uuid) { return uuid != null && upnpService != null ? upnpService.getRegistry().getDevice(UDN.valueOf(uuid), false) : null; }