Aviso

El foro está en modo de sólo lectura.

Ayuda al cambiar de pagina con Nextion

Más
6 años 8 meses antes #578 por DEA
Respuesta de DEA sobre el tema Ayuda al cambiar de pagina con Nextion
Mira Jose Luis

En esta parte del codigo que hablamos ayer:

uint32_t dual_state;
NexDSButton *btn = (NexDSButton *)ptr;
dbSerialPrintln("bt4PopCallback");
dbSerialPrint("ptr=");
dbSerialPrintln((uint32_t)ptr);
bt4.getValue(&dual_state);

La parte de los dbSerial, si quitamos esas tres lineas el botón funciona igual.

Creo que esas lineas son para escribir en el botón, he visto un ejemplo en el foro oficial y lo usas parea eso con un comando mas.

Lo que si la librería oficial usa el puerto sirial2 del MEGA, pero tiene un fallo, están cambiados el RX y TX, o eso o mi arduino esta jodido.

Bueno iré poniendo aquí lo que valla averiguando y así lo sabes tu también
Más
6 años 8 meses antes #579 por Jose Luis
Habra que intentar estudiar un poco como funcionan las librerías para luego sabwe que intentan hacer en cada momento.

Con paciencia.
Más
6 años 8 meses antes #580 por DEA
Respuesta de DEA sobre el tema Ayuda al cambiar de pagina con Nextion
Buenas tocayo

Pues ya lo tengo echo con las originales y el gauge imprimiendo en la pantalla, he mirado y todos los ejemplo que encuentro son con sensores de temperatura y mueven la aguja de esa manera, así que hice lo mismo, pero con un potenciometro y funciona perfecto.

Lo unico que cuando lo paso para arduino Mega no me reconoce la entrada A0, no se porque.

Solo hay una pequeña duda que no se como solucionarlo con arduino, lo puedo solucionar con el editor de la pantalla.

Te cuento:
Cuando imprimo los valores del pot. en la pantalla le digo que lo haga en z0 y el texto en t0, pues bien esto lo hace en todas la paginas que haya un z0 y un t0, no se como decir desde arduino que solo lo haga en la pagina 2.
He declarado la pagina como tal y en imprimir he cambiado el valor por "z0.page2", pero no funciona.

La única manera que se me ocurre en que en el editor de la pantalla, le podemos cambiar el nombre a los botones y demás, con lo cual en vez de llamarlo z0, pues lo llamare Grados o lo que sea.

Te dejo aquí el código, que te sirve para cuando te pongas con estas librerías originales. lo puedes cargar en el ejemplo de tu video, te funciona seguro.

En el codigo he declarado el gauge Z0, pero se puede borrar.

Aunque no te lo creas sin la ayuda de tus vídeos y la explicación no lo hubiera resulto.

Muchas muchas Gracias
Adjuntos:
El siguiente usuario dijo gracias: Jose Luis
Más
6 años 8 meses antes - 6 años 8 meses antes #581 por Jose Luis
Poco a poco se iran haciendo las cosas. No hay que agobiarse, ya aparecerá la forma.


NexGauge z0 = NexGauge(2, 14, "z0");

el z0 esta claro que es la id del componente, pero el 2 y el 14, que significan?

Un saludo.
Última Edición: 6 años 8 meses antes por Jose Luis.
Más
6 años 8 meses antes #582 por DEA
Respuesta de DEA sobre el tema Ayuda al cambiar de pagina con Nextion
El z0 es el objname
El 2 la pagina donde esta
El 14 la ID

Todos esos datos están el el editor cuando seleccionas z0 donde los atributos, hay esta esa información.
Más
6 años 8 meses antes #583 por Jose Luis
Me ha picado la curiosidad y se me vio por abrir la librería. Luego mire tu ejemplo. Estas diseñando el botón pero luego le metes los valores a mano, sin usar la Liberia. El programa te funcionaria igual aunque no declararas nada de la aguja. Por que le estas enviando los datos a mano en el procedimeinto imprime nextion grados.

Vamos, no estas actualizando la aguja con la librería. Y para que se te acualice en la pagina que quieres, en tu ejemplo, solo has de cambiar la línea
Serial.print("z0.val="); //variable de la pantalla que se va a modificar
por
Serial.print("page1.z0.val="); //variable de la pantalla que se va a modificar

Pero no te equivoques, esto funionaria auqnue no tuvieras las lirberias, le estas indicando "a mano" lo que tiene que hacer.

Ahora veamos la ducumentacion que saque de la librería :

Public Member Functions
NexGauge (uint8_t pid, uint8_t cid, const char *name)

bool getValue (uint32_t *number)

bool setValue (uint32_t number)

uint32_t Get_background_color_bco (uint32_t *number)

bool Set_background_color_bco (uint32_t number)

uint32_t Get_font_color_pco (uint32_t *number)

bool Set_font_color_pco (uint32_t number)

uint32_t Get_pointer_thickness_wid (uint32_t *number)

bool Set_pointer_thickness_wid (uint32_t number)

uint32_t Get_background_cropi_picc (uint32_t *number)

bool Set_background_crop_picc (uint32_t number)

- Public Member Functions inherited from NexObject
Additional Inherited Members
- Protected Member Functions inherited from NexObject
Detailed Description

NexGauge component.

Constructor & Destructor Documentation

NexGauge::NexGauge ( uint8_t pid,
uint8_t cid,
const char * name
)
Constructor.

Parameters
pid - page id.
cid - component id.
name - pointer to an unique name in range of all components.


Queda claro que los los números por lo que te preguntaba antes son, La pagina, el componente y el nombre del componente.

Que quiere decir esto, que en la librería general tiene que haber un comando para pasarle el valor al componente que creamos.

Espero que te des cuenta, que si quieres usar las librerías, deberías intentar hacerlo todo con ellas, si vas a usar pasrte si partes no, hazlo todo a mano. Por que si haces partes con libreria y partes que no, yo creo que acabaras no sabiendo y lo que haces.
Tiempo de carga de la página: 0.108 segundos
Gracias a Foro Kunena