package pl.baczkowicz.mqttspy.kura;
import java.io.IOException;
import org.eclipse.kura.KuraInvalidMessageException;
import org.eclipse.kura.core.cloud.CloudPayloadProtoBufDecoderImpl;
import org.eclipse.kura.message.KuraPayload;
import org.json.JSONObject;
public class KuraPayloadFormatter
{
public static String format(byte[] data)
{
final CloudPayloadProtoBufDecoderImpl decoder = new CloudPayloadProtoBufDecoderImpl(data);
try
{
final KuraPayload kuraPayload = decoder.buildFromByteArray();
return KuraPayloadFormatter.payloadToString(kuraPayload);
}
catch (KuraInvalidMessageException | IOException e)
{
return e.getLocalizedMessage();
}
}
// public static String positionToString(final KuraPosition position)
// {
// return "position: {longitude: " + position.getLongitude()
// + ", latitude: " + position.getLatitude() + ", altitude: "
// + position.getAltitude() + ", precision: " + position.getPrecision()
// + ", heading: " + position.getHeading() + ", speed: "
// + position.getSpeed() + ", timestamp=" + position.getTimestamp()
// + ", satellites: " + position.getSatellites() + ", status: "
// + position.getStatus() + "}";
// }
public static String payloadToString(final KuraPayload payload)
{
// final String body = payload.getBody() != null ? (", body: " + new String(payload.getBody())) : "";
final String body = payload.getBody() != null ? (", body: " + new JSONObject(payload.getBody()).toString()) : "";
// final String position = payload.getPosition() != null ? (", position: " + positionToString(payload.getPosition())) : "";
final String position = payload.getPosition() != null ? (", position: " + new JSONObject(payload.getPosition()).toString()) : "";
return "{kuraPayload: {timestamp: " + payload.getTimestamp()
+ ", metrics: " + new JSONObject(payload.metrics()).toString()
+ position
+ body
+ "}}";
}
}