Esempio n. 1
0
        /// <summary>
        /// Get all grbl parameters
        /// </summary>
        /// <returns>List of grbl parameter object</returns>
        public List <GrblParameterBase> GetParameters()
        {
            List <GrblParameterBase> result = new List <GrblParameterBase>();

            foreach (var entry in parameterHash)
            {
                string            id    = entry.Key.ToString();
                string            val   = entry.Value.ToString();
                GrblParameterBase param = new GrblParameterBase(id, val);
                result.Add(param);
            }

            return(result.OrderBy(p => Convert.ToInt16(p.ID)).ToList <GrblParameterBase>());
        }
Esempio n. 2
0
 /// <summary>
 /// Process Grbl parameter string
 /// </summary>
 /// <param name="parameterStr"></param>
 private void ProcessParameter(string parameterStr)
 {
     parameterStr = parameterStr.Substring(1);
     string[] flds = parameterStr.Split('=');
     SetParameter(flds[0].Trim(), flds[1].Trim());
     if (GrblParameterBase.IsLastParameter(flds[0]))
     {
         GrblResponseEventArgs args = new GrblResponseEventArgs()
         {
             EventType = "ParameterUpdate"
         };
         OnResponseReceived(args);
     }
 }
Esempio n. 3
0
        /// <summary>
        /// Open grbl port
        /// </summary>
        /// <param name="portDesc">port description object</param>
        /// <returns></returns>
        public bool Open(PortDesc portDesc)
        {
            bool IsConnected = false;



            //Initiate parameter descriptions and types
            GrblParameterBase.Init();

            //Initialize the serial port
            grblPort = new SerialPort(portDesc.DeviceId, 115200, Parity.None, 8, StopBits.One);

            //Setup event handler
            grblPort.DataReceived += GrblPort_DataReceived;

            grblPort.ErrorReceived += GrblPort_ErrorReceived;

            //Open the port
            if (!grblPort.IsOpen)
            {
                try
                {
                    grblPort.Open();

                    this.portDesc = portDesc;

                    System.Threading.Thread.Sleep(1000);
                    CMD_RESET();
                    System.Threading.Thread.Sleep(1000);
                    CMD_QUERY();
                }
                catch (Exception e)
                {
                    //Raise port open error event
                }
            }
            else
            {
                //Raise port already open event;
            }

            if (grblPort.IsOpen)
            {
                PortStateChangeArg arg = new PortStateChangeArg();
                arg.State = "Connected";
                OnPortEvent(arg);

                CMD_GETOFFSET();

                queryThread = new Thread(delegate()
                {
                    StartQueryLoop();
                });

                queryThread.Start();

                IsConnected = true;
            }

            return(IsConnected);
        }