Command processor to access I2C and SPI Takes URI coded commands and returns JSON array

Fork of SerialInterface by Greg Steiert

Committer:
switches
Date:
Thu Dec 08 05:21:57 2016 +0000
Revision:
2:3f6a8ac111a9
Parent:
PmodInterface.h@1:0c22013818d7
Child:
3:601b78524967
Serial Command Interface

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gsteiert 0:828bfd94972b 1 /* Pmod Interface Library
gsteiert 0:828bfd94972b 2 *
gsteiert 0:828bfd94972b 3 */
switches 2:3f6a8ac111a9 4 #ifndef SERIALINTERFACE_H
switches 2:3f6a8ac111a9 5 #define SERIALINTERFACE_H
gsteiert 0:828bfd94972b 6
gsteiert 0:828bfd94972b 7 #include "mbed.h"
switches 2:3f6a8ac111a9 8 #include "SerialInterface.h"
gsteiert 0:828bfd94972b 9
gsteiert 0:828bfd94972b 10 /** RAPC Library, Provides utilities for remotely accessing peripherals
gsteiert 0:828bfd94972b 11 *
gsteiert 0:828bfd94972b 12 * Example:
gsteiert 0:828bfd94972b 13 * @code
gsteiert 0:828bfd94972b 14 * // Configure board to pass UART signals to peripheral connector.
gsteiert 0:828bfd94972b 15 *
switches 2:3f6a8ac111a9 16 * #include "SerialInterface.h"
gsteiert 0:828bfd94972b 17 *
switches 2:3f6a8ac111a9 18 * SerialInterface serInt;
gsteiert 0:828bfd94972b 19 *
gsteiert 0:828bfd94972b 20 * int main() {
gsteiert 0:828bfd94972b 21 * char ibuf[256];
gsteiert 0:828bfd94972b 22 * char obuf[256];
gsteiert 0:828bfd94972b 23 * pInt.init();
gsteiert 0:828bfd94972b 24 * while(1) {
gsteiert 0:828bfd94972b 25 * scanf("%s", ibuf);
gsteiert 0:828bfd94972b 26 * pInt.call(ibuf, obuf);
gsteiert 0:828bfd94972b 27 * printf("%s=", ibuf);
gsteiert 0:828bfd94972b 28 * printf("%s\n", obuf);
gsteiert 0:828bfd94972b 29 * }
gsteiert 0:828bfd94972b 30 * @endcode
gsteiert 0:828bfd94972b 31 */
switches 2:3f6a8ac111a9 32 class SerialInterface
gsteiert 0:828bfd94972b 33 {
gsteiert 0:828bfd94972b 34 public:
gsteiert 0:828bfd94972b 35
switches 2:3f6a8ac111a9 36 /** Create a SerialInterface interface
gsteiert 0:828bfd94972b 37 *
gsteiert 0:828bfd94972b 38 */
switches 2:3f6a8ac111a9 39 SerialInterface();
gsteiert 0:828bfd94972b 40
switches 2:3f6a8ac111a9 41 ~SerialInterface();
gsteiert 0:828bfd94972b 42
gsteiert 0:828bfd94972b 43 /** Name the I2C arguments
gsteiert 0:828bfd94972b 44 */
gsteiert 0:828bfd94972b 45 enum PINTi2cArgs {
gsteiert 0:828bfd94972b 46 IA_CNT = 0, /**< Argument Count */
gsteiert 0:828bfd94972b 47 IA_ADD, /**< Device Address */
gsteiert 0:828bfd94972b 48 IA_DATA, /**< Data, Read = # bytes to read, Write = first data byte */
gsteiert 0:828bfd94972b 49 IA_RDDA /**< Read Data, data to write prior to read */
gsteiert 0:828bfd94972b 50 };
gsteiert 0:828bfd94972b 51
gsteiert 0:828bfd94972b 52 /** Initialize the digital pins and PWM
gsteiert 0:828bfd94972b 53 *
gsteiert 0:828bfd94972b 54 */
switches 2:3f6a8ac111a9 55 void init(I2C* i2c, SPI* spi);
gsteiert 0:828bfd94972b 56
gsteiert 0:828bfd94972b 57 /** Process Remote Arduino Peripheral Module Command
gsteiert 0:828bfd94972b 58 *
gsteiert 0:828bfd94972b 59 * @param input a pointer to the string containing the command
gsteiert 0:828bfd94972b 60 * @param output a pointer to the string to write the result
gsteiert 0:828bfd94972b 61 */
gsteiert 0:828bfd94972b 62 void call(char* input, char* output);
gsteiert 0:828bfd94972b 63
gsteiert 0:828bfd94972b 64 private:
gsteiert 0:828bfd94972b 65
gsteiert 0:828bfd94972b 66 // Internal Functions
gsteiert 0:828bfd94972b 67
gsteiert 0:828bfd94972b 68 /** Process I2C Command
gsteiert 0:828bfd94972b 69 *
gsteiert 0:828bfd94972b 70 * @param resp a pointer to the string to write the result
gsteiert 0:828bfd94972b 71 */
gsteiert 0:828bfd94972b 72 void fnc_i2c(char* resp);
gsteiert 0:828bfd94972b 73
gsteiert 0:828bfd94972b 74 /** Process SPI Command
gsteiert 0:828bfd94972b 75 *
gsteiert 0:828bfd94972b 76 * @param resp a pointer to the string to write the result
gsteiert 0:828bfd94972b 77 */
gsteiert 0:828bfd94972b 78 void fnc_spi(char* resp);
gsteiert 0:828bfd94972b 79
gsteiert 0:828bfd94972b 80 // Internal Resources
gsteiert 0:828bfd94972b 81 I2C *_i2c;
gsteiert 0:828bfd94972b 82
switches 2:3f6a8ac111a9 83 // Internal Resources
switches 2:3f6a8ac111a9 84 SPI *_spi;
gsteiert 0:828bfd94972b 85
gsteiert 0:828bfd94972b 86 // Internal Buffers
switches 2:3f6a8ac111a9 87 int _args[64];
switches 2:3f6a8ac111a9 88 char _dbuf[128];
gsteiert 0:828bfd94972b 89
gsteiert 0:828bfd94972b 90 };
gsteiert 0:828bfd94972b 91
gsteiert 0:828bfd94972b 92 #endif