Welcome! Log In Create A New Profile

Advanced

HELP: Modifica info screen

Posted by cisko67 
HELP: Modifica info screen
September 17, 2018 04:32PM
Salve a tutti,
Ho installato sulla mia cr-10 mini il marlin 1.1.9 che funziona una meraviglia.
ora volevo fare qualche piccola modifica sulla grafica dell'lcd e sono giorni che cerco ma senza riuscirci.
Che qualcuno sappia c'è qualche parametro che consenta di visualizzare nelle coordinate della info screen tutti gli zeri compresi i decimali per tutti e tre gli assi.
es:
X: 000.0 Y: 000.0 Z+000.0
Re: HELP: Modifica info screen
September 18, 2018 02:38AM
Dipende dal dal display che hai, se quello grafico o quello testuale.
Se hai il grafico guarda nel file status_screen_DOGM.h, se è il testuale guarda nel file ultralcd_impl_HD44780.h.
I convertitori di un numero in stringa sono i comandi ftostr4sign o ftostr52sp.
Il primo converte in intero in 4 caratteri con il segno quindi avrai _123 o -123 oppure __23 o _-23, se lo sostituisci con ftostr41sign 4 caratteri con il segno più uno dopo la virgola..
Solo che cosi diventano troppi e ti sfasa tutto non ci stanno nel quadrante..

Ciao.


COMPRA ITALIANO - sostieni le nostre aziende - sostieni la nostra gente - sostieni il tuo popolo - sosterrai te stesso.
Alberto C. felice possessore di una Kossel K2
My Blog - My Thingiverse
Re: HELP: Modifica info screen
September 18, 2018 03:55AM
Grazie. Ora farò un pò di prove.
Re: HELP: Modifica info screen
September 23, 2018 09:49AM
C'è qualcosa che mi sfugge o proprio non si può fare?????
Stò tentando (solo a scopo estetico) di visualizzare sulla info screen le coordinate in modo che appaiano in questo formato:
X 000.0 Y 000.0 Z 000.0
quindi la prima cosa che ho fatto è stata la regolazione delle posizioni per far si che tutto appaia non sovrapposto modificando in status_screen_DOGM.h le seguenti righe:

#define X_LABEL_POS 1
#define X_VALUE_POS 10
#define XYZ_SPACING 42

e anche per le coordinate di z faccio utilizzare il convertitore ftostr4sign
strcpy(zstring, ftostr4sign(LOGICAL_Z_POSITION(current_position[Z_AXIS])));

poi in utility.cpp ho modificato il convertitore "ftostr4sign" in questo modo (commentando le righe che non mi necessitano):

char* ftostr4sign(const float &f) {
const int i = (f * 100 + (f < 0 ? -5: 5)) / 10;
//if (!WITHIN(i, -99, 999)) return itostr4sign((int)f);
//const bool neg = i < 0;
//const int ii = neg ? -i : i;
//conv[3] = neg ? '-' : (ii >= 100 ? DIGIMOD(ii, 100) : ' ');
conv[2] = DIGIMOD(i, 1000);
conv[3] = DIGIMOD(i, 100);
conv[4] = DIGIMOD(i, 10);
conv[5] = '.';
conv[6] = DIGIMOD(i, 1);
return &conv[2];
}

preciso che ho abilitato "LCD_DECIMAL_SMALL_XY" (solo per utilizzare il convertitore che ho modificato)

ed il risultato è il seguente:
X Y 000.0 Z 000.0
cioè mi è scomparsa totalmente l'indicazione dell'asse X mentre sia per Y che per Z funziona a meraviglia.

facendo ulteriori prove ho commentato nella funzione ftostr4sign la riga delle centinaie "conv[2]" e mettendo "return &conv[3];" a fine funzione.
magicamente mi riappare l'indicazione delle coordinate X come segue:

X 00.0 Y 00.0 Z 00.0

facendo altre prove varie sono arrivato alla conclusione che il valore delle coordinate di X se è composto da un massimo di 4 caratteri (3 cifre più il punto dei decimali) il valore lo visualizza, mentre se supero tale lenghezza (a me ne servono 5) il valore scompare.
La cosa strana che scompare solo l'indicazione di X mentre sia per Y che per Z la lunghezza di 5 caratteri non influenza il funzionamento.

C'è la possibilità di far si che le coordinate di X vngano visualizzate anche con 5 o più caratteri?
Re: HELP: Modifica info screen
September 23, 2018 11:42AM
Ma perché non usi ftostr52sp come per Z invece di modificare tutto??
Poi devi cambiare static char xstring[5], ystring[5], zstring[7]; e mettere 7 al posto di 5 per le due variabili X e Y.


COMPRA ITALIANO - sostieni le nostre aziende - sostieni la nostra gente - sostieni il tuo popolo - sosterrai te stesso.
Alberto C. felice possessore di una Kossel K2
My Blog - My Thingiverse
Re: HELP: Modifica info screen
September 23, 2018 12:19PM
Quote
MagoKimbra
Ma perché non usi ftostr52sp come per Z invece di modificare tutto??
Poi devi cambiare static char xstring[5], ystring[5], zstring[7]; e mettere 7 al posto di 5 per le due variabili X e Y.


Grazie Millllllleeeee.
Non avevo considerato static char perchè dato che y funzionava bene non gli ho dato peso.
Cmq ora funziona alla grande.
Non ho utilizzato ftosta52sp perchè a me interessava vedere anche gli zeri davanti alla cifra, così per riempire di più la riga delle coordinate (praticamente come il firmware originale della creality)
ma capito dove stava l'inghippo ora mi creo un convertitore ad hoc senza modificare quelli già esistenti.
Che dire :
un Mago è un Mago winking smiley
Sorry, only registered users may post in this forum.

Click here to login