static void sendAccelConfig(Serial *serial, size_t startIndex, size_t endIndex){ json_messageStart(serial); json_blockStart(serial, "getAccelCfg"); for (size_t i = startIndex; i <= endIndex; i++){ AccelConfig *cfg = &(getWorkingLoggerConfig()->AccelConfigs[i]); json_blockStartInt(serial, i); json_channelConfig(serial, &(cfg->cfg), 1); json_uint(serial, "mode", cfg->mode, 1); json_uint(serial, "chan", cfg->accelChannel, 1); json_uint(serial, "zeroVal", cfg->zeroValue, 0); json_blockEnd(serial, i != endIndex); //index } json_blockEnd(serial, 0); json_blockEnd(serial, 0); }
void api_sendSampleRecord(Serial *serial, SampleRecord *sr, unsigned int tick, int sendMeta){ json_messageStart(serial); json_blockStart(serial, "s"); json_uint(serial,"t",tick,1); if (sendMeta) writeSampleMeta(serial, sr, getConnectivitySampleRateLimit(), 1); size_t channelCount = 0; unsigned int channelsBitmask = 0; json_arrayStart(serial, "d"); for (int i = 0; i < SAMPLE_RECORD_CHANNELS; i++){ ChannelSample *sample = &(sr->Samples[i]); ChannelConfig * channelConfig = sample->channelConfig; if (SAMPLE_DISABLED != channelConfig->sampleRate){ if (NIL_SAMPLE != sample->intValue){ channelsBitmask = channelsBitmask | (1 << channelCount); int precision = sample->precision; if (precision > 0){ put_float(serial, sample->floatValue, precision); } else{ put_int(serial, sample->intValue); } serial->put_c(','); } channelCount++; } } put_uint(serial, channelsBitmask); json_arrayEnd(serial, 0); json_blockEnd(serial, 0); json_blockEnd(serial, 0); }
static void sendTimerConfig(Serial *serial, size_t startIndex, size_t endIndex){ json_messageStart(serial); json_blockStart(serial, "getTimerCfg"); for (size_t i = startIndex; i <= endIndex; i++){ TimerConfig *cfg = &(getWorkingLoggerConfig()->TimerConfigs[i]); json_blockStartInt(serial, i); json_channelConfig(serial, &(cfg->cfg), 1); json_uint(serial, "prec", cfg->loggingPrecision, 1); json_uint(serial, "sTimer", cfg->slowTimerEnabled, 1); json_uint(serial, "mode", cfg->mode, 1); json_uint(serial, "ppRev", cfg->pulsePerRevolution, 1); json_uint(serial, "timDiv", cfg->timerDivider, 0); json_blockEnd(serial, i != endIndex); } 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); }
static void sendGpioConfig(Serial *serial, size_t startIndex, size_t endIndex){ json_messageStart(serial); json_blockStart(serial, "getGpioCfg"); for (size_t i = startIndex; i <= endIndex; i++){ GPIOConfig *cfg = &(getWorkingLoggerConfig()->GPIOConfigs[i]); json_blockStartInt(serial, i); json_channelConfig(serial, &(cfg->cfg), 1); json_uint(serial, "mode", cfg->mode, 0); json_blockEnd(serial, i != endIndex); } json_blockEnd(serial, 0); json_blockEnd(serial, 0); }