Работает команда M30 (удаление
файлов) из Cura
This commit is contained in:
@@ -422,7 +422,17 @@ void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) {
|
||||
break; // M27: Get SD status
|
||||
case 28: M28(); break; // M28: Start SD write
|
||||
case 29: M29(); break; // M29: Stop SD write
|
||||
case 30: M30(); break; // M30 <filename> Delete File
|
||||
case 30:
|
||||
#if ENABLED(MKS_WIFI)
|
||||
if(!serial_port_index){
|
||||
M30();
|
||||
}else{
|
||||
mks_m30(parser.string_arg);
|
||||
}
|
||||
#else
|
||||
M30();
|
||||
#endif
|
||||
break; // M30 <filename> Delete File
|
||||
case 32: M32(); break; // M32: Select file and start SD print
|
||||
|
||||
#if ENABLED(LONG_FILENAME_HOST_SUPPORT)
|
||||
|
||||
@@ -67,7 +67,12 @@ DRESULT disk_read (
|
||||
uint8_t res=0;
|
||||
|
||||
if(pdrv == DEV_SD){
|
||||
return RES_ERROR;
|
||||
res=sd_read((uint8_t*)buff,sector,count);
|
||||
if(res){
|
||||
return RES_ERROR;
|
||||
}else{
|
||||
return RES_OK;
|
||||
}
|
||||
};
|
||||
return RES_PARERR;
|
||||
}
|
||||
@@ -88,7 +93,12 @@ DRESULT disk_write (
|
||||
uint8_t res;
|
||||
|
||||
if(pdrv == DEV_SD){
|
||||
return RES_ERROR;
|
||||
res=sd_write((uint8_t*)buff,sector,count);
|
||||
if(res){
|
||||
return RES_ERROR;
|
||||
}else{
|
||||
return RES_OK;
|
||||
}
|
||||
};
|
||||
return RES_PARERR;
|
||||
}
|
||||
|
||||
@@ -77,3 +77,11 @@ void mks_m27(void){
|
||||
SERIAL_ECHOLN(100);
|
||||
}
|
||||
}
|
||||
|
||||
void mks_m30(char *filename){
|
||||
|
||||
filename[0]='0';
|
||||
DEBUG("M30: %s",filename);
|
||||
sd_delete_file(filename);
|
||||
|
||||
}
|
||||
@@ -5,11 +5,13 @@
|
||||
#include "../temperature.h"
|
||||
#include "../../sd/cardreader.h"
|
||||
#include "mks_wifi.h"
|
||||
#include "mks_wifi_sd.h"
|
||||
|
||||
void mks_m991(void);
|
||||
void mks_m997(void);
|
||||
void mks_m115(void);
|
||||
void mks_m105(void);
|
||||
void mks_m27(void);
|
||||
void mks_m30(char *filename);
|
||||
|
||||
#endif
|
||||
@@ -4,12 +4,39 @@
|
||||
|
||||
FRESULT result;
|
||||
FATFS FATFS_Obj;
|
||||
DIR dir;
|
||||
UINT i;
|
||||
|
||||
void mks_wifi_sd_init(void){
|
||||
CardReader::release();
|
||||
|
||||
result = f_mount((FATFS *)&FATFS_Obj, "0", 1);
|
||||
DEBUG("SD init %d",result);
|
||||
/*
|
||||
result = f_opendir(&dir, "0:");
|
||||
if (result == FR_OK) {
|
||||
for (;;) {
|
||||
result = f_readdir(&dir, &fno);
|
||||
if (result != FR_OK || fno.fname[0] == 0) break;
|
||||
DEBUG("%s", fno.fname);
|
||||
}
|
||||
f_closedir(&dir);
|
||||
}else{
|
||||
DEBUG("Open dir error %d",result);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
void mks_wifi_sd_deinit(void){
|
||||
f_mount(0, "", 0);
|
||||
CardReader::mount();
|
||||
};
|
||||
|
||||
void sd_delete_file(char *filename){
|
||||
|
||||
mks_wifi_sd_init();
|
||||
DEBUG("Remove %s",filename);
|
||||
f_unlink(filename);
|
||||
|
||||
mks_wifi_sd_deinit();
|
||||
}
|
||||
@@ -2,7 +2,10 @@
|
||||
#define MKS_WIFI_SD_H
|
||||
|
||||
#include "mks_wifi.h"
|
||||
#include "../../sd/cardreader.h"
|
||||
|
||||
void mks_wifi_sd_init(void);
|
||||
void mks_wifi_sd_deinit(void);
|
||||
void sd_delete_file(char *filename);
|
||||
|
||||
#endif
|
||||
@@ -1,8 +1,43 @@
|
||||
#include "mks_wifi_sd_low_lev.h"
|
||||
|
||||
#include "../../sd/Sd2Card_sdio.h"
|
||||
|
||||
uint8_t sd_init(void){
|
||||
|
||||
if(SDIO_Init()){
|
||||
return 0;
|
||||
}else{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
DEBUG("FATfs SD init");
|
||||
return 1;
|
||||
|
||||
uint8_t sd_read(uint8_t *buf, uint32_t sector,uint32_t count){
|
||||
uint8_t res;
|
||||
|
||||
while (count--){
|
||||
res=SDIO_ReadBlock(sector,buf);
|
||||
if(!res){
|
||||
return 1;
|
||||
}else{
|
||||
sector++;
|
||||
buf=buf+512;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
uint8_t sd_write(uint8_t *buf, uint32_t sector,uint32_t count){
|
||||
uint8_t res;
|
||||
|
||||
while (count--){
|
||||
res=SDIO_WriteBlock(sector,buf);
|
||||
if(!res){
|
||||
return 1;
|
||||
}else{
|
||||
sector++;
|
||||
buf=buf+512;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -3,6 +3,9 @@
|
||||
|
||||
#include "mks_wifi.h"
|
||||
|
||||
|
||||
uint8_t sd_init(void);
|
||||
uint8_t sd_read(uint8_t *buf, uint32_t sector,uint32_t count);
|
||||
uint8_t sd_write(uint8_t *buf, uint32_t sector,uint32_t count);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user