开源改变世界!!

新的 smoothiware 状态格式 #692

推推 grbl 2年前 (2023-01-27) 169次浏览
打开
gerrylenz 打开了这个问题 2019 年 7 月 2 日 · 2 条评论
打开

新的 smoothiware 状态格式#692

gerrylenz 打开了这个问题 2019 年 7 月 2 日 · 2 条评论

注释

新的 smoothiware 状态格式 #692

Smoothieware 现在使用与 grbl 格式相同的状态格式。
GrblCores.cs 第 1475 行的更改

GrblVersionInfo rversion = StatusReportVersion(rline);
if (rversion > new GrblVersionInfo(1, 1))
{
  //grbl > 1.1 - https://github.com/gnea/grbl/wiki/Grbl-v1.1-Interface#real-time-status-reports
  string[] arr = rline.Split("|".ToCharArray());

  ParseMachineStatus(arr[0]);

  if (rversion > new GrblVersionInfo(1, 1))
    for (int i = 1; i < arr.Length; i++)
    {
    if (arr[i].StartsWith("Ov:"))
      ParseOverrides(arr[i]);
    else if (arr[i].StartsWith("Bf:"))
      ParseBf(arr[i]);
    else if (arr[i].StartsWith("WPos:"))
      ParseWPos(arr[i]);
    else if (arr[i].StartsWith("MPos:"))
      ParseMPos(arr[i]);
    else if (arr[i].StartsWith("WCO:"))
      ParseWCO(arr[i]);
    else if (arr[i].StartsWith("FS:"))
      ParseFS(arr[i]);
    else if (arr[i].StartsWith("F:"))
      ParseF(arr[i]);
    }
  }
  else //<Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,0.000>
  {
  string[] arr = rline.Split(",".ToCharArray());

  if (arr.Length > 0)
    ParseMachineStatus(arr[0]);
  if (arr.Length > 3)
    SetMPosition(new GPoint(float.Parse(arr[1].Substring(5, arr[1].Length - 5), System.Globalization.NumberFormatInfo.InvariantInfo), float.Parse(arr[2], System.Globalization.NumberFormatInfo.InvariantInfo), float.Parse(arr[3], System.Globalization.NumberFormatInfo.InvariantInfo)));
  if (arr.Length > 6)
    ComputeWCO(new GPoint(float.Parse(arr[4].Substring(5, arr[4].Length - 5), System.Globalization.NumberFormatInfo.InvariantInfo), float.Parse(arr[5], System.Globalization.NumberFormatInfo.InvariantInfo), float.Parse(arr[6], System.Globalization.NumberFormatInfo.InvariantInfo)));
  }

change to
/*
GrblVersionInfo rversion = StatusReportVersion(rline);
if (rversion > new GrblVersionInfo(1, 1))
{
*/
  //grbl > 1.1 - https://github.com/gnea/grbl/wiki/Grbl-v1.1-Interface#real-time-status-reports
  string[] arr = rline.Split("|".ToCharArray());

  ParseMachineStatus(arr[0]);

  if (rversion > new GrblVersionInfo(1, 1))
    for (int i = 1; i < arr.Length; i++)
    {
    if (arr[i].StartsWith("Ov:"))
      ParseOverrides(arr[i]);
    else if (arr[i].StartsWith("Bf:"))
      ParseBf(arr[i]);
    else if (arr[i].StartsWith("WPos:"))
      ParseWPos(arr[i]);
    else if (arr[i].StartsWith("MPos:"))
      ParseMPos(arr[i]);
    else if (arr[i].StartsWith("WCO:"))
      ParseWCO(arr[i]);
    else if (arr[i].StartsWith("FS:"))
      ParseFS(arr[i]);
    else if (arr[i].StartsWith("F:"))
      ParseF(arr[i]);
    }
/*    
}
else //<Idle,MPos:0.000,0.000,0.000,WPos:0.000,0.000,0.000>
{
  string[] arr = rline.Split(",".ToCharArray());

  if (arr.Length > 0)
    ParseMachineStatus(arr[0]);
  if (arr.Length > 3)
    SetMPosition(new GPoint(float.Parse(arr[1].Substring(5, arr[1].Length - 5), System.Globalization.NumberFormatInfo.InvariantInfo), float.Parse(arr[2], System.Globalization.NumberFormatInfo.InvariantInfo), float.Parse(arr[3], System.Globalization.NumberFormatInfo.InvariantInfo)));
  if (arr.Length > 6)
    ComputeWCO(new GPoint(float.Parse(arr[4].Substring(5, arr[4].Length - 5), System.Globalization.NumberFormatInfo.InvariantInfo), float.Parse(arr[5], System.Globalization.NumberFormatInfo.InvariantInfo), float.Parse(arr[6], System.Globalization.NumberFormatInfo.InvariantInfo)));
}
*/

问候
格里

新的 smoothiware 状态格式 #692
所有者

“else”用于解析旧的 0.9 grbl 状态字符串,不能被注释掉。

新的 smoothiware 状态格式 #692
作者

正确的。使用 grbl 1.f 测试解决方法

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
项目

还没有

发展

没有分支机构或拉取请求

2名参加者
新的 smoothiware 状态格式 #692新的 smoothiware 状态格式 #692

喜欢 (0)