Größen verhältnis chip will nicht gehen
Hallo zusammen,
seit gestern versuch ich ein Chip zu machen, wo von 5 Inputs den niedrigsten Wert erkennt und mir dann ausgibt vom welchen Input der niedrigsten Wert kommt oder einfach mir auch eine zahl ausgibt wie ich es momentan habe.
Code:
@name Distance
@inputs InputA InputB InputC InputD InputE
@outputs Detec
@persist D
@trigger all
if ( InputA < (InputB | InputC | InputD | InputE))
{
Detec = 1
}
elseif ( InputB < (InputC | InputD | InputE | InputA))
{
Detec = 2
}
elseif ( InputC < (InputD | InputE | InputA | InputB))
{
Detec = 3
}
elseif ( InputD < (InputE | InputA | InputB | InputC))
{
Detec = 4
}
elseif ( InputE < (InputA | InputB | InputC | InputD))
{
Detec = 5
}
Er gibt mir aber dauern nur die Zahl 1 aus obwohl Input3 kleiner ist als Input1.
Hab schon alles mögliche probiert, aber hab ihn nicht so hin bekommen wie ich es gerne hätte.
Währe für jede Hilfe dankbar.
Gruß
Filtik
AW: Größen verhältnis chip will nicht gehen
Probiers mal mit:
if (InputA < InputB & InputA < InputC &....)
...nach diesem Schema.
AW: Größen verhältnis chip will nicht gehen
Vielleicht könntest du ja mal erklären was du mit diesem Chip dann machen willst, möglicherweise gibt es einen einfacheren weg dies zu erreichen.
AW: Größen verhältnis chip will nicht gehen
Der Chip soll erkennen, vom welchen Input die niedrigste Zahl kommt und dann ausgeben den Input als Zahl ausgeben.
Also z.b.:
InputA = 122
InputB = 88
InputC = 100
somit hat InputB den niedrigsten wert und soll nicht die "88" ausgeben, sonderns "2" und dies eben mit 5 Inputs.
AW: Größen verhältnis chip will nicht gehen
Dann probiers mit meinem Vorschlag, löst das Problem.
AW: Größen verhältnis chip will nicht gehen
Oder lade alle Inputs in ein Array und prüfe mit R:minIndex() den Index des Feldes mit niedrigstem Inhalt. Mit dem Index kannst Du dann mittels ifelse-Abfrage eine Ausgabe spezifizieren oder ihn einfach als Ausgabe nutzen, wenn du nur eine Zahl zwischen 1-5 brauchst.
//Edit:
Ich habe Dir das mal schnell zusammengetippt.
PHP-Code:
@name Minimum-Ermittler
@inputs InputA InputB InputC InputD InputE
@outputs Index Min:string
@persist TempArray:array
TempArray[1,number]=InputA
TempArray[2,number]=InputB
TempArray[3,number]=InputC
TempArray[4,number]=InputD
TempArray[5,number]=InputE
Index=TempArray:minIndex()
#Folgendes ist unnötig, wenn man nur die Zahl haben will.
#Dann reicht einfach nur "Index" als Output, ohne "Min:string".
if(Index==1){Min="InputA"}
elseif(Index==2){Min="InputB"}
elseif(Index==3){Min="InputC"}
elseif(Index==4){Min="InputD"}
elseif(Index==5){Min="InputE"}