import datetime
import math
import os

RXData = [ "BD935_BD935",
           "BD940_BD940" ]

MaxRX =  len(RXData)

def parseNoPiSummary(year,month,day,filename,outputSuffix):
  Day   = []
  MPXX  = []
  Slips = []
  
  # This range of dates was when we temporarily relocated, there was 
  # an antenna distribution issue for several days.
  if( (year == 2019) and (month == 11) and (day >= 15) and (day <= 18) ):
    return

  if(os.path.isfile(filename)): 
    with open(filename,'r') as f:
      for line in f:
        # Col0 = ComboNum
        # Col1 = ComboType String
        # Col2 = Valid 
        # Col3 = DDCa_#epochs 
        # Col4 = DDCa_min 
        # Col5 = DDCa_max 
        # Col6 = DDCa_mean 
        # Col7 = DDCa_std 
        # Col8 = DDCd_#epochs 
        # Col9 = DDCd_min 
        # Col10 = DDCd_max 
        # Col11 = DDCd_mean 
        # Col12 = DDCd_std 
        # Col13 = SDCNo_#epochs 
        # Col14 = SDCNo_min 
        # Col15 = SDCNo_max 
        # Col16 = SDCNo_mean 
        # Col17 = SDCNo_std
        data = line.rstrip().split()

        if((data[0] != '%%') and (int(data[2]) == 1) ):
          fid = open('%s-%s.txt' % (data[1],outputSuffix),'a')
          fid.write("%d %d %d " % (year,month,day))

          if(len(data) == 18):
            # Old NoPi format
            for i in range (0,13):
              fid.write("%s " % data[i])
            for i in range(5):
              # We don't have Doppler
              fid.write("NaN ")
            for i in range (13,18):
              fid.write("%s " % data[i])
          elif(len(data) == 23):
            for i in range(0,len(data)):
              fid.write("%s " % data[i])
          elif(len(data) == 27):
            # Relative to 23 columns four "mav" fields were added, convert
            # the data back to the 23 column format by dropping the mav data
            for i in range (0,8):
              fid.write("%s " % data[i])
            for i in range (9,14):
              fid.write("%s " % data[i])
            for i in range (15,20):
              fid.write("%s " % data[i])
            for i in range (21,26):
              fid.write("%s " % data[i])
          else:
            print("Format Error")
          
          fid.write("\n")
          fid.close()



def parseDDData(BaselineType):
  # First generate *all* the data

  # Generate the data
  for RXNum in range(0,MaxRX):
    start  = datetime.datetime(2018,1,1,0,0,0)
    stop   = datetime.datetime.now()
    delta = ((stop-start).total_seconds()/86400)

    for i in range((int)(math.ceil(delta))):
      #print(start.year,start.month,start.day)
      parseNoPiSummary(start.year,start.month,start.day,
                       '/net/daffy/mnt/data_drive/%4d/%4d%02d%02d_%s_%s/NoPiDI_Stats_Summary.txt' % 
                       (start.year,start.year,start.month,start.day,RXData[RXNum],BaselineType),
                       RXData[RXNum] + "_" + BaselineType)
      start = start + datetime.timedelta(days=1)


parseDDData("Short")
parseDDData("Zero")

