|
|
###########################################################################
|
|
|
############################### SERVIDOR###################################
|
|
|
######################### SIMULADOR DE PEDESTAL############################
|
|
|
###########################################################################
|
|
|
import time
|
|
|
import math
|
|
|
import numpy
|
|
|
import struct
|
|
|
from time import sleep
|
|
|
import zmq
|
|
|
import pickle
|
|
|
port = "5556"
|
|
|
context = zmq.Context()
|
|
|
socket = context.socket(zmq.PUB)
|
|
|
socket.bind("tcp://*:%s" % port)
|
|
|
###### PARAMETROS DE ENTRADA################################
|
|
|
print("PEDESTAL RESOLUCION 0.01")
|
|
|
print("MAXIMA VELOCIDAD DEL PEDESTAL")
|
|
|
ang_elev = 4.12
|
|
|
ang_azi = 30
|
|
|
velocidad = input ("Ingresa velocidad:")
|
|
|
velocidad = float(velocidad)
|
|
|
print (velocidad)
|
|
|
############################################################
|
|
|
sleep(3)
|
|
|
print("Start program")
|
|
|
t1 = time.time()
|
|
|
count = 0
|
|
|
while(True):
|
|
|
tmp_vuelta = int(360 / velocidad)
|
|
|
t1 = t1 + tmp_vuelta * count
|
|
|
count = count + 1
|
|
|
muestras_seg = 100
|
|
|
t2 = time.time()
|
|
|
for i in range(tmp_vuelta):
|
|
|
for j in range(muestras_seg):
|
|
|
tmp_variable = (i + j / 100.0)
|
|
|
ang_azi = (tmp_variable) * float(velocidad)
|
|
|
seconds = t1 + tmp_variable
|
|
|
topic = 10001
|
|
|
print ("Azim°: ", "%.4f" % ang_azi, "Time:" , "%.5f" % seconds)
|
|
|
seconds_dec = (seconds - int(seconds)) * 1e6
|
|
|
ang_azi_dec = (ang_azi - int(ang_azi)) * 1e3
|
|
|
ang_elev_dec = (ang_elev - int(ang_elev)) * 1e3
|
|
|
sleep(0.0088)
|
|
|
socket.send_string("%d %d %d %d %d %d %d" % (topic, ang_elev, ang_elev_dec, ang_azi, ang_azi_dec, seconds, seconds_dec))
|
|
|
t3 = time.time()
|
|
|
print ("Total time for 1 vuelta in Seconds", t3 - t2)
|
|
|
|