Concatenate three integers to a string?

Hello!

I currently have three integers being the red green and blue values and I wish to concatenate them to one string in order to pass them to the ESP.
I have added three number fields on the display to visually see that it’s working. Now I wish to delete the numbers and add them to a variable.
I could send them one by one but it would be nicer to send all three in a comma separated string.

My idea is to add a variable as string, and in the event do:

n0.val=r    // this works since n0 is number
n1.val=g   // this works since n1 is number
n2.val=b   // this works since n2 is number
va0.txt=r+","+b+","+g // this fails 

I get the following:

Error:Invalid variable operation:va0.txt=r+","+b+","+g( Double click to jump to code)
Error:Compile failed! 1 Errors, 0 Warnings,

I believe I need to cast the variables to string, how is that done?
If va0 is set to sta = number then I can use va0.val=r+b+g but that is of little use.

What are my options here?

Your option is basically to use the covx function to convert the three numeric values into 3 separate string variables first, and then to concatenate the latter.
Otherwise, depending on the bit width of your R,G, and B values, you might do some bit shifting and mask arithmetics to pack the 3 integers into one, like Nextion does it internally with the RGB565 format.

More details here and here.

1 Like

That worked!

covx r,va1.txt,0,0
covx g,va2.txt,0,0
covx b,va3.txt,0,0
va0.txt=va1.txt+","+va2.txt+","+va3.txt 

Thank you!