|
|
###########################################################################
|
|
|
############################### 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)
|
|
|
|