class TrackingInfoUtils {

    public static JsonObject getStartTrackingInfo() {
        LoggingService.logInfo(MODULE_NAME, "Start getting tracking information");
        JsonObject startInfo = null;
        try {
            String gpsCoordinates = Configuration.getGpsCoordinates();
            String gpsMode = Configuration.getGpsMode().name();
            boolean developerMode = Configuration.isDeveloperMode();
            String networkInterface = Configuration.getNetworkInterfaceInfo();
            String version = CmdProperties.getVersion();
            String agentStatus = StatusReporter.getFieldAgentStatus().getControllerStatus().name().toLowerCase();

            startInfo = Json.createObjectBuilder()
                    .add("gpsCoordinates", gpsCoordinates)
                    .add("gpsMode", gpsMode)
                    .add("developerMode", developerMode)
                    .add("networkInterface", networkInterface)
                    .add("version", version)
                    .add("agentStatus", agentStatus)
                    .build();

        } catch(Exception e) {
            LoggingService.logError(MODULE_NAME, "can't parse start config",
                    new AgentSystemException("can't parse start config"));
            startInfo = Json.createObjectBuilder()
                    .add("error", "can't parse start config")
                    .build();
        }
        LoggingService.logInfo(MODULE_NAME, "Finished getting tracking information");
        return startInfo;
    }

}