Jump to content

Recommended Posts

Posted

Boa tarde,

Estou a desenvolver um projecto que tem como base a comunicação entre duas máquinas, um host e um client(pc), e estou com algumas dúvidas de qual o caminho a seguir para conseguirmos receber dados enviados pelo host para o client através de uma determinada porta.

Tenho que ter um DatagramSocket, e alguma função para conseguir receber os dados pretendidos certo?

Agradecia alguma ajuda,

Obrigado.

FCoelho

Posted (edited)

Basicamente , eu tenho um robô que é controlado via wireless, já consigo ligá-lo, movê-lo,etc.

Neste momento estou na fase em que tenho que receber e tratar os dados que ele envia, tipo velocidade, posição, nivel de bateria,entre outros.

Está a dizer que não posso usar sockets para isso?

Edited by MaxUpGenGros

FCoelho

Posted

isso podes ... mas o que podias fazer era explicar com clareza o que pretendes.

quando dizes :

Este exemplo poderá ser usado para uma aplicação via wireless para receber dados como posição, velocidade,etc do host?

uma pessoa pensa que estás a referir-te a dados referentes à ligação wireless ...

mas agora vens dizer :

Basicamente , eu tenho um robô que é controlado via wireless, já consigo ligá-lo, movê-lo,etc.

Neste momento estou na fase em que tenho que receber e tratar os dados que ele envia, tipo velocidade, posição, nivel de bateria,entre outros.

que não tem nada haver nem com o wireless, muito menos com a ligação ...

---------

uma ligação de dados serve somente para isso : uma ligação de dados

que dados envias, isso já é contigo

IRC : sim, é algo que ainda existe >> #p@p
Posted

Peço desculpa. 😞

Só que eu nunca falei em nada disto, e estou a ter bastantes dificuldades em prosseguir, pois não estou mesmo a conseguir ver os dados que recebo.

Esclarecendo, com os sockets consigo fazer o que pretendo certo?

Enviar comandos ao robô, e receber e tratar os dados que ele me envia, mais especificamente, dados como a posição dele, a velocidade,etc.

Mais para a frente vou ter de tratar a imagem que ele envia, mas isso ainda não é para já.

Deu para perceber mais ou menos?

Peço desculpa se estou a ser pouco esclarecedor.

Já agora o robô é o ArDrone.

FCoelho

Posted

Pois, da mesma forma que secalhar, perguntar se os dados que está a enviar são Serializable não é de fácil percepção para ele. Mas é importante perguntar, porque se não forem, é normal que do outro lado não os esteja a conseguir ler.

Posted (edited)

queres explicar Remote Method Invocation a uma pessoa que não só não sabe para que serve uma socket como nem se deu ao trabalho de ler o tutorial que lhe foi apresentado ?

boa sorte ...

HappyHippo, membros como tu não ajudam de certeza quem aparece aqui com dúvidas, e percebe pouco do que está a falar.

Membros com arrogância e que pensam que sabem tudo e mais alguma coisa dispenso.

Se não queres responder agradeço que não voltes ao meu tópico e deixes responder á vontade quem estiver disponivel para me tentar ajudar.

Obrigado.

O meu problema não está em criar uma simples conexão entre o cliente e o servidor(para isso existe "n" exemplos na internet), a minha questão é um bocado mais complexa do que isso(penso eu).

Por exemplo:

byte[] buf_snd = {0x01, 0x00, 0x00, 0x00};
DatagramPacket packet_snd = new DatagramPacket(buf_snd, buf_snd.length, inet_addr, ARDrone.NAVDATA_PORT);

Não sabendo o pacote que estou a receber, como o posso receber?

Penso que no código em cima estará uma possivel solução para o meu problema, mas não consigo percebê-lo.

Sex Pistols não conheço RMI, mas vou dar uma olhada nisso.Obrigado

Edited by MaxUpGenGros

FCoelho

Posted

agradeço que não voltes ao meu tópico e deixes responder á vontade quem estiver disponivel para me tentar ajudar.

foi perguntado como fazer ligações de dados, ao qual foi respondido com um tutorial da Oracle

se não queres que responda, sim senhora, não voltarei a responder

IRC : sim, é algo que ainda existe >> #p@p
Posted

Precisas de saber qual é a "linguagem" usada nos pacotes que vais receber, isto é, qual é a linguagem que o teu robô fala.

Em princípio vais receber uma sequência de bytes. Depois a questão que se coloca é qual o seu significado. Mas aqui não tens outra hipótese para além de procurar documentação sobre o produto que tens, para saberes interpretar os bytes.

Quando envias comandos tens o mesmo problema. Precisas de saber que linguagem o robô fala para saber como lhe transmitir informação.

Em princípio receber dados não é assim tão diferente de enviar.

  • 2 weeks later...
Posted

Olá MaxUpGenGros,

vi ali em cima ARDrone. Estás a trabalhar com um Drone? Um colega meu na Faculdade teve a preparar um ARDrone para a futurália e conseguiu muito bem utilizando Python.

Quando trabalhas com Sockets, no fundo tu não sabes que pacote estás a receber. Tens um InputStream que te está a ler os pacotes que chegam ao Socket, e tu só tens que voltar a "pô-los" como foram enviados. É aí que entra a vantagem de utilizares uma linguagem OO. Envias informação com toByteArray(info) e recuperas do outro lado com um arrayToObject(info).

Cumprimentos,

Hugo

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.