Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
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);
}
Ejemplo n.º 3
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);
}
Ejemplo n.º 5
0
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);
}
Ejemplo n.º 6
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);
}