MPIRecorderConfig

typedef struct MPIRecorderConfig {
  long			period;		/* collect 1 record every `period` milliseconds */
  long			highCount;	/* >0 => record count to trigger high buffer	  */
  MPI_BOOL		bufferWrap;	/* TRUE/FALSE */

  long			addressCount;	/* number of data point addresses in address[] */
  void			*address[MPIRecorderADDRESS_COUNT_MAX];
  MPIRecorderTrigger	trigger[MPIRecorderTriggerIndexLAST];
} MPIRecorderConfig;

 

Change History: Modified in the 03.03.00

Description

MPIRecorderConfig structure specifies the configurations for a data recorder. It configures the sampling period, the buffer high event level, whether the buffering should wrap around, and a list of controller addresses to record.

period The number of controller samples between successive data recorder acquisitions. A value of zero or one means the data recorder will acquire data every sample. A value of 2 means every other sample, 3 means every 3rd sample, etc. The valid range is 0 to 2^31.
highCount The number of buffered records until a MPIEventTypeRECORDER_HIGH status/event is generated. The valid range is 1 to the recorder buffer size configured by mpiControlConfigSet(...).
bufferWrap Data recorder buffer rollover. A value of TRUE enables the buffer rollover, FALSE (default) disables the buffer rollover. When bufferWrap is TRUE, the controller will continuously collect data after the buffer is full, overwriting any previously collected data. When the bufferWrap is FALSE, the controller will suspend the collection of data when the buffer is full. Later, when data is collected from the recorder, its buffer will no longer be full and the controller will resume the collection of data. See Best Practices when using the Data Recorder for more information.The bufferWrap should only be set to TRUE if your application only wants to retrieve the last buffer of data after the data recorder is stopped. Most applications should set the bufferWrap to FALSE. NOTE: Allowing buffer rollover will only be enabled when -1 is passed into mpiRecorderStart(…) for the count parameter.
addressCount The number of controller addresses in the address array.
*address An array of controller memory addresses to be recorded.
trigger An array of data recorder trigger configuration structures.

Sample Code

/*
   This function configures the Recorder Settings. The Recorder 
   Period is the number of samples in between recording, if set to 0, 
   the recorder will record every sample. The highCount is the number 
   of samples that need to be recorded before a RecorderHigh event 
   will be triggered. If bufferWrap is specified as True, when the 
   recorder is full, the recorder will wrap in a circular buffer 
   and begin writing at the beginning of the recorder buffer without 
   any loss.
*/ long recorderConfig(MPIRecorder recorder, long recorderPeriod, long highCount, bool bufferWrap) { MPIRecorderConfig recorderConfig; long returnValue; /* Get recorder configuration handle */ returnValue = mpiRecorderConfigGet(recorder, &recorderConfig); if(returnValue != MPIMessageOK) { return returnValue; } /* Config recorder parameters */ recorderConfig.period = recorderPeriod;
recorderConfig.highCount = highCount; recorderConfig.bufferWrap = bufferWrap; /* Set recorder configuration using handle */ returnValue = mpiRecorderConfigSet(recorder, &recorderConfig); return returnValue; }

See Also

mpiRecorderConfigGet | mpiRecorderConfigSet | mpiRecorderStart | mpiRecorderStop | Best Practices when using the Data Recorder