#include "lfsaappl.h"
class FIne :
public LFsaAppl
{
public:
LFsaAppl* Create(CVarFSA *pCVF) { Q_UNUSED(pCVF)return new FIne(pTAppCore, nameFsa, pCVarFsaLibrary); }
bool FCreationOfLinksForVariables();
FIne(TAppCore *pInfo, string strNam, CVarFsaLibrary *pCVFL);
virtual ~FIne(void) {};
CVar *pVarX1;
CVar *pVarX2;
CVar *pVarY;
CVar *pVarStrNameX1;
CVar *pVarStrNameX2;
CVar *pVarStrNameY;
protected:
int x1(); int x2(); int x12();
void y1(); void y2(); void y12();
bool bX1, bX2, bY;
};
#include "stdafx.h"
#include "FIne.h"
static LArc TBL_Ine[] = {
LArc("st", "st","^x12","y12"),
LArc("st", "s1","x12^x1", "y1"),
LArc("st", "s1","x12^x2", "y1"),
LArc("st", "s0","x12x1x2", "y2"),
LArc("s1", "s0","x1x2", "y2"),
LArc("s0", "s1","^x1", "y1"),
LArc("s0", "s1","^x2", "y1"),
LArc()
};
FIne::FIne(TAppCore *pInfo, string strNam, CVarFsaLibrary *pCVFL):
LFsaAppl(TBL_Ine, strNam, nullptr, pCVFL)
{ }
bool FIne::FCreationOfLinksForVariables() {
pVarX1 = CreateLocVar("x1", CLocVar::vtBool, " 1- ");
pVarX2 = CreateLocVar("x2", CLocVar::vtBool, " 2- ");
pVarY = CreateLocVar("y", CLocVar::vtBool, " ");
pVarStrNameX1 = CreateLocVar("strNameX1", CLocVar::vtString, "name of external input variable(x1)");
pVarStrNameX2 = CreateLocVar("strNameX2", CLocVar::vtString, "name of external input variable(x2)");
pVarStrNameY = CreateLocVar("strNameY", CLocVar::vtString, "name of external output variable(y)");
string str;
if (pVarStrNameX1) {
str = pVarStrNameX1->strGetDataSrc();
if (str != "") { pVarX1 = pTAppCore->GetAddressVar(str.c_str(), this); }
}
if (pVarStrNameX2) {
str = pVarStrNameX2->strGetDataSrc();
if (str != "") { pVarX2 = pTAppCore->GetAddressVar(str.c_str(), this); }
}
if (pVarStrNameY) {
str = pVarStrNameY->strGetDataSrc();
if (str != ""){pVarY = pTAppCore->GetAddressVar(str.c_str(), this);}
}
return true;
}
int FIne::x1() { return bool(pVarX1->GetDataSrc()); }
int FIne::x2() { return bool(pVarX2->GetDataSrc()); }
int FIne::x12() { return pVarX1 != nullptr && pVarX2 && pVarY; }
void FIne::y1() { pVarY->SetDataSrc(nullptr, 1); }
void FIne::y2() { pVarY->SetDataSrc(nullptr, 0.0); }
void FIne::y12() { FInit(); }