idleup
(idleup)
February 18, 2015, 11:00pm
1
With the console window open in mission planner I am having these INFO lines with lost packets scrolling constantly. This happens when the IRIS+ is unarmed just sitting next to the laptop running mission planner.
Is something wrong with my radio, is this a configuration problem, or are these INFO entries normal?
Matt
iseries
(iseries)
February 19, 2015, 11:49am
2
Looks like a bug they have not corrected yet in mission planner.
Each Mavlink packet has a sequence number so you know if you dropped one. Apparently Mission Planner can’t add.
Mike
meee1
(meee1)
February 23, 2015, 9:35am
3
how where you connected? 3dr radio? antenna tracker? etc?
idleup
(idleup)
February 23, 2015, 4:18pm
4
Connected via 3DR Radio… standard setup with the IRIS+
Matt
meee1
(meee1)
February 24, 2015, 9:11am
5
can you post the tlog? as it may show why it is happening
iseries
(iseries)
February 25, 2015, 3:24pm
6
In module MAVLinkInterface.cs the packet counter is one more than it is and so we lost 255?
try
{
if ((buffer[0] == 'U' || buffer[0] == 254) && buffer.Length >= buffer[1])
{
// check if we lost pacakets based on seqno
byte packetSeqNo = buffer[2];
int expectedPacketSeqNo = ((MAVlist[sysid].recvpacketcount + 1) % 0x100);
{
if (packetSeqNo != expectedPacketSeqNo)
{
MAVlist[sysid].synclost++; // actualy sync loss's
int numLost = 0;
if (packetSeqNo < ((MAVlist[sysid].recvpacketcount + 1))) // recvpacketcount = 255 then 10 < 256 = true if was % 0x100 this would fail
{
numLost = 0x100 - expectedPacketSeqNo + packetSeqNo;
}
else
{
numLost = packetSeqNo - MAV.recvpacketcount;
}
MAVlist[sysid].packetslost += numLost;
WhenPacketLost.OnNext(numLost);
log.InfoFormat("lost pkts new seqno {0} pkts lost {1}", packetSeqNo, numLost);
}
MAVlist[sysid].packetsnotlost++;
MAVlist[sysid].recvpacketcount = packetSeqNo;
}
WhenPacketReceived.OnNext(1);
// packet stats
if (double.IsInfinity(packetspersecond[buffer[5]]))
packetspersecond[buffer[5]] = 0;
packetspersecond[buffer[5]] = (((1000 / ((DateTime.Now - packetspersecondbuild[buffer[5]]).TotalMilliseconds) + packetspersecond[buffer[5]]) / 2));
packetspersecondbuild[buffer[5]] = DateTime.Now;
Mike