MCPcopy Create free account
hub / github.com/CANopenNode/CANopenNode / CO_trace_init

Function CO_trace_init

extra/CO_trace.c:397–450  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

395
396
397void CO_trace_init(
398 CO_trace_t *trace,
399 CO_SDO_t *SDO,
400 uint8_t enabled,
401 uint32_t *timeBuffer,
402 int32_t *valueBuffer,
403 uint32_t bufferSize,
404 uint32_t *map,
405 uint8_t *format,
406 uint8_t *trigger,
407 int32_t *threshold,
408 int32_t *value,
409 int32_t *minValue,
410 int32_t *maxValue,
411 uint32_t *triggerTime,
412 uint16_t idx_OD_traceConfig,
413 uint16_t idx_OD_trace)
414{
415 trace->SDO = SDO;
416 trace->enabled = (enabled != 0) ? true : false;
417 trace->timeBuffer = timeBuffer;
418 trace->valueBuffer = valueBuffer;
419 trace->bufferSize = bufferSize;
420 trace->writePtr = 0;
421 trace->readPtr = 0;
422 trace->lastTimeStamp = 0;
423 trace->map = map;
424 trace->format = format;
425 trace->trigger = trigger;
426 trace->threshold = threshold;
427 trace->value = value;
428 trace->minValue = minValue;
429 trace->maxValue = maxValue;
430 trace->triggerTime = triggerTime;
431 *trace->value = 0;
432 *trace->minValue = 0;
433 *trace->maxValue = 0;
434 *trace->triggerTime = 0;
435 trace->valuePrev = 0;
436
437 /* set trace->OD_variable and trace->dt, based on 'map' and 'format' */
438 findVariable(trace);
439
440 if(timeBuffer == NULL || valueBuffer == NULL) {
441 trace->bufferSize = 0;
442 }
443
444 if( trace->bufferSize == 0 || trace->OD_variable == NULL) {
445 trace->enabled = false;
446 }
447
448 CO_OD_configure(SDO, idx_OD_traceConfig, CO_ODF_traceConfig, (void*)trace, 0, 0);
449 CO_OD_configure(SDO, idx_OD_trace, CO_ODF_trace, (void*)trace, 0, 0);
450}
451
452
453void CO_trace_process(CO_trace_t *trace, uint32_t timestamp) {

Callers 1

CO_CANopenInitFunction · 0.85

Calls 1

findVariableFunction · 0.85

Tested by

no test coverage detected