private void InvokeValueEvent(ValueListener valueListener) { if (valueListener.onUpdate != null) { valueListener.onUpdate.Invoke(valueListener.value); } }
public void WriteValueOnPercentage(string pinLabel) { ValueListener valueListener = new ValueListener(); if (FindValueListener(pinLabel, ref valueListener)) { WriteValue(1, valueListener.value * 255f); } }
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); }
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); }