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

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



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()))
print("TOF/Pulse_Duration total_vol_in_mm Time Sample_Item")
while True:
        advol=raw_input("Ad an aditional volume of water in ml in your gauge and type the numerical value in: ")
        totalvol=totalvol+int(advol)
        for n in range (1,100):
                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 n==1:
                        a_pulse_duration=pulse_duration
                    a_pulse_duration=(a_pulse_duration*(n-1)/n)+(pulse_duration*1/n)
                    a_pulse_duration=round(a_pulse_duration,10)
        
                    print(str(pulse_duration)+" "+str(totalvol)+" "+str(time.time())+" "+str(n))        
GPIO.cleanup()

