SPI Programming Manual (G06.24+, H06.03+, J06.03+)

SPI Programming Examples
SPI Programming Manual427506-006
E-61
Example E-12: A Simple SPI Server in C
/*
* Here I have the option to add the work that has been done to
* returned buffer. This depends on the function being performed.
* I will add it here just for illustration purposes.
*/
if (err = SSPUTTKN (res_buffer, ZSPI_TKN_COMMENT,
(char *) &out_string))
display_spi_error (err, ZSPI_VAL_SSPUTTKN,
ZSPI_TKN_COMMENT, true);
break;
case 3 : /* Shift string to lowercase */
out_string.len = in_string.len;
memcpy (out_string.data, in_string.data, in_string.len);
SHIFTSTRING (out_string.data,
out_string.len,
1 /*downshift*/); /* Change to lower-case */
if (err = SSPUTTKN (res_buffer, ZSPI_TKN_COMMENT,
(char *) &out_string))
display_spi_error (err, ZSPI_VAL_SSPUTTKN,
ZSPI_TKN_COMMENT, true);
break;
default : /* (invalid command) */
tkn_retcode = ZSPI_ERR_NOTIMP;
break;
} /* End of CASE (spi_command) */
/* Put return code token in response buffer */
if (err = SSPUTTKN (res_buffer, ZSPI_TKN_RETCODE, (char *) &tkn_retcode))
display_spi_error (err, ZSPI_VAL_SSPUTTKN,
ZSPI_TKN_RETCODE, true);
/* Put endlist token for end of response */
if (max_resp && (resp_type != ZSPI_VAL_ERR_AND_WARN))
if (err = SSPUTTKN (res_buffer, ZSPI_TKN_ENDLIST))
display_spi_error (err, ZSPI_VAL_SSPUTTKN,
ZSPI_TKN_ENDLIST, true);
} /* End of process_spi_buffer procedure */
Example E-12. C File: A Simple SPI Server (page 7 of 12)