开源改变世界

没有将 SD 卡插入 MidTBot 的 SD 卡“刷新”会阻止执行更多命令并出现“错误 120” #724

推推 grbl 3年前 (2023-01-30) 106次浏览
关闭
Leemonoid 打开了这个问题 2020 年 12 月 29 日 · 6条评论
关闭

注释

没有将 SD 卡插入 MidTBot 的 SD 卡“刷新”会阻止执行更多命令并出现“错误 120” #724

您使用的是什么版本的固件?
1.3a 20201212

问题是否可重复?
是的

什么情况下会出现bug?
在没有将 SD 卡插入 MidTBot 的情况下,单击 Web GUI 中的“刷新”按钮。最终,“未插入 SD 卡”消息将出现在 SD 卡窗口中,但尝试执行任何进一步的命令(例如 $X)将报告“错误 120 [MSG:SD 卡作业正在运行]”。我发现克服错误的唯一方法是手动重置 ESP32。

没有将 SD 卡插入 MidTBot 的 SD 卡“刷新”会阻止执行更多命令并出现“错误 120” #724 Leemonoid 添加了 漏洞 有些东西不工作标签 2020 年 12 月 29 日
没有将 SD 卡插入 MidTBot 的 SD 卡“刷新”会阻止执行更多命令并出现“错误 120” #724
所有者

我已确认问题并将其添加到我们的问题跟踪器中。这可能是一个可以包含在下一次更新中的简单修复。

没有将 SD 卡插入 MidTBot 的 SD 卡“刷新”会阻止执行更多命令并出现“错误 120” #724

解决方案如下..
我已经解决了这个问题。如下修改 sdcard.cpp 找到“get_sd_state”并替换为下面,我苦苦挣扎了好几天,意识到卡上的所有预检查都在那里导致它在无卡刷新后不费心检查卡…这解决了它通过消除任何不检查的概念,即它总是检查……注意复制作为 vebatim 很多被注释掉但留下以防有人找到更好的方法。请注意它的工作原理是复制并粘贴它……干杯

修改文件SDCard.CPP

uint8_t get_sd_state(bool refresh) {
/*
if (SDCARD_DET_PIN != UNDEFINED_PIN) {
if (digitalRead(SDCARD_DET_PIN) != SDCARD_DET_VAL) {
sd_state = SDCARD_NOT_PRESENT;
返回 sd_state;
//如果 SD 检测不正确,则无需更进一步
}
}

如果(!刷新){
返回 sd_state; //避免refresh=true + busy to reset
SD
浪费 时间= SDCARD_IDLE))) { 返回 sd_state; }

if ((sd_state == SDCARD_NOT_PRESENT)) { //|| (sd_state == SDCARD_IDLE))) {
SD.end();
返回 sd_state;
}

如果 (!(sd_state == SDCARD_IDLE)) {
返回 sd_state;
}

/////////////Norm Mod ends

*/
if (!refresh) {
返回 sd_state; //避免refresh=true + busy重置SD浪费时间
}

//SD is idle or not detected, let see if still the case

// SD.end();
// sd_state = SDCARD_NOT_PRESENT;

//using default value for speed ? should be parameter
//refresh content if card was removed
if (SD.begin((GRBL_SPI_SS == -1) ? SS : GRBL_SPI_SS, SPI, GRBL_SPI_FREQ, "/sd", 2)) {
    if (SD.cardSize() > 0) {
        sd_state = SDCARD_IDLE;
    }
}
return sd_state;

}

没有将 SD 卡插入 MidTBot 的 SD 卡“刷新”会阻止执行更多命令并出现“错误 120” #724
所有者

我们最近对 SD 卡进行了一些更改。你看过最新的代码了吗?

没有将 SD 卡插入 MidTBot 的 SD 卡“刷新”会阻止执行更多命令并出现“错误 120” #724

我们最近对 SD 卡进行了一些更改。你看过最新的代码了吗?

抱歉,刚来这里,但我发布了我的解决方案,它对我有用…如果我需要以不同的方式发布,请告诉我。上面的代码是修复…

没有将 SD 卡插入 MidTBot 的 SD 卡“刷新”会阻止执行更多命令并出现“错误 120” #724
所有者

最好的方法是创建拉取请求。它使我们很容易看到对当前代码的影响。我们这里有指南。

https://github.com/bdring/Grbl_Esp32/wiki/Pull-Request-Guidelines

没有将 SD 卡插入 MidTBot 的 SD 卡“刷新”会阻止执行更多命令并出现“错误 120” #724
作者

关闭这个问题。使用最新的固件版本,问题已得到纠正。谢谢!