/* AUTO-GENERATED FILE. DO NOT MODIFY. * * This class was automatically generated by the * java mavlink generator tool. It should not be modified by hand. */ // MESSAGE PARAM_SET PACKING package com.MAVLink.common; import com.MAVLink.MAVLinkPacket; import com.MAVLink.Parser; import com.MAVLink.ardupilotmega.CRC; import java.nio.ByteBuffer; import org.junit.Test; import static org.junit.Assert.assertArrayEquals; /** * Set a parameter value TEMPORARILY to RAM. It will be reset to default on system reboot. Send the ACTION MAV_ACTION_STORAGE_WRITE to PERMANENTLY write the RAM contents to EEPROM. IMPORTANT: The receiving component should acknowledge the new parameter value by sending a param_value message to all communication partners. This will also ensure that multiple GCS all have an up-to-date list of all parameters. If the sending GCS did not receive a PARAM_VALUE message within its timeout time, it should re-send the PARAM_SET message. */ public class msg_param_set_test{ public static final int MAVLINK_MSG_ID_PARAM_SET = 23; public static final int MAVLINK_MSG_LENGTH = 23; private static final long serialVersionUID = MAVLINK_MSG_ID_PARAM_SET; private Parser parser = new Parser(); public CRC generateCRC(byte[] packet){ CRC crc = new CRC(); for (int i = 1; i < packet.length - 2; i++) { crc.update_checksum(packet[i] & 0xFF); } crc.finish_checksum(MAVLINK_MSG_ID_PARAM_SET); return crc; } public byte[] generateTestPacket(){ ByteBuffer payload = ByteBuffer.allocate(6 + MAVLINK_MSG_LENGTH + 2); payload.put((byte)MAVLinkPacket.MAVLINK_STX); //stx payload.put((byte)MAVLINK_MSG_LENGTH); //len payload.put((byte)0); //seq payload.put((byte)255); //sysid payload.put((byte)190); //comp id payload.put((byte)MAVLINK_MSG_ID_PARAM_SET); //msg id payload.putFloat((float)17.0); //param_value payload.put((byte)17); //target_system payload.put((byte)84); //target_component //param_id payload.put((byte)'G'); payload.put((byte)'H'); payload.put((byte)'I'); payload.put((byte)'J'); payload.put((byte)'K'); payload.put((byte)'L'); payload.put((byte)'M'); payload.put((byte)'N'); payload.put((byte)'O'); payload.put((byte)'P'); payload.put((byte)'Q'); payload.put((byte)'R'); payload.put((byte)'S'); payload.put((byte)'T'); payload.put((byte)'U'); payload.put((byte)'G'); payload.put((byte)199); //param_type CRC crc = generateCRC(payload.array()); payload.put((byte)crc.getLSB()); payload.put((byte)crc.getMSB()); return payload.array(); } @Test public void test(){ byte[] packet = generateTestPacket(); for(int i = 0; i < packet.length - 1; i++){ parser.mavlink_parse_char(packet[i] & 0xFF); } MAVLinkPacket m = parser.mavlink_parse_char(packet[packet.length - 1] & 0xFF); byte[] processedPacket = m.encodePacket(); assertArrayEquals("msg_param_set", processedPacket, packet); } }