bool SonarFilter::Iterate()
{
  AppCastingMOOSApp::Iterate();

  CMOOSVariable * pDepth = GetMOOSVar("Depth");
  double dfDepth = -1;
  if (pDepth->IsFresh()) {
    dfDepth = pDepth->GetDoubleVal();
    pDepth->SetFresh(false);
    // This sets a static 0.5m min depth at this time
    if (dfDepth > MIN_DEPTH_LIMIT) {
      m_last_depth = dfDepth;
      m_fresh_depth = m_nadir_filter.IngestValue(dfDepth);
    }
  }
  pDepth = GetMOOSVar("Depth_Port");
  dfDepth = -1;
  if (pDepth->IsFresh()) {
    dfDepth = pDepth->GetDoubleVal();
    pDepth->SetFresh(false);
    if (dfDepth > MIN_DEPTH_LIMIT) {
      m_fresh_depth = m_port_filter.IngestValue(dfDepth);
    }
  }
  pDepth = GetMOOSVar("Depth_Stbd");
  dfDepth = -1;
  if (pDepth->IsFresh()) {
    dfDepth = pDepth->GetDoubleVal();
    pDepth->SetFresh(false);
    if (dfDepth > MIN_DEPTH_LIMIT) {
      m_fresh_depth = m_stbd_filter.IngestValue(dfDepth) || m_fresh_depth;
    }
  }

  if (m_fresh_depth) {
    string swath_message = GenerateSwathMessage();
    SetMOOSVar("Swath", swath_message, MOOSTime());
    m_fresh_depth = false;
  }

  bool published = PublishFreshMOOSVariables();

  AppCastingMOOSApp::PostReport();
  return(published);
}
bool CMOOSRemoteLite::PrintCustomSummary()
{
    ostringstream os;

    os<<"\n******    User Custom Summary    ******"<<endl;

    STRING_LIST::iterator p;

    for(p = m_CustomSummaryList.begin();p!=m_CustomSummaryList.end();p++)
    {
        string sWhat = *p;

        CMOOSVariable * pVar = GetMOOSVar(sWhat);

        if(pVar==NULL)
            continue;

        //make left justified
        os.setf(ios::left);
        os<<setw(20)<<sWhat.c_str()<<"t=";

        os.setf(ios::fixed);

        if(!pVar->IsFresh())
        {
            os<<setw(10)<<"****";
            os<<setw(3)<<" : ";
            os<<setw(10)<<"****";
        }
        else
        {
            os<<setw(10)<<setprecision(1)<<pVar->GetTime()-GetAppStartTime();
            os<<setw(3)<<" : ";

            if(pVar->IsDouble())
            {
                os<<setw(10)<<setprecision(1)<<pVar->GetDoubleVal();
            }
            else
            {
                os<<setw(10)<<pVar->GetStringVal().c_str();;
            }
        }
        os<<endl;
    }
    os<<ends;

    MOOSTrace("%s",string(os.str()).c_str());

    return true;

}