Command processor to access I2C and SPI Takes URI coded commands and returns JSON array
Fork of SerialInterface by
SerialInterface.h@2:3f6a8ac111a9, 2016-12-08 (annotated)
- 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?
User | Revision | Line number | New 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 |