static void json_gpsTarget(Serial *serial, const char *name, GPSTargetConfig *gpsTarget, int more){ json_blockStart(serial, name); json_float(serial, "lat", gpsTarget->latitude, DEFAULT_GPS_POSITION_LOGGING_PRECISION, 1); json_float(serial, "long", gpsTarget->longitude, DEFAULT_GPS_POSITION_LOGGING_PRECISION, 1); json_float(serial, "rad", gpsTarget->targetRadius, DEFAULT_GPS_RADIUS_LOGGING_PRECISION, 0); json_blockEnd(serial, more); }
static void sendAnalogConfig(Serial *serial, size_t startIndex, size_t endIndex){ json_messageStart(serial); json_blockStart(serial, "getAnalogCfg"); for (size_t i = startIndex; i <= endIndex; i++){ ADCConfig *cfg = &(getWorkingLoggerConfig()->ADCConfigs[i]); json_blockStartInt(serial, i); json_channelConfig(serial, &(cfg->cfg), 1); json_int(serial, "scalMod", cfg->scalingMode, 1); json_int(serial, "prec", cfg->loggingPrecision, 1); json_float(serial, "linScal", cfg->linearScaling, ANALOG_SCALING_PRECISION, 1); json_blockStart(serial, "map"); json_arrayStart(serial, "raw"); for (size_t b = 0; b < ANALOG_SCALING_BINS; b++){ put_int(serial, cfg->scalingMap.rawValues[b]); if (b < ANALOG_SCALING_BINS - 1) serial->put_c(','); } json_arrayEnd(serial, 1); json_arrayStart(serial, "scal"); for (size_t b = 0; b < ANALOG_SCALING_BINS; b++){ put_float(serial, cfg->scalingMap.scaledValues[b], ANALOG_SCALING_PRECISION); if (b < ANALOG_SCALING_BINS - 1) serial->put_c(','); } json_arrayEnd(serial, 0); json_blockEnd(serial, 0); //map json_blockEnd(serial, i != endIndex); //index } json_blockEnd(serial, 0); json_blockEnd(serial, 0); }
static void get_speed_time(struct Serial* serial, struct auto_logger_speed_time *alst, const char* name, const bool more) { json_objStartString(serial, name); json_float(serial, "speed", alst->speed, 2, true); json_uint(serial, "time", alst->time, false); json_objEnd(serial, more); }
static void sendPwmConfig(Serial *serial, size_t startIndex, size_t endIndex){ json_messageStart(serial); json_blockStart(serial, "getPwmCfg"); for (size_t i = startIndex; i <= endIndex; i++){ PWMConfig *cfg = &(getWorkingLoggerConfig()->PWMConfigs[i]); json_blockStartInt(serial, i); json_channelConfig(serial, &(cfg->cfg), 1); json_uint(serial, "logPrec", cfg->loggingPrecision, 1); json_uint(serial, "outMode", cfg->outputMode, 1); json_uint(serial, "logMode", cfg->loggingMode, 1); json_uint(serial, "stDutyCyc", cfg->startupDutyCycle, 1); json_uint(serial, "stPeriod", cfg->startupPeriod, 1); json_float(serial, "vScal", cfg->voltageScaling, DEFAULT_PWM_LOGGING_PRECISION, 0); json_blockEnd(serial, i != endIndex); //index } json_blockEnd(serial, 0); json_blockEnd(serial, 0); }