注释
|
嗯,不知道是什么问题。当小数位数为零时,您想删除 ‘.’ 吗? |
|
是的 |
|
行。那么,删除“.”的目的是什么?您运行的机器是否具有大于 1 毫米的分辨率或精度?当您发送“?”时,此值主要控制您机器的实时位置值。特点。当我写那个 float to string 函数时,我假设小数位数总是在 1-4 之间,因为几乎每台 CNC 机器都在这个范围内。这不是你的情况吗? |
|
我使用从属 arduino 用作 DRO 和旋转编码器,用于用户移动和菜单选择。我使用从 grbl master arduino 返回的值进行一些计算,并将它们呈现给机器的用户。 我的解析器在小数点上出错了。 我认为将值固定为零小数或不允许小数为零是个好主意。我的偏好是将值固定为零位小数。 我更像是一个 C# 人,但一定有几十个 C 函数以正确的方式格式化浮点数吗? |
|
很公平。我会看看,看看我能为你做什么。有许多 C 函数确实可以正确格式化浮点数,但是当我对它们进行调查时,它们的计算成本都太高了。我们必须确保它尽可能快速且便宜,以便实时定位反馈不会过多地拖累系统的其余部分。我认为最终我们将“.”后 1-4 个数字的这种有限情况的计算时间减少了一半。 |
|
我怀疑这些变化会影响我正在做的事情,但我是一个非常可靠的人?对此。
这听起来像你需要一个更好的解析器。 |
|
@tmpvar: 奇怪:报告的怪癖/错误/缺陷不需要修复? |
|
@JohnnyBerg Grbl 人员应该修复他们的输出例程,您必须更改解析器。为什么?因为 Grbl 是一个非常受限的代码库,而且实际上可能没有编写另一个代码的空间, |
|
@csdexter不能再说了? |


在 edge 中发出 $18=0 ($12=0 in master)
这是输出:
$18=0
$$
$0=250。(x, 步长/mm)
$1=250。(y,步长/毫米)
$2=250。(z, step/mm)
$3=500。(x v_max, mm/min)
$4=500。(y v_max, mm/min)
字符串格式不正确。问题出在 print.c 的第 138 行附近