// 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;
    }
  }
Esempio n. 3
0
  /** 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;
 }