#!/bin/bash 

if [ -e "$1" ]
then
  LOGPATH=$1
elif [ -e "$2" ]
then
  LOGPATH=$2
else
  LOGPATH="Logs/latest"
fi

echo " "
echo "Start unpacking from $LOGPATH"
echo " "

OUTOPT="-n -m -y"
OUTVARS=""

if [[ "-sci" == "$1" ]]
then
  OUTOPT="-m -y -o $LOGPATH/science.mat"
  OUTVARS=" \
  time depth latitude longitude sea_water_pressure \
  sea_floor_depth_below_geoid height_above_sea_floor \
  platform_orientation platform_pitch_angle platform_roll_angle \
  platform_speed_wrt_sea_water platform_speed_wrt_ground \
  platform_mass_position platform_buoyancy_position \
  platform_rudder_angle platform_elevator_angle \
  sea_water_temperature sea_water_salinity sea_water_electrical_conductivity \
  sea_water_density \
  upward_derivative_of_sea_water_temperature \
  mass_concentration_of_chlorophyll_in_sea_water \
  WetLabsBB2FL.OutputChl \
  volume_scattering_470_nm  WetLabsBB2FL.Output470 \
  volume_scattering_650_nm  WetLabsBB2FL.Output650 \
  mass_concentration_of_oxygen_in_sea_water \
  mole_concentration_of_nitrate_in_sea_water \
  downwelling_photosynthetic_photon_flux_in_sea_water \
  DVL_micro.height_above_sea_floor \
  PAR_Licor.downwelling_photosynthetic_photon_flux_in_sea_water \
  PAR_Licor.adcCount \
  Turbulence_NPS.MicroTemp1 \
  Turbulence_NPS.MicroCond \
  Turbulence_NPS.MicroTemp2 \
  Turbulence_NPS.NumTempCondSamples \
  Turbulence_NPS.ACMPath \
  Turbulence_NPS.platform_roll_angle \
  Turbulence_NPS.platform_pitch_angle \
  Turbulence_NPS.platform_orientation \
  Turbulence_NPS.DeltaXVelocity \
  Turbulence_NPS.DeltaYVelocity \
  Turbulence_NPS.DeltaZVelocity \
  Turbulence_NPS.FwdSigStrength \
  Turbulence_NPS.packetNum"
fi

if [[ -f $LOGPATH/UnpackSplit.manual ]]; then
  cp $LOGPATH/UnpackSplit.manual $LOGPATH/UnpackSplit.txt
else
  grep "##UnpackSplit##" $LOGPATH/syslog > $LOGPATH/UnpackSplit.txt
fi

if [[ -s $LOGPATH/UnpackSplit.txt ]]; then
  lastLine=''
  OLD_IFS=$IFS;IFS=$'\n';for line in `cat $LOGPATH/UnpackSplit.txt`
  do 
    IFS=$OLD_IFS
    if [[ -n $lastLine ]]; then
      bin/unserialize -s ${lastLine:0:19} -e ${line:0:19} $OUTOPT $LOGPATH/slate $OUTVARS
    else
      bin/unserialize -e ${line:0:19} $OUTOPT $LOGPATH/slate $OUTVARS
    fi
    lastLine=$line
  done
  if [[ -n $lastLine ]]; then
    bin/unserialize -s ${lastLine:0:19} $OUTOPT $LOGPATH/slate $OUTVARS
  fi
else
  bin/unserialize $OUTOPT $LOGPATH/slate $OUTVARS
fi

echo " "
echo "Finished unpacking."
echo " "

