/*
 * sfp_dsp_ris.h
 *
 */

#ifndef SFP_DSP_RIS_H_
#define SFP_DSP_RIS_H_

#include "DspHeaderResults.h"

#include "sfp/sfp_types.h"
#include "sfp/sfp_helper.h"

namespace SFP_RIS
{

enum ris_chunk_tags_t
{
	tag_sts_scenario='S',
	tag_targets_db='T',

	tag_header='H',
};

struct scenario_t
{
	uint32_t timetag;

	uint32_t flags;
	uint32_t mode;

	uint32_t spare_[8-2];

	float platform_azimuth;
	float vx;
	float vy;
	float vz;
	float baro_altitude;

	float true_heading;
	float latitude;
	float longitude;

	float ant_nav_az;
	float ant_nav_el;

	uint32_t spare[16-9];
};

struct target_status_t
{
	uint32_t flags;

	float heading;

	float x;
	float y;
	float z;

//	float vx;
//	float vy;
//	float vz;

	uint32_t spare[8-5];

};

enum { k_max_tgt=32};

struct target_db_t
{
	uint32_t flags;
	target_status_t tgt[k_max_tgt];
};

struct status_payload_t
{
	SFP::data_tag_t scenario_tag;
	scenario_t scenario;

	SFP::data_tag_t target_tag;
	target_db_t tgt;
};

struct status_message_t
{
	SFP::frag_header_t header;
	status_payload_t payload;
};

struct script_payload_t
{
	SFP::data_tag_t ctrl_tag;
	uint32_t ctrl[32];

	SFP::data_tag_t script_tag;
	uint8_t script[1024];
};

struct script_message_t
{
	SFP::frag_header_t header;
	script_payload_t payload;
};

}


#endif /* SFP_DSP_RIS_H_ */
