Exemplo n.º 1
0
        private void PeriodicGetInfo()
        {
            try
            {
                if (!Connected)
                {
                    return;
                }

                var values = _connection.ReadVariables(_variablesToRead);

                using (var state = GlobalState.GetState())
                {
                    for (int i = 0; i < NB_MOTOR; i++)
                    {
                        var position = (int)values[2 * i].Value;
                        var enabled  = (bool)values[2 * i + 1].Value;

                        var m = state.Motors.Motors.FirstOrDefault((x) => x.Board == _index && x.Index == i);

                        if (m != null)
                        {
                            m.SetState(enabled, position);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Log(ex);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Read a variable once
        /// </summary>
        private void btnRead_Click(object sender, EventArgs e)
        {
            try
            {
                Cursor = Cursors.WaitCursor;
                if (_connection != null && _connection.Connected)
                {
                    var names = new List <string>();
                    var txts  = new List <TextBox>();

                    foreach (var pnl in this.pnlVariables.Controls.OfType <FlowLayoutPanel>())
                    {
                        var chk = pnl.Controls.OfType <CheckBox>().First();
                        if (chk.Checked)
                        {
                            names.Add(chk.Name);
                            txts.Add(pnl.Controls.OfType <TextBox>().First());
                        }
                    }

                    var values = _connection.ReadVariables(names.ToArray());

                    for (int i = 0; i < values.Count; i++)
                    {
                        txts[i].Text      = values[i].ToString();
                        txts[i].ForeColor = values[i].Status == Command.SharerReadVariableStatus.OK ? Color.Black : Color.Red;
                        tt.SetToolTip(txts[i], values[i].Status.ToString());

                        if (startRecord)
                        {
                            _record.Append(txts[i].Text);
                            _record.Append(";");
                        }
                    }
                }

                if (startRecord)
                {
                    _record.AppendLine();
                }
            }
            catch (Exception ex)
            {
                handleException(ex);
            }
            finally
            {
                Cursor = Cursors.Default;
            }
        }
        private void Arduino_Tick(object sender, EventArgs e)
        {
            try
            {
                var values = connection.ReadVariables(new string[] { "encoder", "Loadcell_Mass", "Srdy", });
                SharedVariables.EncoderRaw     = Convert.ToDouble(values[0].Value);
                SharedVariables.LoadcellScaled = Convert.ToDouble(values[1].Value);
                SharedVariables.Servo_Rdy      = Convert.ToBoolean(values[2].Value);
            }

            catch (Exception ex)
            {
                MessageBox.Show("Connection Lost, Please check and Press Connect" + ex);
                connection.Disconnect();
                Arduino.Stop();
            }
        }