how to transfer data to string to display on TFT

so i’m making a receiver to receive data and then compare it to give a warning or not
here is the main working code

#include <UTFT.h>
#include <VirtualWire.h>

uint8_t data[25];

// Declare which fonts we will be using
extern uint8_t various_symbols[];
extern uint8_t BigFont[];
extern uint8_t UbuntuBold[];

// Set the pins to the correct ones for your development shield
// ------------------------------------------------------------
// Arduino Uno / 2009:
// -------------------
// Standard Arduino Uno/2009 shield            : <display model>,A5,A4,A3,A2
// DisplayModule Arduino Uno TFT shield        : <display model>,A5,A4,A3,A2
//
// Arduino Mega:
// -------------------
// Standard Arduino Mega/Due shield            : <display model>,38,39,40,41
// CTE TFT LCD/SD Shield for Arduino Mega      : <display model>,38,39,40,41
//
// Remember to change the model parameter to suit your display module!
UTFT myGLCD(ITDB32S,38,39,40,41);
void setup() {
  // تحديد نوع الشاشة 1602
  myGLCD.InitLCD();
  vw_setup(2000); // Bits per sec
  vw_set_rx_pin(11);
  vw_rx_start();       // Start the receiver PLL running
  
}

void loop() {
  uint8_t buf[VW_MAX_MESSAGE_LEN];
  uint8_t buflen = VW_MAX_MESSAGE_LEN;
  myGLCD.fillScr(0, 255, 255); 
  myGLCD.setFont(various_symbols); 
  myGLCD.setColor(255,0,0); 
  myGLCD.setBackColor(0, 255, 255);
  myGLCD.print("vWvWvWvWvWvWvWvWvW", CENTER, 1);
  myGLCD.print("WvWvWvWvWvWvWvWvWv", CENTER, 220);
  if (vw_get_message(buf, &buflen)) // Non-blocking
  {
    int X = atoi(strtok((char*)buf, ","));  // Look for a comma, the return the data before it.
    int Y = atoi(strtok(NULL, ",")); // same as above

    String BPM = String(X);
    String Heat = String(Y);
    myGLCD.setFont(BigFont);
    myGLCD.setColor(255,0,0); 
    myGLCD.print(BPM, CENTER, 50);
    
    myGLCD.print(Heat, CENTER, 70);
 

  }

 delay (3000);

}

and here is the warning code

void warning ();

 if (Heat<35 || Heat>39) 
  {
  myGLCD.setColor(255,0,0);    
  myGLCD.print/("WARNING Heat", CENTER, 48);
  } 
  else {
  myGLCD.setColor(0,0,0);
  myGLCD.print("Normal Heat", CENTER, 48);
  }
  if (BPM<60 || BPM>100)
  {
  myGLCD.setColor(255,0,0);
  myGLCD.print("WARNING Heart", CENTER, 128);
  }
 else
  {
  myGLCD.setColor(0,0,0);   
  myGLCD.print("Normal Heart", CENTER, 128);
  }

i think that the type of the BPM and Heat variables are wrong
any ideas
and what about making the screen more organized
i want it to be as the following

 BPM : value 
Warning or normal BPM

Heat : value
warning or normal heat

can you explain the types of the data that the RF uses and what to change it to and how ?
thank you
i used UTFT library, virtualWIRE and some founts for the screen

Try something like this:

#include <UTFT.h>
#include <VirtualWire.h>

uint8_t data[25];

// Declare which fonts we will be using
extern uint8_t various_symbols[];
extern uint8_t BigFont[];
extern uint8_t UbuntuBold[];

// Set the pins to the correct ones for your development shield
// ------------------------------------------------------------
// Arduino Uno / 2009:
// -------------------
// Standard Arduino Uno/2009 shield            : <display model>,A5,A4,A3,A2
// DisplayModule Arduino Uno TFT shield        : <display model>,A5,A4,A3,A2
//
// Arduino Mega:
// -------------------
// Standard Arduino Mega/Due shield            : <display model>,38,39,40,41
// CTE TFT LCD/SD Shield for Arduino Mega      : <display model>,38,39,40,41
//
// Remember to change the model parameter to suit your display module!
UTFT myGLCD(ITDB32S,38,39,40,41);
void setup() {
  // تحديد نوع الشاشة 1602
  myGLCD.InitLCD();
  vw_setup(2000); // Bits per sec
  vw_set_rx_pin(11);
  vw_rx_start();       // Start the receiver PLL running
  
}

void loop() {
  uint8_t buf[VW_MAX_MESSAGE_LEN];
  uint8_t buflen = VW_MAX_MESSAGE_LEN;
  myGLCD.fillScr(0, 255, 255); 
  myGLCD.setFont(various_symbols); 
  myGLCD.setColor(255,0,0); 
  myGLCD.setBackColor(0, 255, 255);
  myGLCD.print("vWvWvWvWvWvWvWvWvW", CENTER, 1);
  myGLCD.print("WvWvWvWvWvWvWvWvWv", CENTER, 220);
  if (vw_get_message(buf, &buflen)) // Non-blocking
  {
    int BPM = atoi(strtok((char*)buf, ","));  // Look for a comma, the return the data before it.
    int Heat = atoi(strtok(NULL, ",")); // same as above

    myGLCD.setFont(BigFont);

    myGLCD.setColor(255,0,0); 
    myGLCD.printNumI(BPM, CENTER, 50);

    if (BPM<60 || BPM>100)
    {
        myGLCD.setColor(255,0,0);
        myGLCD.print("WARNING BPM", CENTER, 100);
    }
    else
    {
        myGLCD.setColor(0,0,0);   
        myGLCD.print("Normal BPM", CENTER, 100);
    }

    
    myGLCD.setColor(255,0,0); 
    myGLCD.printNumI(Heat, CENTER, 150);

    if (Heat<35 || Heat>39)
    {
        myGLCD.setColor(255,0,0);    
        myGLCD.print("WARNING Heat", CENTER, 200);
    } 
    else
    {
        myGLCD.setColor(0,0,0);
        myGLCD.print("Normal Heat", CENTER, 200);
    }
  }

no idea why but it doesn't refresh unless i take the sender out the breadboard and put it back in o.O or touch it with my hand it didn't do that in the old code

it all worked the problem was the antenna i guess the wire i used as an antenna wasn't good enough i'll google how to make one