int lastError = byteAsInt(payload[0]);
boolean externalRfDetected = payload[1] == 0x01;
int numberOfTargets = byteAsInt(payload[2]);
List<Target> targets = new ArrayList<GetGeneralStatusResp.Target>(2);
for (int x = 0; x < numberOfTargets; x++) {
targets.add(new Target(payload[3 + (x * 4)], payload[3 + (x * 4) + 1], payload[3 + (x * 4) + 2],
payload[3 + (x * 4) + 3]));
}
int samStatus = byteAsInt(payload[3 + (4 * numberOfTargets)]);
return new GetGeneralStatusResp(lastError, externalRfDetected, numberOfTargets, samStatus, targets);
}