Example: lrs_get_buffer_by_name
In the following example, lrs_get_buffer_by_name gets the buffer and its size for the buffer descriptor "buff2".
char *ActualBuffer;
int NumberOfBytes;
lrs_get_buffer_by_name("buff2", &ActualBuffer, &NumberOfBytes);
lr_output_message("The buffer's size is: %d/n", NumberOfBytes);
The contents of the buffer, as shown in the data file data.ws are:
recv buff2 3
"\xff\xfe\x01"
Message from run.c(52): The buffer size is: 3 bytes
The ActualBuffer variable is a pointer to binary data; therefore you should not use string functions to manipulate it. To save the content of the buffer to a parameter for later use:
/* Save the contents of ActualBuffer into a parameter called "new_parameter" */
lrs_save_param_ex("socket2", "user", ActualBuffer, 0, NumberOfBytes, "ascii", "new_parameter");
lrs_free_buffer(ActualBuffer);
lr_output_message("The buffer contains \"%s\"\n", lr_eval_string("< new_parameter >"));
The output generated by the above code, as seen in the VuGen Execution log is:
Message from run.c(52): The buffer contains: "\xff\xfe\n"