Selamlar
Nextion hmi üzerinde sprintf gibi komutların kullanımı nasıl. Float veya sayıdan oluşan değişkenlerim var nextionda. Bu değişkenleri string'e çevirmek istiyorum. Bunu nasıl yaparız?
Mucit hocam nextionlarla kısa bir süre önce uğraştım . Kütüphanede getcomponentvalue diye bir fonksiyon vardı. kullanımı sizin istediğiniz tarzda sanırım. Değişkeninizi bir yere yazarsanız yazdığınız adresin adresini girerek içeriğini string olarak alabilirsiniz.
STM32 de çalışıyorsunuzdur yine :)
O yüzden kütüphaneden ilgili kısmı atıyorum umarım işinize yarar.
unsigned int Nextion::getComponentValue(String component){
String getValue = "get "+ component +".val";//Get componetn value
unsigned int value = 0;
sendCommand(getValue.c_str());
uint8_t temp[8] = {0};
nextion->setTimeout(20);
if (sizeof(temp) != nextion->readBytes((char *)temp, sizeof(temp))){
return -1;
}//end if
if((temp[0]==(0x71))&&(temp[5]==0xFF)&&(temp[6]==0xFF)&&(temp[7]==0xFF)){
value = (temp[4] << 24) | (temp[3] << 16) | (temp[2] << 8) | (temp[1]);//Little-endian convertion
}//end if
return value;
}//get_component_value */
Arduino sayfasında örnek kullanım da bu şekilde string olarak alıyorsunuz burda int e çevirmiş.
int value = myNextion.getComponentValue("z0");
Serial.println(value);
O şekilde yapıyorum aslında. Ama benim amacım bazı işlemleri nextionun mcu'suna yaptırmak. Bazı değişkenler le işlem yapıp sonuç verisini ana mcu ya göndermek istiyorum. Bunun için sprintf tarzı işlemleri nextion da yapmam lazım.
hocam covx komutu işinizi görmüyor mu?
Evet covx sanırım işimi görür. Deneyeceğim