import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)

TRIG = 23 
ECHO = 24
a_pulse_duration=0
echolost=0
gpiosettime=1

print ("Distance Measurement In Progress")

GPIO.setup(TRIG,GPIO.OUT)
GPIO.setup(ECHO,GPIO.IN)

GPIO.output(TRIG, False)
print ("Waiting For Sensor To Settle")
time.sleep(2)
print("Application Start Time")
app_start_time=time.localtime()
print(time.strftime('%a, %d %b %Y %H:%M:S Local Time', app_start_time))

print("Start Time Numerical value"+ " "+ str(time.time()))
for x in range (1,2000000):
        EchoLost=0
        time.sleep(gpiosettime)
        GPIO.output(TRIG, True)
        time.sleep(gpiosettime)
        GPIO.output(TRIG, False)
        intime=time.time()
        while GPIO.input(ECHO)==0:
            pulse_start = time.time()
            if pulse_start-intime>1:
                print("Echo Lost")
                echolost=1
                break

        while GPIO.input(ECHO)==1:
          pulse_end = time.time()

        pulse_duration = pulse_end - pulse_start
        #Calc avarege duration
        if echolost==0:
            if x==1:
                a_pulse_duration=pulse_duration
            a_pulse_duration=(a_pulse_duration*(x-1)/x)+(pulse_duration*1/x)
            a_pulse_duration=round(a_pulse_duration,10)
        
            print(str(pulse_duration)+" "+str(time.time())+" "+str(x))
GPIO.cleanup()
