last works on Force State Management ...

This commit is contained in:
2024-06-18 05:14:13 +03:30
parent 36b92c3492
commit 326d3f4929
4 changed files with 628 additions and 100 deletions
+116 -38
View File
@@ -2061,16 +2061,13 @@ struct X121SignalGenerator
}
//
bool IsConditionsValidForLong(
X121SetupConditions &conditions, // Conditions
int verification = 4 // Number of Verifications
// Count Number of Long Validations ...
int CountLongValidations(
X121SetupConditions &conditions // Conditions
)
{
//
bool result = false;
//
int signs = 0;
int result = 0;
//
// XTD ...
@@ -2082,7 +2079,7 @@ struct X121SignalGenerator
;
if (isTDPassed)
{
signs++;
result++;
}
//
@@ -2100,7 +2097,7 @@ struct X121SignalGenerator
;
if (isHKPassed)
{
signs++;
result++;
}
//
@@ -2115,7 +2112,7 @@ struct X121SignalGenerator
;
if (isCHEPassed)
{
signs++;
result++;
}
//
@@ -2142,7 +2139,7 @@ struct X121SignalGenerator
;
if (isICHPassed)
{
signs++;
result++;
}
//
@@ -2155,7 +2152,7 @@ struct X121SignalGenerator
;
if (isSTRPassed)
{
signs++;
result++;
}
//
@@ -2168,7 +2165,7 @@ struct X121SignalGenerator
;
if (isMRBPassed)
{
signs++;
result++;
}
//
@@ -2182,7 +2179,7 @@ struct X121SignalGenerator
;
if (isVLMPassed)
{
signs++;
result++;
}
//
@@ -2195,7 +2192,7 @@ struct X121SignalGenerator
;
if (isSSLCPassed)
{
signs++;
result++;
}
//
@@ -2210,7 +2207,7 @@ struct X121SignalGenerator
;
if (isHULLPassed)
{
signs++;
result++;
}
//
@@ -2224,7 +2221,7 @@ struct X121SignalGenerator
;
if (isADXTDPassed)
{
signs++;
result++;
}
//
@@ -2252,13 +2249,31 @@ struct X121SignalGenerator
;
if (isMATDPassed)
{
signs++;
result++;
}
//
return result;
}
//
bool IsConditionsValidForLong(
X121SetupConditions &conditions, // Conditions
int verifications = 4 // Number of Verifications
)
{
//
bool result = false;
//
int signs = CountLongValidations(conditions);
//
result =
//
signs > verification
verifications <= 0
? signs > 0
: signs >= verifications
//
;
@@ -2303,16 +2318,12 @@ struct X121SignalGenerator
}
//
bool IsConditionsValidForShort(
X121SetupConditions &conditions, // Conditions
int verification = 4 // Number of Verifications
int CountShortValidations(
X121SetupConditions &conditions // Conditions
)
{
//
bool result = false;
//
int signs = 0;
int result = 0;
//
// XTD ...
@@ -2324,7 +2335,7 @@ struct X121SignalGenerator
;
if (isTDPassed)
{
signs++;
result++;
}
//
@@ -2342,7 +2353,7 @@ struct X121SignalGenerator
;
if (isHKPassed)
{
signs++;
result++;
}
//
@@ -2357,7 +2368,7 @@ struct X121SignalGenerator
;
if (isCHEPassed)
{
signs++;
result++;
}
//
@@ -2384,7 +2395,7 @@ struct X121SignalGenerator
;
if (isICHPassed)
{
signs++;
result++;
}
//
@@ -2397,7 +2408,7 @@ struct X121SignalGenerator
;
if (isSTRPassed)
{
signs++;
result++;
}
//
@@ -2410,7 +2421,7 @@ struct X121SignalGenerator
;
if (isMRBPassed)
{
signs++;
result++;
}
//
@@ -2424,7 +2435,7 @@ struct X121SignalGenerator
;
if (isVLMPassed)
{
signs++;
result++;
}
//
@@ -2437,7 +2448,7 @@ struct X121SignalGenerator
;
if (isSSLCPassed)
{
signs++;
result++;
}
//
@@ -2452,7 +2463,7 @@ struct X121SignalGenerator
;
if (isHULLPassed)
{
signs++;
result++;
}
//
@@ -2466,7 +2477,7 @@ struct X121SignalGenerator
;
if (isADXTDPassed)
{
signs++;
result++;
}
//
@@ -2494,13 +2505,31 @@ struct X121SignalGenerator
;
if (isMATDPassed)
{
signs++;
result++;
}
//
return result;
}
//
bool IsConditionsValidForShort(
X121SetupConditions &conditions, // Conditions
int verifications = 4 // Number of Verifications
)
{
//
bool result = false;
//
int signs = CountShortValidations(conditions);
//
result =
//
signs > verification
verifications <= 0
? signs > 0
: signs >= verifications
//
;
@@ -3410,3 +3439,52 @@ private:
// Props ...
X121SetupInputs inputs; // Setup Configurations ...
};
//
// Tools ...
//
int FindSignalConditionsIndex(
XSignal &signal,
X121SetupConditions &conditions[] //
)
{
//
int result = -1;
//
// Check Signal is Valid ...
if (!signal.IsValid())
{
return result;
}
//
// Check Conditions Count ...
int conditionsCount = ArraySize(conditions);
if (!IsValidSize(conditionsCount))
{
return result;
}
//
for (int i = 0; i < conditionsCount; i++)
{
//
X121SetupConditions iConditions = conditions[i];
//
if (signal.symbol == iConditions.symbol &&
signal.period == iConditions.period)
{
//
result = i;
break;
}
}
//
return result;
}
//