Merge branch 'MK3' into MK3_random_patches

This commit is contained in:
Voinea Dragos 2020-11-16 09:11:12 +02:00
commit f3953d7c83
3 changed files with 43 additions and 11 deletions

View File

@ -16,8 +16,8 @@ extern uint16_t nPrinterType;
extern PGM_P sPrinterName;
// Firmware version
#define FW_VERSION "3.9.1"
#define FW_COMMIT_NR 3518
#define FW_VERSION "3.9.2"
#define FW_COMMIT_NR 3524
// FW_VERSION_UNKNOWN means this is an unofficial build.
// The firmware should only be checked into github with this symbol.
#define FW_DEV_VERSION FW_VERSION_UNKNOWN

View File

@ -8782,26 +8782,40 @@ static void lcd_selftest_screen_step(int _row, int _col, int _state, const char
/** Menu action functions **/
static bool check_file(const char* filename) {
if (farm_mode)
return true;
bool result = false;
uint32_t filesize;
if (farm_mode) return true;
card.openFile((char*)filename, true);
filesize = card.getFileSize();
bool result = false;
const uint32_t filesize = card.getFileSize();
uint32_t startPos = 0;
const uint16_t bytesToCheck = min(END_FILE_SECTION, filesize);
uint8_t blocksPrinted = 0;
if (filesize > END_FILE_SECTION) {
card.setIndex(filesize - END_FILE_SECTION);
startPos = filesize - END_FILE_SECTION;
card.setIndex(startPos);
}
cmdqueue_reset();
cmdqueue_serial_disabled = true;
lcd_clear();
lcd_puts_at_P(0, 1, _i("Checking file"));////c=20 r=1
lcd_set_cursor(0, 2);
while (!card.eof() && !result) {
for (; blocksPrinted < (((card.get_sdpos() - startPos) * LCD_WIDTH) / bytesToCheck); blocksPrinted++)
lcd_print('\xFF'); //simple progress bar
card.sdprinting = true;
get_command();
result = check_commands();
}
for (; blocksPrinted < LCD_WIDTH; blocksPrinted++)
lcd_print('\xFF'); //simple progress bar
_delay(100); //for the user to see the end of the progress bar.
cmdqueue_serial_disabled = false;
card.printingHasFinished();
strncpy_P(lcd_status_message, _T(WELCOME_MSG), LCD_WIDTH);
lcd_finishstatus();
return result;

View File

@ -478,7 +478,7 @@ int16_t xyzcal_find_pattern_12x12_in_32x32(uint8_t* pixels, uint16_t* pattern, u
#define MAX_DIAMETR 600
#define XYZCAL_FIND_CENTER_DIAGONAL
int8_t xyzcal_find_point_center2A(int16_t x0, int16_t y0, int16_t z0, uint16_t delay_us);
int8_t xyzcal_find_point_center2(uint16_t delay_us)
{
printf_P(PSTR("xyzcal_find_point_center2\n"));
@ -494,7 +494,25 @@ int8_t xyzcal_find_point_center2(uint16_t delay_us)
xyzcal_lineXYZ_to(_X, _Y, z0 + 400, 500, -1);
xyzcal_lineXYZ_to(_X, _Y, z0 - 400, 500, 1);
z0 = _Z - 20;
if (has_temperature_compensation()){
z0 = _Z - 20; // normal PINDA
return xyzcal_find_point_center2A(x0, y0, z0, delay_us);
} else {
// try searching harder, each PINDA is different
for(z0 = _Z - 20; z0 <= _Z + 140; z0 += 20 ){ // alternate PINDA
int8_t rv = xyzcal_find_point_center2A(x0, y0, z0, delay_us);
printf_P(PSTR(" z0=%d"), z0);
if( rv != 0 ){
printf_P(PSTR("ok\n"));
return rv;
} else {
printf_P(PSTR("fail\n"));
}
}
}
}
int8_t xyzcal_find_point_center2A(int16_t x0, int16_t y0, int16_t z0, uint16_t delay_us){
xyzcal_lineXYZ_to(_X, _Y, z0, 500, 0);
// xyzcal_lineXYZ_to(x0, y0, z0 - 100, 500, 1);