You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

62 lines
1.9 KiB

#ifndef SCENARIOGENERATOR_H
#define SCENARIOGENERATOR_H
#include <QMutex>
#include <QObject>
#include <QMetaType>
#include "model/ultrasoundModule/UsModule.h"
#include "model/scenarioGenerator/core/ScenGenCore.h"
#include "model/scenarioGenerator/core/ComputationalCore.h"
#include "model/databaseManager/type/EDatabaseRequest.h"
/*************************************************************************************************/
/**
* @brief This class is responsible for gathering user and system inputs and generate desired output
* for all of the system based on system provided algorithm
* @author Hessamoddin Hediyehloo(H-4nd-H)
* @date 2020/08/22(1399/6/1)
*/
/*************************************************************************************************/
class ScenarioGenerator : public UsModule
{
Q_OBJECT
US_MODULE
SINGLETON(ScenarioGenerator)
private:
ScenGenCore* _core;
ComputationalCore* _computationalCore;
ScenarioGenerator();
~ScenarioGenerator() override;
ScenGenSystemParameters_t getSystemParameters();
void getApodization(ScenGenDatabase_t& database);
void getLpf(ScenGenDatabase_t& database);
void getLineFilter(ScenGenDatabase_t& database);
ScenGenDatabase_t getScenGenDatabase();
CommandResult requestDataFromDatabase(EDatabaseRequest::eDatabaseRequest request,
const QList<QVariant> args);
template<typename T>
T translateDatabaseData(const QList<QVariant> result);
void sendScenGenSoftwareUpdateCommand();
void processScenGenCommand(bool result, const CommandRequest& request);
//uncrustify off
public slots:
void newSoftwareScenario();
void newHardwareScenario();
void newAo(quint32 ao);
void newDtgc(QVector<quint32> dtgc);
void newLineFilter(QVector<quint32> lineFilter);
//uncrustify on
};
#endif //SCENARIOGENERATOR_H