- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Servidor y Cliente RPC - Dona Torus RPC en 3D OpenGL
Dona RPC Control Manual y Automático
👽👽👽👽👽👽👽👽👽👽
💓💓💓💓
Les comparto un proyecto hecho en Java usando librerias OpenGL y XMLRPC para lograr una comunicación RPC con el cliente y servidor.
El objetivo es controlar el giro de la Dona:
Control manual
- Iniciar Giro
- Detener Giro
- Aumentar velocidad del giro
- Disminuir la velocidad del giro
Control automático
- Ingresar ID de la maquina donde se ejecutara
- Ingresar el tiempo en mili segundos que tardara ejecutándose
- Se debe registrar el tiempo de inicio, el tiempo de ejecución, y el numero de fragmentos de la tarea.
En la parte del servidor RPC y donde se encuentra el dibujo en 3D ahí se inicia el Servidor: En la clase Main.java
La parte del código que presente es lo mas esencial para manipular la comunicación y el control de la dona.
Cualquier duda, comentario o sugerencia pueden dejar su comentario en la parte de abajo, o escribirme a mi correo y Facebook.
Link de la explicación:
Link de descarga del proyecto completo:
Descargar
http://raboninco.com/GlqC
Espero les sea de ayuda.
Creado por Iván Luis Jiménez.
Ivanovich.
Dona RPC Control Manual y Automático
👽👽👽👽👽👽👽👽👽👽
💓💓💓💓
Les comparto un proyecto hecho en Java usando librerias OpenGL y XMLRPC para lograr una comunicación RPC con el cliente y servidor.
El objetivo es controlar el giro de la Dona:
Control manual
- Iniciar Giro
- Detener Giro
- Aumentar velocidad del giro
- Disminuir la velocidad del giro
Control automático
- Ingresar ID de la maquina donde se ejecutara
- Ingresar el tiempo en mili segundos que tardara ejecutándose
- Se debe registrar el tiempo de inicio, el tiempo de ejecución, y el numero de fragmentos de la tarea.
En la parte del servidor RPC y donde se encuentra el dibujo en 3D ahí se inicia el Servidor: En la clase Main.java
//Iván Luis Jiménez try { WebServer server = new WebServer(8080); server.addHandler("Maquina1", canvas); server.start(); frame.setTitle("Servidor Dona RPC"); frame.setSize(p1.getWidth() + p2.getWidth(), p1.getHeight()); frame.setVisible(true); animator.start(); } catch (Exception e) { }En la clase MiLienzo.java se encuentran los metodos que el administrador utilizara para controlar la dona.
Timer timer = new Timer(tiempo, new ActionListener() { public void actionPerformed(ActionEvent e) { giraMas(); } }); public void setan(double angulo) { anguloz += angulo; } public void giraMas() { setan(5); this.display(); } int tiempo2 = 50; public int aumentar(int i) { System.out.println(""+tiempo); tiempo -= 10; if (tiempo <= 50) { tiempo2 -= 5; timer.setDelay(tiempo2); if (tiempo2 <= 1) { timer.setDelay(1); tiempo = 0; } } else { timer.setDelay(tiempo); } this.display(); return 0; } public int disminuir(int i) { System.out.println(""+tiempo); if(tiempo < 0){ tiempo = 0; } tiempo += 10; tiempo2 =50; timer.setDelay(tiempo); this.display(); return 0; } public int iniciar(int i) { if(!timer.isRunning()){ timer.start(); } return 1; } public int terminar(int i) { if(timer.isRunning()){ timer.stop(); } return 1; }Esto fue la parte del Servidor. Ahora en la parte del Administrador, la parte mas importante es la siguiente: Se encuentra las acciones para invocar a los procedimientos remotos; Control Manual
public void iniciar() { try { XmlRpcClient cliente = new XmlRpcClient("http://localhost:8080/"); Object result = cliente.execute("Maquina1.iniciar", dat); int client = (Integer) result; salida.setText(1 + mi); } catch (Exception e) { System.out.println("" + e.getMessage()); } } public void aumentar() { try { XmlRpcClient cliente = new XmlRpcClient("http://localhost:8080/"); Object result = cliente.execute("Maquina1.aumentar", dat); int client = (Integer) result; } catch (Exception e) { System.out.println("" + e.getMessage()); } } public void disminuir() { try { XmlRpcClient cliente = new XmlRpcClient("http://localhost:8080/"); Object result = cliente.execute("Maquina1.disminuir", dat); int client = (Integer) result; } catch (Exception e) { System.out.println("" + e.getMessage()); } } public void terminar() { try { XmlRpcClient cliente = new XmlRpcClient("http://localhost:8080/"); Object result = cliente.execute("Maquina1.terminar", dat); int client = (Integer) result; salida.setText(1 + mt); } catch (Exception e) { } }Para el control automático en la parte del administrador se tubo que programar una accion que se ejecutase en un tiempo determinado. Ese tiempo lo daría el administrador en milisegundos.
if(!id.getText().isEmpty() && !tiempo.getText().isEmpty()){ a = new Tarea(Integer.parseInt(id.getText()), Long.parseLong(tiempo.getText()), modeloTabla); a.start(); }Cuando la tarea se inicia se manda a invocar el procedimiento remoto de iniciar el giro en la maquina indicada. Despues se deja programado un proceso para que se ejecute en el tiempo que el administrador indico.
public void run() { ob.iniciarP(id); String hora = obtner_hora(); int frag = getAllStackTraces().size(); timer.schedule(new TimerTask() { @Override public void run() { ob.terminarP(id); ob.limpiartabla(); ob.actualizar_tabla(id, hora, tiempo, frag, modeloTabla); } }, tiempo); this.stop(); }
La parte del código que presente es lo mas esencial para manipular la comunicación y el control de la dona.
Cualquier duda, comentario o sugerencia pueden dejar su comentario en la parte de abajo, o escribirme a mi correo y Facebook.
Link de la explicación:
Link de descarga del proyecto completo:
Descargar
http://raboninco.com/GlqC
Espero les sea de ayuda.
Creado por Iván Luis Jiménez.
Ivanovich.
Cliente RPC
Dona RPC
Hilos o tareas con RPC
Hilos RPC
Opengl
OpenGL 3D
Procesos Hilos
Servidor Cliente RPC
Servidor RPC
Thread con RPC
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Comentarios
pero manda la dona
ResponderBorrarSi te la mando
Borrarmanda la dona
ResponderBorrar