Cześć na początku zaznaczam, że jestem dość początkujący w Javascript
Mam taki kod. Wartość ("CT_CC01.1CD01_SC590") to wartość z zakresu od 0 do 250, którą aplikacja pobiera ze sterownika PLC.
Jeżeli wartość jest większa niż 0 to zaznacza kwadracik na zielono (tych funkcji w skrypcie mam około 100)
Chciałbym rozbudować trochę tą funkcję, mianowicie zrobić globalną tablice, do której wpisałbym konkretne wartości.
i zrobić żeby te return condition było wywoływane od konkretnych zdarzeń.
new emosWS.ESColorSwap({'conditionFunction' : function() {
var condition = (GetTagValueAsInteger("CT_CC01.1CD01_SC590")!==0 );
return condition;
},
'PLACEHOLDER_SWAP_FILLCOLOR' : true,
'PLACEHOLDER_SWAP_STROKECOLOR' : false,
'PLACEHOLDER_SWAP_VISIBILITY' : false,
'PLACEHOLDER_SWAP_USETRUE' : true,
'PLACEHOLDER_SWAP_USEFALSE' : true,
'PLACEHOLDER_SWAP_USEQUALITY' : true,
'PLACEHOLDER_FILLCOLOR' : '#A5B200',
'PLACEHOLDER_FILLCOLORFALSE' : '#F0F0F0',
'PLACEHOLDER_STROKECOLORQUALITYGOOD' : '#000000',
'PLACEHOLDER_STROKECOLORQUALITYBAD' : '#FF8000',
'PLACEHOLDER_STROKECOLOR' : '#00FF00',
'PLACEHOLDER_STROKECOLORFALSE' : '#FF0000',
'PLACEHOLDER_VISIBILITY' : true,
'PLACEHOLDER_VISIBILITYFALSE' : false,
'PLACEHOLDER_SWAP_HIDEIFQUALITYBAD' : false,
'STDPLACEHOLDER_SHAPENAME' : 'id42'});
Chciałbym żeby ta zależność wyglądała mniej więcej tak
JEŻELI var condition = (GetTagValueAsInteger("CT_CC01.1CD01_SC590")!==0 && Nie ma wartości w tablicy )
return condition
'PLACEHOLDER_SWAP_FILLCOLOR' : true,
'PLACEHOLDER_SWAP_STROKECOLOR' : false,
'PLACEHOLDER_SWAP_VISIBILITY' : false,
'PLACEHOLDER_SWAP_USETRUE' : true,
'PLACEHOLDER_SWAP_USEFALSE' : true,
'PLACEHOLDER_SWAP_USEQUALITY' : true,
'PLACEHOLDER_FILLCOLOR' : '#A5B200',
'PLACEHOLDER_FILLCOLORFALSE' : '#F0F0F0',
'PLACEHOLDER_STROKECOLORQUALITYGOOD' : '#000000',
'PLACEHOLDER_STROKECOLORQUALITYBAD' : '#FF8000',
'PLACEHOLDER_STROKECOLOR' : '#00FF00',
'PLACEHOLDER_STROKECOLORFALSE' : '#FF0000',
'PLACEHOLDER_VISIBILITY' : true,
'PLACEHOLDER_VISIBILITYFALSE' : false,
'PLACEHOLDER_SWAP_HIDEIFQUALITYBAD' : false,
'STDPLACEHOLDER_SHAPENAME' : 'id42'});
JEŻELI JEST var condition = (GetTagValueAsInteger("CT_CC01.1CD01_SC590")!==0 && Jest wartość w tablicy )
return condition
'PLACEHOLDER_SWAP_FILLCOLOR' : true,
'PLACEHOLDER_SWAP_STROKECOLOR' : false,
'PLACEHOLDER_SWAP_VISIBILITY' : false,
'PLACEHOLDER_SWAP_USETRUE' : true,
'PLACEHOLDER_SWAP_USEFALSE' : true,
'PLACEHOLDER_SWAP_USEQUALITY' : true,
'PLACEHOLDER_FILLCOLOR' : '#FDE456',
'PLACEHOLDER_FILLCOLORFALSE' : '#F0F0F0',
'PLACEHOLDER_STROKECOLORQUALITYGOOD' : '#000000',
'PLACEHOLDER_STROKECOLORQUALITYBAD' : '#FF8000',
'PLACEHOLDER_STROKECOLOR' : '#00FF00',
'PLACEHOLDER_STROKECOLORFALSE' : '#FF0000',
'PLACEHOLDER_VISIBILITY' : true,
'PLACEHOLDER_VISIBILITYFALSE' : false,
'PLACEHOLDER_SWAP_HIDEIFQUALITYBAD' : false,
'STDPLACEHOLDER_SHAPENAME' : 'id42'});
Niestety nie wiem jak to dobrze zrobić.
Próbowałem robić tablice np const ARRAY = [100, 120, 140, 175];
Dodać zmienną var Wartosc = GetTagValueAsInteger("CT_CC01.1CD01_SC590")
Następnie var Jestwtablicy = ARRAY.includes(Wartosc)
Ale niestety nie działa mi to i nie wiem teraz czy wartość pobrana, która jest liczba Integer, może wyszukać tym includes w tablicy jeżeli tam są obiekty?
Byłbym wdzięczny za jakieś podpowiedzi