Flight controller transmit custom mavlink message to QGC station

I transmit a custom mavlink message from px4 flight controller to qgc station, but the message received by qgc is wrong.
The mavlink protocal version is v1.0.
My custom mavlink message is as follows :


The custom mavlink message includes the common.xml. And I use mavgenerate.py tool to generate C style mavlink message code.

Now there is a strange phenomenon. It is the QGC station can received the custom mavlink message. But “MAVLink Inspector” and “Analyze” widgets can’t recongnize correctly data values of “PWM_INPUT” item.
What I can confirm are as follows :
(1) From the end of PX4/Firmware :
mavlink_msg_pwm_input.h : Add this header file into mavlink/v1.0/comon folder and include this file in the common.h file.
mavlink_messages.cpp : Class MavlinkStreamPWMINPUT defined by referencing Class MavlinkStreamAttitude is a custom class.
mavlink_messages.cpp : Transmit data by invoking send() method in Class MavlinkStreamPWMINPUT.
mavlink_messages.cpp : All the members of pwm_input(time_boot_ms, pulse_width, period) print correct data values.
mavlink_main.cpp : I also configure the transmission speed throuth invoking configure_stream(“PWMINPUT”, Hz.0f) method according to different MAVLINK_MODE_xx in task_main method .



(2) From the end of QGC station :
mavlink_msg_pwm_input.h : Add this header file into mavlink/v1.0/comon/ folder and include this file in the common.h file.
After including the pwm_input related header file, MAVLink Inspector and Analyze widgets can recongnize the PWM_INPUT mavlink message but can’t analyze correct member data values.
UAS.cc : The specific performance of PWM_INPUT.time_boot_ms, PWM_INPUT.pulse_width, PWM_INPUT.period print incorrect data values(As follows).

By preliminary observation and judgment, the qDebug values of the pwm_input’s members and the data shown via MAVLink Inspector and Analyze are the same.

What is the wrong? Can you tell me the reason? Thanks very much!

I have referenced mavlink_and_uorb_custom_message. But the problem isn’t related to that directly.

The actual situation is as follows:

The members of pwm_input get wrong values.

The reason for above result is that I only set the MAVLINK_MESSAGE_INFO without setting MAVLINK_MESSAGE_CRCS and MAVLINK_MESSAGE_LENGTHS.

After I set all the MAVLINK_MESSAGE_INFO, MAVLINK_MESSAGE_CRCS and MAVLINK_MESSAGE_LENGTHS valus(create by mavgenerate.py) about the position PWM_INPUT. The result is as follows. But there isn’t any information about PWM_INPUT.

What could I do to solve the problem? Could you tell me?