|
PIC24 Support Libraries
|
Routines which implement the uC comm protocol. More...
#include "dataXferImpl.h"Go to the source code of this file.
Macros | |
| #define | RECEIVE_TIMEOUT (FCY * 1/20 * 0.1) |
| #define | SPECIFY_VAR(u_varIndex, data, isWriteable, format, desc) specifyVar(u_varIndex, &data, sizeof(data), isWriteable, format, #data, desc) |
Functions | |
| void | outCharXfer (char c) |
| void | outChar (uint8_t c) |
| A system-dependent macro to output one character. More... | |
| void | initDataXfer () |
| void | specifyVar (uint u_varIndex, volatile void *pv_data, uint u_size, BOOL b_isWriteable, char *psz_format, char *psz_name, char *psz_desc) |
| void | sendVar (uint u_varIndex) |
| int | formatVar (uint u_varIndex, char *psz_buf, size_t s_len) |
| uint | receiveVar (char *c) |
| char | inCharXfer () |
Routines which implement the uC comm protocol.
Definition in file dataXfer.h.
| #define RECEIVE_TIMEOUT (FCY * 1/20 * 0.1) |
Number of for loop iterations which equal a timeout for the microcontroller.
Definition at line 45 of file dataXfer.h.
| #define SPECIFY_VAR | ( | u_varIndex, | |
| data, | |||
| isWriteable, | |||
| format, | |||
| desc | |||
| ) | specifyVar(u_varIndex, &data, sizeof(data), isWriteable, format, #data, desc) |
For simplicity, define a macro that specifies a variable with default names. uC only.
| u_varIndex | A value from 0-NUM_XFER_VARS, unique for each var |
| data | A pointer to the data to be sent |
| isWriteable | True if the PC is allowed to change this variable; false otherwise. This does NOT restrict the microcontroller to read-only access to this variable. |
| format | printf format string to use in displaying the variable |
| desc | Description of this variable. |
Definition at line 103 of file dataXfer.h.
| int formatVar | ( | uint | u_varIndex, |
| char * | psz_buf, | ||
| size_t | s_len | ||
| ) |
Return a string with the data stored in the given variable formatted using the format string contained in the variable. PC only.
| u_varIndex | The index of the variable to send; must be from 0 to NUM_XFER_VARS. |
| psz_buf | Buffer to contain the formatted string. |
| s_len | Length of the buffer. |
Definition at line 132 of file dataXfer.c.
| char inCharXfer | ( | ) |
Receive a character, while transparently processing any variables sent by the PC. Variables are assigned, but this simple interface does not report these assignments to its caller. This provides a simple wrapper around receiveVar, which also reports on received variables. uC only.
| void initDataXfer | ( | ) |
Initialize the data transfer system. This must be called before calling any of the data transfer functions in the library.
Definition at line 17 of file dataXfer.c.
| void outChar | ( | uint8_t | u8_c | ) |
A system-dependent macro to output one character.
Write a character to the serial port. This function blocks until a character is written. The UART used is determined by the __C30_UART variable, which defaults to 1.
| u8_c | Character to write |
Definition at line 58 of file pic24_serial.c.
| void outCharXfer | ( | char | c | ) |
Send one character to the uC, escaping if necessary.
| c | Character to send. |
Definition at line 27 of file dataXfer.c.
| uint receiveVar | ( | char * | c | ) |
Receive a character or a variable. Any errors that occur are reported via outString. uC only.
| c | Pointer to space for storing the received character, if a character was received (see return value). |
| void sendVar | ( | uint | u_varIndex | ) |
Send an already-specified variable;
| u_varIndex | The index of the variable to send; must be from 0 to NUM_XFER_VARS. |
Definition at line 88 of file dataXfer.c.
| void specifyVar | ( | uint | u_varIndex, |
| volatile void * | pv_data, | ||
| uint | u_size, | ||
| BOOL | b_isWriteable, | ||
| char * | psz_format, | ||
| char * | psz_name, | ||
| char * | psz_desc | ||
| ) |
Specify a variable to be sent or received. uC only.
| u_varIndex | A value from 0-NUM_XFER_VARS, unique for each var |
| pv_data | A pointer to the data to be sent |
| u_size | Size of the data in bytes; must be from 1 to 256. |
| b_isWriteable | True if the PC is allowed to change this variable; false otherwise. This does NOT restrict the microcontroller to read-only access to this variable. |
| psz_format | printf format string to use in displaying the Variable. |
| psz_name | Name of this variable, typically the same as used in the code |
| psz_desc | Description of this variable. |
Definition at line 36 of file dataXfer.c.
1.8.13