%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% PURPOSE: Plot AHRS data.
% AUTHOR:  Initial; rsm
% DATE:    00/1/10
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Units and Fundamental Constants:
  units
  hardflag=0;

  time = 1;

  str = [' ',titleStr, ' ',myDate];
  PaperPosn = [.5 .5 3.75 2.5];
  FigurePosn = [5 30 815 760];
  i = 0;

  if exist( 'crsBwFig1' ) ~= 1
      crsBwFig1 = figure;
  else
      figure( crsBwFig1 );
  end

  timeV = dataO(:,time) - dataO(1,time);
  timeStr = 'Seconds';
  if( (timeV(end) > 300) & (timeV(end) < 3600) ),
    timeV = timeV/60;
    timeStr = 'Minutes';
  else
    timeV = timeV/3600;
    timeStr = 'Hours';
  end
  
  
%
% Default to plotting all available AHRS instruments.  The following flags can
% be used to shut off unwanted plots.
%
  if exist('plotOctans') ~= 1, plotOctans = 1; end
  if exist('plotDvl') ~= 1, plotDvl = 1; end
  
  set( crsBwFig1, 'name', 'Attitude & Heading Reference', ...
       'DeleteFcn', 'clear crsBwFig1' );
  set(gcf,'position',position)
  clf

    subplot(3,1,1)
      [xx2,yy2] = stairs( timeV,  dataO(:,mRollO)/d2r);
      plot(xx2, yy2,'Color','r');
    ylabel('Degrees')
    title(['Roll, Degrees',str]);
    grid on
    zoom on

    subplot(3,1,2)
      [xx2,yy2] = stairs( timeV,  dataO(:,mPitchO)/d2r);
      plot(xx2, yy2,'Color','r');
    ylabel('Degrees')
    title(['Pitch, Degrees',str]);
    grid on
    zoom on

    subplot(3,1,3)
      [xx2,yy2] = stairs( timeV,  mod360(dataO(:,mYawO)/d2r));
      plot(xx2, yy2,'Color','r');
    ylabel('Degrees')
    xlabel(['Elapsed Time, ', timeStr]);
    title(['Yaw, Degrees',str]);
    grid on
    zoom on

    
    
  pause(.5)
  
  if exist( 'CrsBwFig5' ) ~= 1
      CrsBwFig5 = figure;
  else
      CrsBwFig5 = figure( CrsBwFig5 );
  end

  set( CrsBwFig5, 'name', 'Heading', ...
       'DeleteFcn', 'clear CrsBwFig5' );
  set(gcf,'position',position)
  clf
  plot(xx2, yy2)
  ylabel('Degrees')
  xlabel(['Elapsed Time, ', timeStr]);
  title(['Yaw, Degrees',str]);
  grid on
  zoom on


  
  
  
  
  return
    
    
    pause(.5)
  if exist( 'CrsBwFig2' ) ~= 1
      CrsBwFig2 = figure;
  else
      CrsBwFig2 = figure( CrsBwFig2 );
  end

  set( CrsBwFig2, 'name', 'Body Rates', ...
       'DeleteFcn', 'clear CrsBwFig2' );
  set(gcf,'position',position)
  clf
    subplot(3,1,1)
      [xx2,yy2] = stairs( timeV,  dataO(:,mOmega_xO)/d2r);
      plot(xx2, yy2,'Color','r');
    ylabel('Degrees/Second')
    title(['X Axis Body Rate (Omega B x), Degrees/Sec',str]);
    grid on
    zoom on

    subplot(3,1,2)
      [xx2,yy2] = stairs( timeV,  dataO(:,mOmega_yO)/d2r);
      plot(xx2, yy2,'Color','r');
    ylabel('Degrees/Second')
    title(['Y Axis Body Rate (Omega B y), Degrees/Sec',str]);
    grid on
    zoom on

    subplot(3,1,3)
      [xx2,yy2] = stairs( timeV,  dataO(:,mOmega_zO)/d2r);
      plot(xx2, yy2,'Color','r');
    ylabel('Degrees/Second')
    xlabel(['Elapsed Time, ', timeStr]);
    title(['Z Axis Body Rate (Omega B z), Degrees/Sec',str]);
    grid on
    zoom on

    if exist('dataCB') ~= 1, return, end

    return


    pause(.5)
  if exist( 'CrsBwFig3' ) ~= 1
      CrsBwFig3 = figure;
  else
      CrsBwFig3 = figure( CrsBwFig3 );
  end

  set( CrsBwFig3, 'name', 'Crossbow Acceleration', ...
       'DeleteFcn', 'clear CrsBwFig3' );
  set(gcf,'position',position)
  clf
    subplot(3,1,1)
    [xx,yy] = stairs( dataCB(:,time),  dataCB(:,mAccel_xCB));
    plot(xx, yy);
    if exist('dataO') == 1,
      [xx2,yy2] = stairs( dataO(:,time),  dataO(:,mAccel_xO));
      line(xx2, yy2,'Color','r');
      legend('Nav','CrossBow','Octans')
    end
    ylabel('g''s')
    title(['Acceleration of Vehicle CM Resolved onto Body X, g''s',str]);
    grid on
    zoom on


    subplot(3,1,2)
    [xx,yy] = stairs( dataCB(:,time),  dataCB(:,mAccel_yCB));
    plot(xx, yy);
    if exist('dataO') == 1,
      [xx2,yy2] = stairs( dataO(:,time),  dataO(:,mAccel_yO)/d2r);
      line(xx2, yy2,'Color','r');
      legend('Nav','CrossBow','Octans')
    end
    ylabel('g''s')
    title(['Acceleration of Vehicle CM Resolved onto Body Y, g''s',str]);
    grid on
    zoom on


    subplot(3,1,3)
    [xx,yy] = stairs( dataCB(:,time),  dataCB(:,mAccel_zCB));
    plot(xx, yy);
    if exist('dataO') == 1,
      [xx2,yy2] = stairs( dataO(:,time),  dataO(:,mAccel_zO)/d2r);
      line(xx2, yy2,'Color','r');
      legend('Nav','CrossBow','Octans')
    end
    ylabel('g''s')
    xlabel('Elapsed Time (s)');
    title(['Acceleration of Vehicle CM Resolved onto Body Z, g''s',str]);
    grid on
    zoom on
    %
    % Compute norm of Magnetic Field:
    %
    MagneticMag = sqrt( dataCB(:,mMag_xCB).^2 + ...
                        dataCB(:,mMag_yCB).^2 + ...
                        dataCB(:,mMag_zCB).^2 );

    pause(.5)
  if exist( 'CrsBwFig4' ) ~= 1
      CrsBwFig4 = figure;
  else
      CrsBwFig4 = figure( CrsBwFig4 );
  end

  set( CrsBwFig4, 'name', 'Crossbow Magnetic Field', ...
       'DeleteFcn', 'clear CrsBwFig4' );
  set(gcf,'position',position)
  clf
    subplot(4,1,1)
    [xx,yy] = stairs( dataCB(:,time),  dataCB(:,mMag_xCB));
    plot(xx, yy);
    ylabel('Gauss')
    title(['Magnetic Field Resolved onto Body X',str]);
    grid on
    zoom on


    subplot(4,1,2)
    [xx,yy] = stairs( dataCB(:,time),  dataCB(:,mMag_yCB));
    plot(xx, yy);
    ylabel('Gauss')
    title(['Magnetic Field Resolved onto Body Y',str]);
    grid on
    zoom on


    subplot(4,1,3)
    [xx,yy] = stairs( dataCB(:,time),  dataCB(:,mMag_zCB));
    plot(xx, yy);
    ylabel('Gauss')
    title(['Magnetic Field Resolved onto Body Z',str]);
    grid on
    zoom on


    subplot(4,1,4)
    [xx,yy] = stairs( dataCB(:,time),  MagneticMag );
    plot(xx, yy);
    ylabel('Gauss')
    xlabel('Elapsed Time (s)');
    title(['Magnitude of the Magnetic Field ',str]);
    grid on
    zoom on

  return






  i = i+1;
  figure(i)
  if hardflag ==3, set(gcf,'PaperPosition',PaperPosn), end
  set(gcf,'position',position)
  clf
  subplot(3,1,1)
  plot(dataNav(:,tIx), dataNav(:,[pitchIx])/d2r);
  if hardflag == 3, set(gca,'FontUnits','Normalized'), end
  ylabel('Degrees')
  title(['Pitch, Degrees',str]);
  grid on
  subplot(3,1,2)
  plot(dataNav(:,tIx), [dataNav(:,qIx)]/d2r);
  if hardflag == 3, set(gca,'FontUnits','Normalized'), end
  ylabel('Deg/Sec')
  title(['Body Rotational Rate q (Omega_N_B_y)',str]);
  xlabel('Seconds');
  grid on
  subplot(3,1,3)
  plot(dataNav(:,tIx), [dataNav(:,deltaEIx)]*180/pi);
  if hardflag == 3, set(gca,'FontUnits','Normalized'), end
  ylabel('Degrees')
  title(['Elevator Angle',str]);
  xlabel('Seconds');
  grid on

  i = i+1;
  figure(i)
  if hardflag ==3, set(gcf,'PaperPosition',PaperPosn), end
  set(gcf,'position',position)
  clf
  subplot(3,1,1)
  plot(dataNav(:,tIx), dataNav(:,[yawIx])/d2r);
  if hardflag == 3, set(gca,'FontUnits','Normalized'), end
  ylabel('Degrees')
  title(['Heading, Degrees',str]);
  grid on
  subplot(3,1,2)
  plot(dataNav(:,tIx), dataNav(:,[rIx])/d2r);
  if hardflag == 3, set(gca,'FontUnits','Normalized'), end
  ylabel('Deg/Sec')
  title(['Body Rotational Rate r (Omega_N_B_z)',str]);
  grid on
  subplot(3,1,3)
  plot(dataNav(:,tIx), [dataNav(:,deltaRIx)]*180/pi);
  if hardflag == 3, set(gca,'FontUnits','Normalized'), end
  ylabel('Degrees')
  title(['Rudder Angle',str]);
  xlabel('Seconds');
  grid on

  i = i+1;
  figure(i)
  if hardflag ==3, set(gcf,'PaperPosition',PaperPosn), end
  set(gcf,'position',position)
  clf
  subplot(2,1,1)
  plot(dataNav(:,tIx), dataNav(:,[rollIx])/d2r);
  if hardflag == 3, set(gca,'FontUnits','Normalized'), end
  ylabel('Degrees')
  title(['Roll, Degrees',str]);
  grid on
  subplot(2,1,2)
  plot(dataNav(:,tIx), dataNav(:,[pIx])/d2r);
  if hardflag == 3, set(gca,'FontUnits','Normalized'), end
  ylabel('Deg/Sec')
  title(['Body Rotational Rate p (Omega_N_B_x)',str]);
  grid on

  i = i+1;
  figure(i)
  if hardflag ==3, set(gcf,'PaperPosition',PaperPosn), end
  set(gcf,'position',position)
  clf
  plot(dataNav(:,yPosIx), dataNav(:,[xPosIx]));
  if hardflag == 3, set(gca,'FontUnits','Normalized'), end
  ylabel('North, Meters')
  xlabel('East, Meters')
  title(['Vehicle Location in Earth Fixed Coordinates',str]);
  grid on

