Sprawdzenie czy w tabeli znajduje się warrtość

0

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

0

Mam taki kod. Wartość ("CT_CC01.1CD01_SC590") to wartość z zakresu od 0 do 250, - a ja tu widzę łańcuch tekstowy nie liczbę.
"CT_CC01.1CD01_SC590" - to są nazwy zmiennych?

for(let i=0;i<ARRAY.length;i++){
    if(ARRAY[i]=="CT_CC01.1CD01_SC590"){    /* wykonaj kod */       }   (lub if( ARRAY[i]==100 || ARRAY[i]==120 ){  /* wykonaj kod*/}
}

Albo

A może zrób listę funkcji

ARRAY = [function pierwsza(){},function druga(){}];
var ktora-1;
for(let i=0;i<ARRAY.length;i++){
if(ARRAY[i]=="CT_CC01.1CD01_SC590"){   ktora=i;break;      }   (lub if( ARRAY[i]==100 || ARRAY[i]==120 ){  /* wykonaj kod*/}
}
if(ktora!=-1){
                    new emosWS.ESColorSwap(ARRAY[ktora]);}

?

0

To na pewno jest liczba, dlatego jest - GetTagValueAsInteger("CT_CC01.1CD01_SC590"). Ogólnie cała aplikacja jest dość rozbudowana o własny serwer, i ta nazwa CT_CC01.1CD01_SC590 jest powiązana z sterownikiem PLC. Ten system monitoruje produkt w procesie, jeżeli jest jakakolwiek wartość inna niż 0 to wyświetla się na zielono jeżeli jest 0 to pole jest białe a ja potrzebuje, żeby wybrane numery w tym zakresie wyświetlało na wizualizacji w innym kolorze

0
Bartosz Ogrodowski napisał(a):

To na pewno jest liczba, dlatego jest - GetTagValueAsInteger("CT_CC01.1CD01_SC590"). Ogólnie cała aplikacja jest dość rozbudowana o własny serwer, i ta nazwa CT_CC01.1CD01_SC590 jest powiązana z sterownikiem PLC. Ten system monitoruje produkt w procesie, jeżeli jest jakakolwiek wartość inna niż 0 to wyświetla się na zielono jeżeli jest 0 to pole jest białe a ja potrzebuje, żeby wybrane numery w tym zakresie wyświetlało na wizualizacji w innym kolorze

To jest funkcja zwracająca liczbę a ta nawa to jest parametr.

Mam taki kod. Wartość zwracana przez funkcję GetTagValueAsInteger ("CT_CC01.1CD01_SC590") mieści się w zakresie od 0 do 250, i jest pobierana pobiera ze sterownika PLC. ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1