Nextion HMI üzerinde sprintf tarzı işlemler

Başlatan Mucit23, 27 Eylül 2020, 19:07:46

Mucit23

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?

SB7

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);
-SB7

Mucit23

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.

e-zeki


Mucit23

Evet covx sanırım işimi görür. Deneyeceğim