Sending Custom MAVLink Message from QGroundControl to PX4 and Handling It in ROS2

I am working on a project where I need to extend QGroundControl (QGC) to send a custom MAVLink message (or use a reserved MAVLink message) to a PX4 drone.

And I want to use ROS2 to handle the received message and trigger specific actions based on the parameter values. This could involve changing the drone’s state, activating a behavior.

Challenges:
1.How can I achieve communication between QGroundControl and PX4 SITL using custom MAVLink messages?
2.How can I listen for this custom message on the ROS2 side and perform different actions based on the values passed in the parameters of the message?

Although I’m familiar with MAVLink, ROS2, PX4, and QGroundControl technologies, I am not experienced. Please forgive me if I make any mistakes in my approach.