Exemplo n.º 1
0
 private void InvokeValueEvent(ValueListener valueListener)
 {
     if (valueListener.onUpdate != null)
     {
         valueListener.onUpdate.Invoke(valueListener.value);
     }
 }
Exemplo n.º 2
0
    public void WriteValueOnPercentage(string pinLabel)
    {
        ValueListener valueListener = new ValueListener();

        if (FindValueListener(pinLabel, ref valueListener))
        {
            WriteValue(1, valueListener.value * 255f);
        }
    }
Exemplo n.º 3
0
    private bool FindValueListener(string label, ref ValueListener valueListener)
    {
        for (int i = 0; i < valueListeners.Length; i++)
        {
            if (label == valueListeners[i].label)
            {
                valueListener = valueListeners[i];
                return(true);
            }
        }

        return(false);
    }
Exemplo n.º 4
0
    private bool FilterValue(string line, out ValueListener _valueListener)
    {
        _valueListener = new ValueListener();

        if (line.IndexOf(":") < 0)
        {
            return(false);
        }

        int seperatorIndex = line.IndexOf(':');

        string keyString   = line.Substring(0, seperatorIndex);
        string valueString = line.Substring(seperatorIndex + 1, line.Length - seperatorIndex - 1);

        if (!string.IsNullOrEmpty(keyString) && !string.IsNullOrEmpty(valueString))
        {
            // --- Check Listener ---
            if (!FindValueListener(keyString, out int valueListenerIndex))
            {
                return(false);
            }

            ValueListener valueListener = valueListeners[valueListenerIndex];

            // --- Filter Value ---
            float value = System.Int32.Parse(valueString);

            // Value Offset
            if (Mathf.Abs(valueListener.valueOffset) > 0)
            {
                value += valueListener.valueOffset;
            }

            if (valueListener.deadZoneRange.y > 0)
            {
                // Deadzone
                if (value < valueListener.deadZoneRange.x)
                {
                    value = 0;
                }
                else if (value > valueListener.deadZoneRange.y)
                {
                    value = valueListener.deadZoneRange.y;
                }
            }

            // Normalize
            if (valueListener.normalizeFactor > 0)
            {
                value = (value / valueListener.normalizeFactor);
            }

            // --- Set Value ---
            valueListener.value          = value;
            valueListener.lastUpdateTick = DateTime.Now.Ticks;
            _valueListener = valueListener;

            valueListeners[valueListenerIndex] = valueListener;

            return(true);
        }

        return(false);
    }