float randomNumTimeInterval; //float (32 Bit -3.4028235E38 to 3.4028235E38 Range of Numbers)
//var di prova per sprintf
bool bo=0;//%u //%u 0=bo,Variable type bool\n
char ch='Z';//%c (%i %u ascii) //%u Z=ch,Variable type char\n
byte by=254;//%u //%u 254=by,Variable type byte\n
int i=(-15000);//%i //%i -15000=ui,Variable type unsigned int\n
unsigned int ui=65000;//%u //%u 65000=i,Variable type int\n
String stval="123abc"; //%s 200.00=stval,Variable type String\n
String sts="prova"; //%s prova=sts,Variable type String\n
float flvar=PI; //%s dopo conversione con dtostrf();
float flval=200.999; //%s dopo conversione con dtostrf();
/**/
//-------------------------------------------------------------------------------------------------------------void Setup()
void setup(){
Serial.begin(9600); //inizializzaza la porta seriale per abilitare la comunicazione I/O PC/Microcontroller */ //Open serial communications and wait for port to open
// Serial.print(F("Developer:\n\tMax Du Bois\nFirmware uploaded:\n\tVersion: randomMarineWave_avgAngVel_DevTest\n\tDate: 03/03/'23\n\n")); //stampa (visualizza a serial monitor) dati identificativi
}//end void setup
//--------------------------------------------------------------------------------------------------------------void loop()
void loop(){
/**/
//-------------------------------print float
//print float in variabile
char provaFloatVar[5]; //array ove memorizzare cio che si vuole stampare (!impostare dimensione sufficiente!)
// variabile , spazi prima del val , cifre dopo virgola,
// dtostrf( flvar , 0 , 2 ,provaFloatVar);
dtostrf(flvar,0,2,provaFloatVar);
// Serial.println(provaFloatVar);
//print float in valore
char provaFloatVal[8]; //array ove memorizzare cio che si vuole stampare (!impostare dimensione sufficiente!)
dtostrf(flval,0,3,provaFloatVal);
// Serial.println(provaFloatVal);
//print testo/variabili float (necessario passare array char precedentemente creato)
char prova_Testo_FVal_FVar[100]; //array ove memorizzare cio che si vuole stampare (!impostare dimensione sufficiente!)
sprintf(prova_Testo_FVal_FVar,"\tnumero frazionario in Var: %s\n\tnumero frazionario in Val: %s\n",provaFloatVar,provaFloatVal);
// Serial.println(prova_Testo_FVal_FVar);
//end
/**/
/*
char provaStringa[18];
sprintf(provaStringa,"Stringa %c",sts);
Serial.println(provaStringa);
*/
/**/
char provaFormat[40];
// sprintf(provaFormat,"valore passato formattato %s",(FormatNumericData_prevSp_Deg_sT(by)));
sprintf(provaFormat,"valore passato formattato %s",(FormatNumericData_prevSpF(flvar)));
// Serial.println(provaFormat);
// Serial.print(FormatNumericData_prevSp_Deg_sT(by)); //valore della variabile restituito come striga formattata
/**/
char prova[398];
sprintf(prova," %u 0 = bo,Variable type bool\n %c Z = ch,Variable type char\n %u 254 = by,Variable type byte\n%i -15000 = ui,Variable type unsigned int\n %u 65000 = i,Variable type int\n%u 200.00 = stval,Variable type String\n %u prova = sts,Variable type String\n %s PI = flvar,Variable type float\n %s 200.999 = flval,Variable type float\n",bo,ch,by,i,ui,sts,stval,provaFloatVar,provaFloatVal);
Serial.println(prova);
/*
char prova[100];
sprintf(prova,"\n\tprova %09u \r\t\nprova",f);
Serial.println(prova);
*/
delay(3000);
}//end void loop
//----------------------------------------------------------------------------String FormatNumericData_prevSp_Deg(int value)
//To ensure numbers align add a space if required
String FormatNumericData_prevSp_Deg_sT(byte valueVariable){
//>=0&&<=9
if(valueVariable>=0&&valueVariable<=9){
return " "+String(valueVariable); //ritorna la variabile ove richiamata, anteponendo prima uno spazio(necessario alla compensazione di traslazione nel display del valore a quantità inferiori di cifre) per posizionarlo nella medesima posizione pur mantenendo medesime coordinate settate
}//end if
//>=10&&<=99 //all other numbers... <-1.0 || >10.0
else{
return String(valueVariable); //ritorna la variabile ove richiamata, non anteponendo prima nessuno spazio, per posizionarlo nella medesima posizione pur mantenendo medesime coordinate settate
}//end else
}//end String FormatNumericData_prevSp_Deg
//-----------------------------------------------------------------------------String FormatNumericData_prevSpF(float value)
//To ensure numbers align add a space if required
String FormatNumericData_prevSpF(float valueVariable){
//>=0.00&&<=9.99
if(valueVariable>=0.00&&valueVariable<=9.99){
if(valueVariable==((randomNumTimeInterval)/10)){
return" "+String(valueVariable,1); //ritorna la variabile(",1" approssimata ad un valore dopo la virgola) ove richiamata, anteponendo prima due spazi(necessari alla compensazione di traslazione nel display del valore a quantità inferiori di cifre) per posizionarlo nella medesima posizione pur mantenendo medesime coordinate settate
}//end if annidato 1°
else{
// else if(valueVariable==runningTime){
return" "+String(valueVariable,2); //ritorna la variabile(",2" approssimata a due valori dopo la virgola) ove richiamata, anteponendo prima due spazi(necessari alla compensazione di traslazione nel display del valore a quantità inferiori di cifre) per posizionarlo nella medesima posizione pur mantenendo medesime coordinate settate
}//end else annidato 1°
}//end if
//all other numbers... <-1.00 || >10.00
else{
if(valueVariable==((randomNumTimeInterval)/10)){
return String(valueVariable,1); //ritorna la variabile(",1" approssimata ad un valore dopo la virgola) ove richiamata,, non anteponendo dopo nessuno spazio, per posizionarlo nella medesima posizione pur mantenendo medesime coordinate settate
}//end if annidato 1°
else{
return String(valueVariable,2); //ritorna la variabile(",2" approssimata a due valori dopo la virgola) ove richiamata,, non anteponendo dopo nessuno spazio, per posizionarlo nella medesima posizione pur mantenendo medesime coordinate settate
}//end else annidato 1°
}//end else
}//end String FormatNumericData__prevSpF
//END