/*********************************************************************************
** Copyright (c) 1992-2026 MAK Technologies, Inc.
** All rights reserved.
*********************************************************************************/

/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!This is an auto-generated file.  Any changes will be destroyed!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/

#pragma once

#include "managedInterface/message.h"

#include <string>
#include <vector>


class MANAGEDINTERFACE_DLL BeamStateMessage : public DtMessage
{
public:
   enum BeamType {BeamType_RegularBeam= -1, BeamType_RadarBeam= 1, BeamType_TrackBeam= 1, BeamType_JamBeam= 0};
   enum BeamFunc {BeamFunc_BeamFuncOther, BeamFunc_BeamFuncSearch, BeamFunc_BeamFuncHeightFinder, BeamFunc_BeamFuncAcquisition, BeamFunc_BeamFuncTracking, BeamFunc_BeamFuncAcquisitionAndTracking, BeamFunc_BeamFuncCommandGuidance, BeamFunc_BeamFuncIllumination, BeamFunc_BeamFuncRangeOnlyRadar, BeamFunc_BeamFuncMissileBeacon, BeamFunc_BeamFuncMissileFuze, BeamFunc_BeamFuncActiveRadarMissileSeeker, BeamFunc_BeamFuncJammer=12, BeamFunc_BeamFuncIFF, BeamFunc_BeamFuncNavWeather, BeamFunc_BeamFuncMeteorological, BeamFunc_BeamFuncDataTransmission, BeamFunc_BeamFuncNavDirectionalBeacon};




  BeamStateMessage();
  virtual ~BeamStateMessage();

   virtual std::string getHostGlobalIdentifier();
   virtual void setHostGlobalIdentifier(std::string val);

   virtual unsigned short getEmbeddedIndex();
   virtual void setEmbeddedIndex(unsigned short val);

   virtual unsigned char getBeamIdNumber();
   virtual void setBeamIdNumber(unsigned char val);

   virtual float getAzimuthCenter();
   virtual void setAzimuthCenter(float val);

   virtual float getAzimuthSweep();
   virtual void setAzimuthSweep(float val);

   virtual BeamFunc getBeamFunction();
   virtual void setBeamFunction(BeamFunc val);

   virtual unsigned char getBeamStatus();
   virtual void setBeamStatus(unsigned char val);

   virtual unsigned short getBeamParameterIndex();
   virtual void setBeamParameterIndex(unsigned short val);

   virtual float getElevationCenter();
   virtual void setElevationCenter(float val);

   virtual float getElevationSweep();
   virtual void setElevationSweep(float val);

   virtual float getERP();
   virtual void setERP(float val);

   virtual float getFrequency();
   virtual void setFrequency(float val);

   virtual float getFrequencyRange();
   virtual void setFrequencyRange(float val);

   virtual float getPRF();
   virtual void setPRF(float val);

   virtual float getPulseWidth();
   virtual void setPulseWidth(float val);

   virtual float getSweepSync();
   virtual void setSweepSync(float val);

   virtual unsigned int getJammingModeSequence();
   virtual void setJammingModeSequence(unsigned int val);

   virtual bool getHighDensity();
   virtual void setHighDensity(bool val);

   virtual BeamType getBeamType();
   virtual void setBeamType(BeamType val);

   virtual std::string getEventId();
   virtual void setEventId(std::string val);

   virtual std::vector<std::string> getTrackJamTargets();
   virtual void setTrackJamTargets(std::vector<std::string> val);



  virtual int messageSize();
  
   static DtMessage* decode(unsigned char* buffer, int length);
   static std::string theMessageName();

protected:
   static std::string theFullName;

   std::string myHostGlobalIdentifier;
   unsigned short myEmbeddedIndex;
   unsigned char myBeamIdNumber;
   float myAzimuthCenter;
   float myAzimuthSweep;
   BeamFunc myBeamFunction;
   unsigned char myBeamStatus;
   unsigned short myBeamParameterIndex;
   float myElevationCenter;
   float myElevationSweep;
   float myERP;
   float myFrequency;
   float myFrequencyRange;
   float myPRF;
   float myPulseWidth;
   float mySweepSync;
   unsigned int myJammingModeSequence;
   bool myHighDensity;
   BeamType myBeamType;
   std::string myEventId;
   std::vector<std::string> myTrackJamTargets;

   virtual void serialize(DtStreamWriter& writer);
   virtual void deserialize(DtStreamReader& reader);
};
