Heltec WIFI lora32 V3 failed to connect to Arduino IOT

I have a project to connect Wi-Fi Lora 32 (v3) as a receiver to Arduino Cloud, after several trial I finally succeeded to make the module online, but I cannot run any code in the skitch, I need to save the received RSSI and SNR to the cloud
here’s the code wich is already run using Arduino IDE:
#include <heltec.h>

/* Heltec Automation Receive communication test example
*

  • Function:
    1. Receive the same frequency band lora signal program
  • Description:
  • HelTec AutoMation, Chengdu, China
  • www.heltec.org
  • this project also realess in GitHub:
  • */

#include “LoRaWan_APP.h”
#include “Arduino.h”

#define RF_FREQUENCY 915000000 // Hz

#define TX_OUTPUT_POWER 14 // dBm

#define LORA_BANDWIDTH 0 // [0: 125 kHz,
// 1: 250 kHz,
// 2: 500 kHz,
// 3: Reserved]
#define LORA_SPREADING_FACTOR 7 // [SF7…SF12]
#define LORA_CODINGRATE 1 // [1: 4/5,
// 2: 4/6,
// 3: 4/7,
// 4: 4/8]
#define LORA_PREAMBLE_LENGTH 8 // Same for Tx and Rx
#define LORA_SYMBOL_TIMEOUT 0 // Symbols
#define LORA_FIX_LENGTH_PAYLOAD_ON false
#define LORA_IQ_INVERSION_ON false

#define RX_TIMEOUT_VALUE 1000
#define BUFFER_SIZE 30 // Define the payload size here

char txpacket[BUFFER_SIZE];
char rxpacket[BUFFER_SIZE];

static RadioEvents_t RadioEvents;

int16_t txNumber;

int16_t rssi,rxSize;

bool lora_idle = true;

/*
Sketch generated by the Arduino IoT Cloud Thing “ES-Gatway_1”

Arduino IoT Cloud Variables description

The following variables are automatically generated and updated when changes are made to the Thing

String response;

Variables which are marked as READ/WRITE in the Cloud Thing will also have functions
which are called when their values are changed from the Dashboard.
These functions are generated with the Thing and added at the end of this sketch.
*/

#include “thingProperties.h”

void setup() {
// Initialize serial and wait for port to open:
Serial.begin(115200);
// This delay gives the chance to wait for a Serial Monitor without blocking if none is found
delay(1500);

// Defined in thingProperties.h
initProperties();

// Connect to Arduino IoT Cloud
ArduinoCloud.begin(ArduinoIoTPreferredConnection);

/*
The following function allows you to obtain more information
related to the state of network and IoT Cloud connection and errors
the higher number the more granular information you’ll get.
The default is 0 (only errors).
Maximum is 4
*/
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();

////////
Mcu.begin(HELTEC_BOARD,SLOW_CLK_TPYE);

txNumber=0;
rssi=0;

RadioEvents.RxDone = OnRxDone;
Radio.Init( &RadioEvents );
Radio.SetChannel( RF_FREQUENCY );
Radio.SetRxConfig( MODEM_LORA, LORA_BANDWIDTH, LORA_SPREADING_FACTOR,
                           LORA_CODINGRATE, 0, LORA_PREAMBLE_LENGTH,
                           LORA_SYMBOL_TIMEOUT, LORA_FIX_LENGTH_PAYLOAD_ON,
                           0, true, 0, 0, LORA_IQ_INVERSION_ON, true );

/////////
}

void loop() {
ArduinoCloud.update();
// Your code here
if(lora_idle)
{
lora_idle = false;
Serial.println(“into RX mode”);
Radio.Rx(0);
}
Radio.IrqProcess( );
}

void OnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr )
{
rssi=rssi;
rxSize=size;
memcpy(rxpacket, payload, size );
rxpacket[size]=’\0’;
Radio.Sleep( );
Serial.printf("\r\nreceived packet “%s” with rssi %d , length %d\r\n",rxpacket,rssi,rxSize);
lora_idle = true;
}