PDF de programación - Aplicacion SmartHunter

Imágen de pdf Aplicacion SmartHunter

Aplicacion SmartHuntergráfica de visualizaciones

Publicado el 14 de Enero del 2017
475 visualizaciones desde el 14 de Enero del 2017
415,7 KB
22 paginas
Creado hace 12a (15/11/2011)
Aplicación SmartHunter

Programación concurrente y Distribuída

Curso 2011-12

Miguel Telleria, Laura Barros, J.M. Drake

telleriam AT unican.es

Computadores y Tiempo Real

http://www.ctr.unican.es

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

Aplicación SmartHunter

Contenido

● Aplicación SmartHunter

● Particionados para las prácticas

Mar 15 Nov 2011

M. Telleria, L. Barros, J.M Drake

Página 2 de 22

Aplicación SpeedFalcon

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

Aplicación SmartHunter

Esquema gráfico

Zona vigilada por el Radar

Zona protegida

Sistema
de radar

20 Km

100 Km

Plataforma
de misiles

Mar 15 Nov 2011

M. Telleria, L. Barros, J.M Drake

Página 4 de 22

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

Aplicación SmartHunter

Principales objetos
● DefenseBase: Coordinador de todo el sistema
– Mantiene las lista de jets activos y amenazantes.

● AirRaid (Interfaz RadarSystem): Provee escaneos de Jets

– También genera los Jets de manera aleatoria
– También lleva la GUI

● JetData: Operaciones sobre Jets amenazantes.

– Calcula la posición del jet según la dirección y el tiempo
– Decide si tiene que asignar un misil al jet

● 4 MissileBattery (N, S, E, O)

– Crean e interaccionan con los misiles
● 20 Missiles (5 por cada MissilBattery)

– Accionan un motor (MissilHardware) cambiando su orientación

● 20 SpeedFalcon (Interfaz MissilHardware)

– Hacen mover al misil

Mar 15 Nov 2011

M. Telleria, L. Barros, J.M Drake

Página 5 de 22

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

Aplicación SmartHunter

GUI

Mar 15 Nov 2011

M. Telleria, L. Barros, J.M Drake

Página 6 de 22

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

Aplicación SmartHunter

Diagrama de clases

Mar 15 Nov 2011

M. Telleria, L. Barros, J.M Drake

Página 7 de 22

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

Aplicación SmartHunter

Clase DefenseBase

● Misión

● Recoger periódicamente escaneos del radar
● Mantener la lista de jets conocidos
● Es un thread

● Atributos

● 4 MissileBattery





Interfaz RadarSystem
theJetList: JetData

● Métodos
run():
– Su ciclo de vida



● shotMissile(battery_nr, jetData)

– Ordena a una MissileBattery lanzar un misil

Mar 15 Nov 2011

M. Telleria, L. Barros, J.M Drake

Página 8 de 22

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

Aplicación SmartHunter

Ciclo de vida de DefenseBase

Mar 15 Nov 2011

M. Telleria, L. Barros, J.M Drake

Página 9 de 22

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

Aplicación SmartHunter

Clase JetData

● Misión: Llevar datos de cada jet enemigo

● Discierne si el jet ataca a la zona o no
● Ordena el lanzamiento de un misil y desde qué batería
● Calcula el punto de intersección

● Atributos



id (long): id del jet
● db: DefenseBase





intersection (posicion): Punto de intersección con el cilindro rojo
identified (boolean): Si ya está analizada su trayectoria y asignado misil

● checked (boolean): Si sigue siendo confirmado por el radar

● Métodos

● setJetPosition(): Actualiza la posición y los datos del jet
● getIntersection(): Devuelve el punto de intersección con el cilindro

Mar 15 Nov 2011

M. Telleria, L. Barros, J.M Drake

Página 10 de 22

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

Aplicación SmartHunter

Clase AirRaid

● Misión

● Por un lado implementa la interfaz RadarSystem

– Da un escaneo periódico de los jets existentes


Informa de la posición en tiempo real de cualquier jet

● Por otro lado

– Genera aleatoriamente los jet's y actualiza su posición
– Maneja la GUI

● Métodos

● scan(): Hace un barrido de los misiles en el instante actual



jetPosition(): Devuelve la posición de un jet

● moveMissile(): Actualiza en la GUI la posición del misil



run(): Ciclo de creación de jets

Mar 15 Nov 2011

M. Telleria, L. Barros, J.M Drake

Página 11 de 22

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

Aplicación SmartHunter

Clase MissileBattery

● Misión: Comunicación entre DefenseBase, radar y los misiles

● La DefenseBase le asigna Jets y ptos de intersección
● Los misiles le preguntan si hay algún target disponible





Informa a los misiles (via radar) de la posición de los jets
Informa a los misiles de su pto de intersección con los jets

● Atributos



radar: Referencia al radar

● unAssignedTargets: Lista de Jetid's sin asignar



intersectionMap: Hash que encuentra el pto de intersección a.p.d. JetId

● Métodos

● shot(): Usado por defenseBase para asignar un jet
● getTargetId(): Usado por el misil para pedir un objetivo
● getIntersection(), getJet(): El misil pide información de su objetivo

Mar 15 Nov 2011

M. Telleria, L. Barros, J.M Drake

Página 12 de 22

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

Aplicación SmartHunter

MissileBattery con DefenseBase, Radar y Misil

Mar 15 Nov 2011

M. Telleria, L. Barros, J.M Drake

Página 13 de 22

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

Aplicación SmartHunter

Clase Misil

● Misión: Comandar el motor del misil

● Calcula el ángulo de trayectoria
● Manda al motor explotar
● Es un thread

● Atributos

● battery: La bateria de la que depende



theHardware: El motor (SpeedFalcon) que comanda

● currentPosition: Posición del misil (obtenida del speedFalcon)





jetPosition: Posición del jet
intersectionPosition: Pto de intersección con el cilindro

● Métodos

● getPosition(): Pide la posición del misil al MisilHardware
● distancia(): Calcula la distancia que le queda para llegar a un punto
● getJetPosition(), getInstersectionPosition(): Pregunta a MissilleBattery

Mar 15 Nov 2011

M. Telleria, L. Barros, J.M Drake

Página 14 de 22

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

Aplicación SmartHunter

Missil con MissilHardware y SpeedFalcon

Mar 15 Nov 2011

M. Telleria, L. Barros, J.M Drake

Página 15 de 22

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

Aplicación SmartHunter

Trayectoria del Misil

Trayectoria objeto

Trayectoria misil

● El misil hace su trayectoria en 3 fases

● Levantamiento vertical inicial
● Llega al punto de intersección con el misil
● Encara al jet y va hacia él

Mar 15 Nov 2011

M. Telleria, L. Barros, J.M Drake

Página 16 de 22

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

Aplicación SmartHunter

Diagrama de actividad del misil

Mar 15 Nov 2011

M. Telleria, L. Barros, J.M Drake

Página 17 de 22

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

Aplicación SmartHunter

Clase SpeedFalcon

● Mision: Implementa la interfaz MissilHardware (motor del misil)

● Es un thread que actualiza la posición del misil en línea recta
● Cambia la dirección del misil
● Explota
● Atributos

● posicion (x, y, z): Posición actual del misil
● Coseno director (ux, uy, uz): Dirección de avance del misil

● Métodos

● shot(): Arranca
● getX(), getY(), getZ(): Obtén la posición actual
● setDirection(): Cambia la dirección de avance
● explode(): Explota

Mar 15 Nov 2011

M. Telleria, L. Barros, J.M Drake

Página 18 de 22

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

Aplicación SmartHunter

Uniendo todo

RadarSystem

scan()

moveMissil()

<<active>>

DefenseSystem

shotMissil()

getJetPosition()

currentTime()

MissilBattery

MissilBattery
MissilBattery

getIntersectionX(), getIntersectionX(), getIntersectionX()

getJetX(),getJetY() y getJetZ()

getTargetJetId()
setMissilPosition()

<<active>>

MissilBattery
Missil
MissilBattery

SpeedFalcon

MissilBattery
MissilBattery

explode()

shot()

setDirection()

getX() getY() getZ()

Mar 15 Nov 2011

M. Telleria, L. Barros, J.M Drake

Página 19 de 22

Particionado de las prácticas

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

Aplicación SmartHunter

Miércoles 23 y Jueves 1

Ethernet

:SmartHunterGUI

:AirRaid

BaseComputer

<<main>>

:DefenseBase

:MissilBattery

:JetData

MissilComputer

MissilComputer

MissilComputer

<<main>>
:Missil

:SpeedFalcon

Mar 15 Nov 2011

M. Telleria, L. Barros, J.M Drake

Página 21 de 22

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

Aplicación SmartHunter

Jueves 24 y Miércoles 30

Ethernet

MissilComputer

MissilComputer

MissilComputer

<<main>>

:SpeedFalcon

BaseComputer

<<main>>

:DefenseBase

:JetData

:SmartHunterGUI

:AirRaid

:MissilBattery

:Missil

Mar 15 Nov 2011

M. Telleria, L. Barros, J.M Drake

Página 22 de 22
  • Links de descarga
http://lwp-l.com/pdf1041

Comentarios de: Aplicacion SmartHunter (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad