public override void MouseButtonClicked(MouseInputAction inputAction, bool inside) { if (inside) { OnButtonPressed?.Invoke(inputAction); } }
static int set_EventOnPointerEnter(IntPtr L) { try { OnButtonPressed obj = (OnButtonPressed)ToLua.CheckObject(L, 1, typeof(OnButtonPressed)); EventObject arg0 = null; if (LuaDLL.lua_isuserdata(L, 2) != 0) { arg0 = (EventObject)ToLua.ToObject(L, 2); } else { return(LuaDLL.luaL_throw(L, "The event 'OnButtonPressed.EventOnPointerEnter' can only appear on the left hand side of += or -= when used outside of the type 'OnButtonPressed'")); } if (arg0.op == EventOp.Add) { OnButtonPressed.PointerEvent ev = (OnButtonPressed.PointerEvent)arg0.func; obj.EventOnPointerEnter += ev; } else if (arg0.op == EventOp.Sub) { OnButtonPressed.PointerEvent ev = (OnButtonPressed.PointerEvent)arg0.func; obj.EventOnPointerEnter -= ev; } return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
private void CheckButtonPressed(XInputControllerState state) { if (state.State.Gamepad.Buttons != GamepadButtonFlags.None) { OnButtonPressed?.Invoke(state); } }
public void CheckButton() { if (IsButtonPressed()) { OnButtonPressed.Invoke(); GetNewButton(); } }
public override void Update(GameTime gameTime) { base.Update(gameTime); if (Rectangle.Contains(MouseInput.MouseState.Position) && MouseInput.MouseState.LeftButton == ButtonState.Pressed && MouseInput.LastMouseState.LeftButton == ButtonState.Released) { OnButtonPressed?.Invoke(); } }
private void OnTriggerEnter2D(Collider2D collision) { if (collision.tag == "Player") { FindObjectOfType <AudioManager>().Play("Open"); OnButtonPressed?.Invoke(this, EventArgs.Empty); animator.Play("DoorButton_Pressed"); } }
void Awake() { anim = GetComponent <Animator>(); audio = GetComponent <AudioSource>(); Up = ButtonUp.GetComponent <OnButtonPressed>(); Down = ButtonDown.GetComponent <OnButtonPressed>(); Right = ButtonRight.GetComponent <OnButtonPressed>(); Left = ButtonLeft.GetComponent <OnButtonPressed>(); }
/// <summary> /// Locks the button when pressed /// </summary> public void LockButton() { if (button == null) { return; } button.interactable = false; button.image.color = new Color(0.08f, 0.27f, 0.48f); OnButtonPressed?.Invoke(txt.text); }
IEnumerator ButtonPressedCoroutine() { active = true; yield return(new WaitForSeconds(pressedTime)); active = false; pressed = false; anim.SetBool("Pressed", false); OnButtonPressed?.Invoke(id, false); }
public void OnPointerUp(PointerEventData eventData) { if (!_isActive) { return; } if (_isSelected == false) { _isSelected = true; OnButtonPressed?.Invoke(); startButtonAnimator.SetTrigger("start"); } }
private void CheckButton(int buttonId) { _bOldState = (_oldState & buttonId) == buttonId; _bNewState = (_state & buttonId) == buttonId; if (!_bOldState && _bNewState) { OnButtonPressed?.Invoke(this, buttonId); } if (_bOldState && !_bNewState) { OnButtonReleased?.Invoke(this, buttonId); } }
private void FireMouseEvents() { foreach (MouseButton button in ButtonList) { if (button == MouseButton.LEFT) { // Button is held down if (CurrentMouseState.LeftButton == ButtonState.Pressed) { OnButtonDown?.Invoke(this, new MouseEventArgs(button, CurrentMouseState, PrevMouseState)); } // Button is pressed once if (PrevMouseState.LeftButton == ButtonState.Released && CurrentMouseState.LeftButton == ButtonState.Pressed) { OnButtonPressed?.Invoke(this, new MouseEventArgs(button, CurrentMouseState, PrevMouseState)); } // Button is just released once if (PrevMouseState.LeftButton == ButtonState.Pressed && CurrentMouseState.LeftButton == ButtonState.Released) { OnButtonUp?.Invoke(this, new MouseEventArgs(button, CurrentMouseState, PrevMouseState)); } } else if (button == MouseButton.RIGHT) { // Button is held down if (CurrentMouseState.RightButton == ButtonState.Pressed) { OnButtonDown?.Invoke(this, new MouseEventArgs(button, CurrentMouseState, PrevMouseState)); } // Button is pressed once if (PrevMouseState.RightButton == ButtonState.Released && CurrentMouseState.RightButton == ButtonState.Pressed) { OnButtonPressed?.Invoke(this, new MouseEventArgs(button, CurrentMouseState, PrevMouseState)); } // Button is just released if (PrevMouseState.RightButton == ButtonState.Pressed && CurrentMouseState.RightButton == ButtonState.Released) { OnButtonUp?.Invoke(this, new MouseEventArgs(button, CurrentMouseState, PrevMouseState)); } } } }
static int OnPointerEnter(IntPtr L) { try { ToLua.CheckArgsCount(L, 2); OnButtonPressed obj = (OnButtonPressed)ToLua.CheckObject <OnButtonPressed>(L, 1); UnityEngine.EventSystems.PointerEventData arg0 = (UnityEngine.EventSystems.PointerEventData)ToLua.CheckObject <UnityEngine.EventSystems.PointerEventData>(L, 2); obj.OnPointerEnter(arg0); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
private void ReadButtons() { var previousButton = Buttons.None; while (true) { var currentButton = ButtonState; if (currentButton != previousButton) { OnButtonPressed?.Invoke(this, ButtonState); previousButton = currentButton; } Thread.Sleep(DEBOUNCE); } }
public static void Display(string text, string midOption, OnButtonPressed midPressed) { main.gameObject.SetActive(true); main.Erase(); main.boxContent = text; main.DisplayCharacter(); //main.leftText.text = leftOption; main.midText.text = midOption; //main.rightText.text = rightOption; //main.onLeftButtonPressed = leftPressed; main.onMidButtonPressed = midPressed; //main.onRightButtonPressed = rightPressed; }
private void Awake() { _blockButton.onClick.AddListener(delegate { OnButtonPressed?.Invoke(ButtonTypes.BlockButton); }); _homeButton.onClick.AddListener(delegate { OnButtonPressed?.Invoke(ButtonTypes.HomeButton); }); _gridButton.onClick.AddListener(delegate { OnButtonPressed?.Invoke(ButtonTypes.GridButton); }); }
private void processButtons(bool[] buttonsPressed) { // count the buttons that have are pressed in this frame int buttonCount = buttonsPressed.Count(true); // if no button is pressed, do nothing and return if (buttonCount == 0) { return; } // if there are more than one buttons pressed: automatic failure and return if (buttonCount > 1) { Log.Verbose("Trigger: {0} buttons pressed at once, resetting sequence.", buttonCount); OnButtonPressed?.Invoke(this, new ButtonPressedEventArgs(-1, scenario.CurrentSequenceIndex, false)); return; } // exactly one button pressed: process the pressed button int sequenceIndex = scenario.CurrentSequenceIndex; int buttonIndex = Array.IndexOf(buttonsPressed, true); bool correct = scenario.ProcessButtonPress(buttonIndex); // output for correct button if (correct) { if (scenario.SequenceCompleted) // game finished { Log.Verbose("Trigger: Correct button pressed, sequence completed."); } else { Log.Verbose("Trigger: Correct button pressed, sequence index advanced to {0}", scenario.CurrentSequenceIndex); } } // output for incorrect button and restart sequence if (!correct) { Log.Verbose("Trigger: Wrong button pressed, resetting sequence."); scenario.Restart(); } OnButtonPressed?.Invoke(this, new ButtonPressedEventArgs(buttonIndex, sequenceIndex, correct)); }
internal void InitGamePadHandlers() { _gamePadHandlers = new GamePadHandler[MaxGamePads]; for (int i = 0; i < MaxGamePads; i++) { var handle = _gamePadHandlers[i] = new GamePadHandler(i); // Redirect Events. handle.OnConnection += () => OnConnection?.Invoke(handle); handle.OnDisconnect += () => OnDisconnected?.Invoke(handle); handle.OnButtonDown += (button, value) => OnButtonDown?.Invoke(handle, button, value); handle.OnButtonUp += (button, value) => OnButtonUp?.Invoke(handle, button, value); handle.OnButtonPressed += (button, value) => OnButtonPressed?.Invoke(handle, button, value); handle.OnButtonClicked += (button, value) => OnButtonClicked?.Invoke(handle, button, value); handle.OnButtonReleased += (button, value) => OnButtonReleased?.Invoke(handle, button, value); } }
void Update() { var catCollider = Physics2D.OverlapCircle(transform.position, 0.1f, playerMask); CongaCat cat = null; if (catCollider) { cat = catCollider.GetComponent <CongaCat>(); } bool isChonker = cat && cat.Type == CatType.Chonk; if (!isChonker && !active && pressed) { StartCoroutine(ButtonPressedCoroutine()); } else if (isChonker && !pressed) { pressed = true; anim.SetBool("Pressed", true); OnButtonPressed?.Invoke(id, true); } }
private void RunNotifyButtonPressed(int pins) { bool isAdded = true; var changed = pins - _pinsChanged; if (changed < 0) { isAdded = false; changed *= -1; } for (int i = 16; i > 0; i--) { var pin = 1 << i; if (changed >= pin) { OnButtonPressed?.Invoke((TFTWING_BUTTON)pin, isAdded); changed -= pin; } } _pinsChanged = pins; }
private void ButtonPressed(ButtonType buttonType, InputAction.CallbackContext context) { CurrentInputSource = GetInputSource(context); OnButtonPressed?.Invoke(buttonType, CurrentInputSource); }
protected virtual void PressButton(InputButton inputButton) { OnButtonPressed?.Invoke(inputButton); }
public void ButtonPressed() { OnButtonPressed?.Invoke(); }
public void Click() { action?.Invoke(); OnButtonPressed?.Invoke(this); }
public static void InvokeButtonPress(bool action, XR_Enum.Hand hand, XR_Enum.FeatureUsageButton usageButton) { //Debug.Log(hand.ToString() + " InvokeButtonPress " + action + " UsageType: " + usageButton); OnButtonPressed?.Invoke(action, hand, usageButton); }
public void registerButtonPress(OnButtonPressed function) { onButtonPressed += function; }
override public void OnGUI(Rect rect) { //@@@@@@@@@@@@@@@@@@@@@@@ //Show notice if no items there. if (_items.Count == 0) { EditorGUILayout.LabelField(""); EditorGUILayout.LabelField("No elements here :(. Either your diagram is empty, or there's some association problem.", EditorStyles.boldLabel); return; } //@@@@@@@@@@@@@@@@@@@@@@@ //Title. EditorGUILayout.LabelField("Code Generator", EditorStyles.boldLabel); EditorGUILayout.BeginHorizontal(); //@@@@@@@@@@@@@@@@@@@@@@@ //Set general UI properties. EditorGUIUtility.labelWidth = 70; //@@@@@@@@@@@@@@@@@@@@@@@ //Place the "Search" text field. _filterValue = EditorGUILayout.TextField("Search:", _filterValue); if (GUILayout.Button("Generate", GUILayout.Width(100))) { Debug.Log("Generating!"); //Send selected items via event. var selectedItems = new List <SearchListItem>(); foreach (SearchListItem sli in _items) { if (sli.Checked) { selectedItems.Add(sli); } } OnButtonPressed?.Invoke(selectedItems); editorWindow.Close(); } EditorGUILayout.EndHorizontal(); DrawLineInInspector(Color.black, 2, 10); //@@@@@@@@@@@@@@@@@@@@@@@ //Create Tag Buttons. EditorGUILayout.BeginHorizontal(); int buttonsPerRow = (int)Math.Floor((double)Screen.width / 65); int currentRow = 0; int currentButton = 1; //Create Tag filter buttons. foreach (ITagProvider node in _tags) { node.Checked = EditorGUILayout.Toggle(node.Checked, GUILayout.MaxWidth(15), GUILayout.Height(_someTagsHaveImages ? _maxTagHeight : 15)); GUIContent buttonContent = new GUIContent(node.Aspect); buttonContent.text = ""; buttonContent.tooltip = (node.Checked ? "Un-select" : "Select") + " " + node.Name + "s"; if (GUILayout.Button(buttonContent, GUILayout.MaxWidth(30), GUILayout.Height(30))) { node.Checked = !node.Checked; } EditorGUILayout.Space(5); //Exceeded number of buttons per row? if (currentButton++ > buttonsPerRow) { //Align everything to left. GUILayout.FlexibleSpace(); //New row; EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); currentButton = 1; currentRow++; } } GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); //@@@@@@@@@@@@@@@@@@@@@@@ //Was any Tag filtering done? bool anyTagChecked = false; foreach (SearchListItem item in _items) { //More items may have the same TagProvider, and its Checked property is controlled above, in node.Checked. if (item.TagProvider != null && item.TagProvider.Checked) { anyTagChecked = true; break; } } //@@@@@@@@@@@@@@@@@@@@@@@ //Mass-selection buttons. EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Select:", GUILayout.Width(69)); if (GUILayout.Button("All", GUILayout.Width(70))) { foreach (SearchListItem item in _items) { if (ShouldBeVisible(item, anyTagChecked)) { item.Checked = true; } } } if (GUILayout.Button("None", GUILayout.Width(70))) { foreach (SearchListItem item in _items) { if (ShouldBeVisible(item, anyTagChecked)) { item.Checked = false; } } } if (GUILayout.Button("Inverse", GUILayout.Width(70))) { foreach (SearchListItem item in _items) { if (ShouldBeVisible(item, anyTagChecked)) { item.Checked = !item.Checked; } } } EditorGUILayout.EndHorizontal(); //@@@@@@@@@@@@@@@@@@@@@@@ //List of items. //Since the above UI element the last before the Scroll View, get its rect. We'll need it to determine scroll view height. if (Event.current.type == EventType.Repaint) { lastRectBeforeScrollView = GUILayoutUtility.GetLastRect(); } float scrollViewHeight = _height - (lastRectBeforeScrollView.y + lastRectBeforeScrollView.height) - 10; DrawLineInInspector(Color.black, 1, 5); scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.Width(Screen.width - 10), GUILayout.Height(scrollViewHeight)); foreach (SearchListItem item in _items) { if (!ShouldBeVisible(item, anyTagChecked)) { continue; } EditorGUILayout.BeginHorizontal(); //Add Image, if any. if (item.TagProvider != null && item.TagProvider.Aspect != null) { GUILayout.Box(item.TagProvider.Aspect); } //If there's no image, but other items have images, add a placeholder. else if (_someListItemsHaveTagsWithImages) { GUILayout.Box(new Texture2D(_maxListItemTagWidth, _maxListItemTagHeight)); } //Configure Checkbox. List <GUILayoutOption> toggleLayoutOptions = new List <GUILayoutOption>(); toggleLayoutOptions.Add(GUILayout.MaxWidth(15)); //If we have images, make sure the checkbox is aligned with them. if (_someListItemsHaveTagsWithImages) { toggleLayoutOptions.Add(GUILayout.Height(_maxListItemTagHeight + (_maxListItemTagHeight / 2))); } //Add Checkbox. item.Checked = EditorGUILayout.Toggle(item.Checked, toggleLayoutOptions.ToArray()); //Configure Label. List <GUILayoutOption> labelLayoutOptions = new List <GUILayoutOption>(); //If we have images, make sure the label is aligned with them. if (_someListItemsHaveTagsWithImages) { labelLayoutOptions.Add(GUILayout.Height(_maxListItemTagHeight + (_maxListItemTagHeight / 2))); } //Add Label. EditorGUILayout.LabelField(item.Name, labelLayoutOptions.ToArray()); //Next line! EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndScrollView(); }
public static void InvokeEvents() { if (OnLeftButtonDown != null && IsButtonDown(MouseButton.Left)) { OnLeftButtonDown.Invoke(currentState); } if (OnLeftButtonPressed != null && IsButtonPressed(MouseButton.Left)) { OnLeftButtonPressed.Invoke(currentState); } if (OnLeftButtonReleased != null && IsButtonReleased(MouseButton.Left)) { OnLeftButtonReleased.Invoke(currentState); } if (OnRightButtonDown != null && IsButtonDown(MouseButton.Right)) { OnRightButtonDown.Invoke(currentState); } if (OnRightButtonPressed != null && IsButtonPressed(MouseButton.Right)) { OnRightButtonPressed.Invoke(currentState); } if (OnRightButtonReleased != null && IsButtonReleased(MouseButton.Right)) { OnRightButtonReleased.Invoke(currentState); } if (OnMiddleButtonDown != null && IsButtonDown(MouseButton.Middle)) { OnMiddleButtonDown.Invoke(currentState); } if (OnMiddleButtonPressed != null && IsButtonPressed(MouseButton.Middle)) { OnMiddleButtonPressed.Invoke(currentState); } if (OnMiddleButtonReleased != null && IsButtonReleased(MouseButton.Middle)) { OnMiddleButtonReleased.Invoke(currentState); } if (OnXButton1Down != null && IsButtonDown(MouseButton.XButton1)) { OnXButton1Down.Invoke(currentState); } if (OnXButton1Pressed != null && IsButtonPressed(MouseButton.XButton1)) { OnXButton1Pressed.Invoke(currentState); } if (OnXButton1Released != null && IsButtonReleased(MouseButton.XButton1)) { OnXButton1Released.Invoke(currentState); } if (OnXButton2Down != null && IsButtonDown(MouseButton.XButton2)) { OnXButton2Down.Invoke(currentState); } if (OnXButton2Pressed != null && IsButtonPressed(MouseButton.XButton2)) { OnXButton2Pressed.Invoke(currentState); } if (OnXButton2Released != null && IsButtonReleased(MouseButton.XButton2)) { OnXButton2Released.Invoke(currentState); } if (OnButtonDown != null && IsButtonDown(MouseButton.Any)) { OnButtonDown.Invoke(currentState, GetDownButtons()); } if (OnButtonPressed != null && IsButtonPressed(MouseButton.Any)) { OnButtonPressed.Invoke(currentState, GetPressedButtons()); } if (OnButtonReleased != null && IsButtonReleased(MouseButton.Any)) { OnButtonReleased.Invoke(currentState, GetReleasedButtons()); } if (OnMouseWheelUp != null && IsMouseWheelUp()) { OnMouseWheelUp.Invoke(currentState); } if (OnMouseWheelDown != null && IsMouseWheelDown()) { OnMouseWheelDown.Invoke(currentState); } if (OnMouseMove != null && IsMouseMoving()) { OnMouseMove.Invoke(currentState, GetMoveDirection()); } }
public void ButtonPressed(Location location, ButtonEvent buttonEvent) { OnButtonPressed?.Invoke(this, Tuple.Create(location, buttonEvent)); }
private void _timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { if (_isRunning) { return; } _isRunning = true; try { Execute(OpCode.QUERY_PACKET, 100); _buffer.AddRange(IO.ReadBytes(IO.BytesToRead)); while (_buffer.Count >= 80 && _timer != null) { var data = _buffer.Take(80).ToArray(); _buffer.RemoveRange(0, 80); var sensorData = new SensorData(data); ARC.Scripting.VariableManager.SetVariable("$RoombaAngle", sensorData.Angle); ARC.Scripting.VariableManager.SetVariable("$RoombaBatteryCapacity", sensorData.BatteryCapacity); ARC.Scripting.VariableManager.SetVariable("$RoombaBatteryCharge", sensorData.BatteryCharge); ARC.Scripting.VariableManager.SetVariable("$RoombaBumpLeft", sensorData.BumpLeft); ARC.Scripting.VariableManager.SetVariable("$RoombaBumpRight", sensorData.BumpRight); ARC.Scripting.VariableManager.SetVariable("$RoombaButtonClean", sensorData.ButtonClean); ARC.Scripting.VariableManager.SetVariable("$RoombaButtonClock", sensorData.ButtonClock); ARC.Scripting.VariableManager.SetVariable("$RoombaButtonDay", sensorData.ButtonDay); ARC.Scripting.VariableManager.SetVariable("$RoombaButtonDock", sensorData.ButtonDock); ARC.Scripting.VariableManager.SetVariable("$RoombaButtonHour", sensorData.ButtonHour); ARC.Scripting.VariableManager.SetVariable("$RoombaButtonMinute", sensorData.ButtonMinute); ARC.Scripting.VariableManager.SetVariable("$RoombaButtonSchedule", sensorData.ButtonSchedule); ARC.Scripting.VariableManager.SetVariable("$RoombaButtonSpot", sensorData.ButtonSpot); bool btnState = sensorData.ButtonState > 0; if (btnState && !_lastButtonState) { OnButtonPressed?.Invoke(this, btnState); } _lastButtonState = btnState; ARC.Scripting.VariableManager.SetVariable("$RoombaChargingSourceHomeBase", sensorData.ChargingSourceHomeBase); ARC.Scripting.VariableManager.SetVariable("$RoombaChargingSourceCharger", sensorData.ChargingSourceInternalCharger); ARC.Scripting.VariableManager.SetVariable("$RoombaChargingState", sensorData.ChargingState); ARC.Scripting.VariableManager.SetVariable("$RoombaCliffFrontLeft", sensorData.CliffFrontLeft); ARC.Scripting.VariableManager.SetVariable("$RoombaCliffFrontLeftSignal", sensorData.CliffFrontLeftSignal); ARC.Scripting.VariableManager.SetVariable("$RoombaCliffFrontRight", sensorData.CliffFrontRight); ARC.Scripting.VariableManager.SetVariable("$RoombaCliffFrontRightSignal", sensorData.CliffFrontRightSignal); ARC.Scripting.VariableManager.SetVariable("$RoombaCliffLeft", sensorData.CliffLeft); ARC.Scripting.VariableManager.SetVariable("$RoombaCliffLeftSignal", sensorData.CliffLeftSignal); ARC.Scripting.VariableManager.SetVariable("$RoombaCliffRight", sensorData.CliffRight); ARC.Scripting.VariableManager.SetVariable("$RoombaCliffRightSignal", sensorData.CliffRightSignal); ARC.Scripting.VariableManager.SetVariable("$RoombaCurrent", sensorData.Current); ARC.Scripting.VariableManager.SetVariable("$RoombaDirtDetect", sensorData.DirtDetect); ARC.Scripting.VariableManager.SetVariable("$RoombaDistance", sensorData.Distance); ARC.Scripting.VariableManager.SetVariable("$RoombaInfraredCharacterLeft", sensorData.InfraredCharacterLeft); ARC.Scripting.VariableManager.SetVariable("$RoombaInfraredCharacterOmni", sensorData.InfraredCharacterOmni); ARC.Scripting.VariableManager.SetVariable("$RoombaInfraredCharacterRight", sensorData.InfraredCharacterRight); ARC.Scripting.VariableManager.SetVariable("$RoombaLeftEncoderCounts", sensorData.LeftEncoderCounts); ARC.Scripting.VariableManager.SetVariable("$RoombaLeftMotorCurrent", sensorData.LeftMotorCurrent); ARC.Scripting.VariableManager.SetVariable("$RoombaLightBumperCenterLeft", sensorData.LightBumperCenterLeft); ARC.Scripting.VariableManager.SetVariable("$RoombaLightBumperCenterLeftSignal", sensorData.LightBumperCenterLeftSignal); ARC.Scripting.VariableManager.SetVariable("$RoombaLightBumperCenterRight", sensorData.LightBumperCenterRight); ARC.Scripting.VariableManager.SetVariable("$RoombaLightBumperCenterRightSignal", sensorData.LightBumperCenterRightSignal); ARC.Scripting.VariableManager.SetVariable("$RoombaLightBumperFrontLeft", sensorData.LightBumperFrontLeft); ARC.Scripting.VariableManager.SetVariable("$RoombaLightBumperFrontLeftSignal", sensorData.LightBumperFrontLeftSignal); ARC.Scripting.VariableManager.SetVariable("$RoombaLightBumperFrontRight", sensorData.LightBumperFrontRight); ARC.Scripting.VariableManager.SetVariable("$RoombaLightBumperFrontRightSignal", sensorData.LightBumperFrontRightSignal); ARC.Scripting.VariableManager.SetVariable("$RoombaLightBumperLeft", sensorData.LightBumperLeft); ARC.Scripting.VariableManager.SetVariable("$RoombaLightBumperLeftSignal", sensorData.LightBumperLeftSignal); ARC.Scripting.VariableManager.SetVariable("$RoombaLightBumperRight", sensorData.LightBumperRight); ARC.Scripting.VariableManager.SetVariable("$RoombaLightBumperRightSignal", sensorData.LightBumperRightSignal); ARC.Scripting.VariableManager.SetVariable("$RoombaMainBrushMotorCurrent", sensorData.MainBrushMotorCurrent); ARC.Scripting.VariableManager.SetVariable("$RoombaNumberOfStreamPackets", sensorData.NumberOfStreamPackets); ARC.Scripting.VariableManager.SetVariable("$RoombaOIMode", sensorData.OIMode); ARC.Scripting.VariableManager.SetVariable("$RoombaOverCurrentLeftWheel", sensorData.OverCurrentLeftWheel); ARC.Scripting.VariableManager.SetVariable("$RoombaOverCurrentMainBrush", sensorData.OverCurrentMainBrush); ARC.Scripting.VariableManager.SetVariable("$RoombaOverCurrentRightWheel", sensorData.OverCurrentRightWheel); ARC.Scripting.VariableManager.SetVariable("$RoombaOverCurrentSideBrush", sensorData.OverCurrentSideBrush); ARC.Scripting.VariableManager.SetVariable("$RoombaRequestedLeftVelocity", sensorData.RequestedLeftVelocity); ARC.Scripting.VariableManager.SetVariable("$RoombaRequestedRadius", sensorData.RequestedRadius); ARC.Scripting.VariableManager.SetVariable("$RoombaRequestedRightVelocity", sensorData.RequestedRightVelocity); ARC.Scripting.VariableManager.SetVariable("$RoombaRequestedVelocity", sensorData.RequestedVelocity); ARC.Scripting.VariableManager.SetVariable("$RoombaRightEncoderCounts", sensorData.RightEncoderCounts); ARC.Scripting.VariableManager.SetVariable("$RoombaRightMotorCurrent", sensorData.RightMotorCurrent); ARC.Scripting.VariableManager.SetVariable("$RoombaSideBrushMotorCurrent", sensorData.SideBrushMotorCurrent); ARC.Scripting.VariableManager.SetVariable("$RoombaSongNumber", sensorData.SongNumber); ARC.Scripting.VariableManager.SetVariable("$RoombaSongPlaying", sensorData.SongPlaying); ARC.Scripting.VariableManager.SetVariable("$RoombaStatis", sensorData.Statis); ARC.Scripting.VariableManager.SetVariable("$RoombaTemperature", sensorData.Temperature); ARC.Scripting.VariableManager.SetVariable("$RoombaVirtualWall", sensorData.VirtualWall); ARC.Scripting.VariableManager.SetVariable("$RoombaVoltage", Math.Round((decimal)sensorData.Voltage / 1000, 2)); ARC.Scripting.VariableManager.SetVariable("$RoombaWall", sensorData.Wall); ARC.Scripting.VariableManager.SetVariable("$RoombaWallSignal", sensorData.WallSignal); ARC.Scripting.VariableManager.SetVariable("$RoombaWheelDropLeft", sensorData.WheelDropLeft); ARC.Scripting.VariableManager.SetVariable("$RoombaWheelDropRight", sensorData.WheelDropRight); //if (_sendNMS) { // var distance = ((sensorData.RightEncoderCounts + sensorData.LeftEncoderCounts) / 2d) / 25.8d; // ARC.MessagingService.Navigation2DV1.Messenger.UpdateLocation( // (int)EZ_B.Functions.DegX2(distance, sensorData.Angle), // (int)EZ_B.Functions.DegY2(distance, sensorData.Angle), // 255, // (int)delta); //} _streamPacketCnt++; OnStreamPacketCnt?.Invoke(this, _streamPacketCnt); sensorData = null; } } catch (Exception ex) { OnError?.Invoke(this, ex); StopStreaming(); } finally { _isRunning = false; } }