/// <summary> /// Convenience method to generate a MAVLink v2 byte message. /// </summary> public byte[] GenerateMAVLinkPacket(MAVLink.MAVLINK_MSG_ID messageType, object indata, byte sysid = 255, byte compid = 0, int sequence = -1, byte[] signingkey = null) { message_id = (uint)messageType; payload = indata; system_id = sysid; component_id = compid; return(toBytes(signingkey)); }
T getCurrentMessage <T>(MAVLink.MAVLINK_MSG_ID id) where T : MessageContainerBase { if (!this.currentState.ContainsKey(id)) { return(null); } MavLinkMessage message = this.currentState[id]; return((T)Activator.CreateInstance(typeof(T), new object[] { message })); }
MavLinkMessage createSampleMessage(MAVLink.MAVLINK_MSG_ID id, object data_struct) { MavLinkMessage sampleMessage = new MavLinkMessage(); sampleMessage.messid = id; sampleMessage.seq = 128; sampleMessage.sysid = 12; sampleMessage.compid = 12; sampleMessage.data_struct = data_struct; return(sampleMessage); }
void SendMessage(MAVLink.MAVLINK_MSG_ID id, object mavlinkPayload) { var channel = ConnectionPanel.Channel; if (channel != null) { MavLinkMessage message = new MavLinkMessage(); message.ComponentId = (byte)MAVLink.MAV_COMPONENT.MAV_COMP_ID_MISSIONPLANNER; message.SystemId = 255; message.MsgId = id; message.TypedPayload = mavlinkPayload; channel.SendMessage(message); } }
public MavLinkMessage(byte[] buffer) { // fill out standard fields header = buffer[0]; length = (int)buffer[1]; seq = (int)buffer[2]; sysid = (int)buffer[3]; compid = (int)buffer[4]; messid = (MAVLink.MAVLINK_MSG_ID)buffer[5]; //create the object specified by the packet type object data = Activator.CreateInstance(getMessageType()); // fill in the data of the object MavlinkUtil.ByteArrayToStructure(buffer, ref data, 6); data_struct = data; }
void SendMessage(MAVLink.MAVLINK_MSG_ID id, object mavlinkPayload) { var channel = this.Channel; if (channel != null) { MavLinkMessage message = new MavLinkMessage(); message.ComponentId = (byte)MAVLink.MAV_COMPONENT.MAV_COMP_ID_MISSIONPLANNER; message.SystemId = 255; message.MsgId = id; message.TypedPayload = mavlinkPayload; try { channel.SendMessage(message); } catch (Exception ex) { Write(ex.Message); } } }