SXXXXXXX_PyBusMonitor1553/cpp/GrifoScope/GrifoSdkEif/pub/inc/ext/SoftScanConverterDriver.h.bak
2025-12-17 07:59:30 +01:00

118 lines
2.4 KiB
C

/*
* SoftScanConverter.h
*
* Created on: 22/feb/2018
* Author: chessaa
*/
#ifndef SOFTSCANCONVERTER_H_
#define SOFTSCANCONVERTER_H_
#include <stdint.h>
class SoftScanConverterDriver;
class SoftScanConverterObject
{
public:
static SoftScanConverterDriver& instance();
};
class SoftScanConverterDriver
{
public:
struct ScBuffer
{
unsigned int dx;
unsigned int dy;
unsigned int pitch;
uint8_t* buffer;
unsigned int width() const { return dx;}
unsigned int height() const { return dy;}
unsigned int bytesPerLine() const { return pitch;}
uint8_t* row(int y) { return scanLine(y);}
uint8_t& at(int x, int y) { return scanLine(y)[x];}
uint8_t* scanLine(unsigned int y)
{
return &buffer[pitch*y];
}
};
struct SweepHeader
{
float platform_azimuth;
float map_reference_azimuth;
float rbin_len_meters;
float scan_limit_min;
float scan_limit_max;
float azimuth;
unsigned int rbins;
float vx;
float vy;
unsigned int inversions;
int direction; //0=stop, -1=decrese, 1=increase
const uint8_t* data;
};
void enableMapDbg(bool enable);
void displayWaveforms(bool show=true);
void setTimestamp(int y, int m, int d, int s, unsigned int tt);
void updateMessage(int n, const char* msg);
void displayMessages(bool show=true);
void addSweep(const SweepHeader& sweep);
bool setImage(unsigned int bpp, int ox, int oy, int dx, int dy, int stride, int rows, const void* p, float heading=0, float lat=0, float lon=0, float resolutions=0);
void showWaveforms(unsigned int wfn, unsigned int samples, char* data);
void generate(void* fb);
void generateDebug(void* fb);
//ScBuffer buffer();
void setZoom(int ox, int oy, float factor);
void setInterpolation(bool enable);
void enable(bool ena=true);
void reset();
void setGeometry(unsigned int dx, unsigned int dy, unsigned int pitch);
void setScanVolumeFromSweep(bool from_sweep);
void setScanVolume(float scan_center, float scan_width);
void setNavigation(float range_scale, float vx, float vy);
void setDbsMode(bool enable);
void simulateSweep(float angle, float* data, int samples, int direction, float f_center, float scan_center, float left_limit, float right_limit);
public:
class ScImplementation;
SoftScanConverterDriver(ScImplementation&);
SoftScanConverterDriver();
ScImplementation& p_;
friend class SoftScanConverterObject;
};
#endif /* SOFTSCANCONVERTER_H_ */