Command processor to access I2C and SPI Takes URI coded commands and returns JSON array
Fork of SerialInterface by
SerialInterface.h@3:601b78524967, 2016-12-08 (annotated)
- Committer:
- switches
- Date:
- Thu Dec 08 16:32:03 2016 +0000
- Revision:
- 3:601b78524967
- Parent:
- 2:3f6a8ac111a9
- Child:
- 4:0bd9ec504040
Committing for sharing alpha release
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; |
switches | 3:601b78524967 | 19 | * I2C i2c(P3_4, P3_5); |
switches | 3:601b78524967 | 20 | * SPI spi(P5_1, P5_2, P5_0, P5_3); |
gsteiert | 0:828bfd94972b | 21 | * |
gsteiert | 0:828bfd94972b | 22 | * int main() { |
gsteiert | 0:828bfd94972b | 23 | * char ibuf[256]; |
gsteiert | 0:828bfd94972b | 24 | * char obuf[256]; |
switches | 3:601b78524967 | 25 | * serInt.init(&i2c, &spi); |
gsteiert | 0:828bfd94972b | 26 | * while(1) { |
gsteiert | 0:828bfd94972b | 27 | * scanf("%s", ibuf); |
switches | 3:601b78524967 | 28 | * serInt.call(ibuf, obuf); |
gsteiert | 0:828bfd94972b | 29 | * printf("%s=", ibuf); |
gsteiert | 0:828bfd94972b | 30 | * printf("%s\n", obuf); |
gsteiert | 0:828bfd94972b | 31 | * } |
gsteiert | 0:828bfd94972b | 32 | * @endcode |
gsteiert | 0:828bfd94972b | 33 | */ |
switches | 2:3f6a8ac111a9 | 34 | class SerialInterface |
gsteiert | 0:828bfd94972b | 35 | { |
gsteiert | 0:828bfd94972b | 36 | public: |
gsteiert | 0:828bfd94972b | 37 | |
switches | 2:3f6a8ac111a9 | 38 | /** Create a SerialInterface interface |
gsteiert | 0:828bfd94972b | 39 | * |
gsteiert | 0:828bfd94972b | 40 | */ |
switches | 2:3f6a8ac111a9 | 41 | SerialInterface(); |
gsteiert | 0:828bfd94972b | 42 | |
switches | 2:3f6a8ac111a9 | 43 | ~SerialInterface(); |
gsteiert | 0:828bfd94972b | 44 | |
gsteiert | 0:828bfd94972b | 45 | /** Name the I2C arguments |
gsteiert | 0:828bfd94972b | 46 | */ |
gsteiert | 0:828bfd94972b | 47 | enum PINTi2cArgs { |
gsteiert | 0:828bfd94972b | 48 | IA_CNT = 0, /**< Argument Count */ |
gsteiert | 0:828bfd94972b | 49 | IA_ADD, /**< Device Address */ |
gsteiert | 0:828bfd94972b | 50 | IA_DATA, /**< Data, Read = # bytes to read, Write = first data byte */ |
gsteiert | 0:828bfd94972b | 51 | IA_RDDA /**< Read Data, data to write prior to read */ |
gsteiert | 0:828bfd94972b | 52 | }; |
gsteiert | 0:828bfd94972b | 53 | |
gsteiert | 0:828bfd94972b | 54 | /** Initialize the digital pins and PWM |
gsteiert | 0:828bfd94972b | 55 | * |
gsteiert | 0:828bfd94972b | 56 | */ |
switches | 2:3f6a8ac111a9 | 57 | void init(I2C* i2c, SPI* spi); |
gsteiert | 0:828bfd94972b | 58 | |
gsteiert | 0:828bfd94972b | 59 | /** Process Remote Arduino Peripheral Module Command |
gsteiert | 0:828bfd94972b | 60 | * |
gsteiert | 0:828bfd94972b | 61 | * @param input a pointer to the string containing the command |
gsteiert | 0:828bfd94972b | 62 | * @param output a pointer to the string to write the result |
gsteiert | 0:828bfd94972b | 63 | */ |
gsteiert | 0:828bfd94972b | 64 | void call(char* input, char* output); |
gsteiert | 0:828bfd94972b | 65 | |
gsteiert | 0:828bfd94972b | 66 | private: |
gsteiert | 0:828bfd94972b | 67 | |
gsteiert | 0:828bfd94972b | 68 | // Internal Functions |
gsteiert | 0:828bfd94972b | 69 | |
gsteiert | 0:828bfd94972b | 70 | /** Process I2C Command |
gsteiert | 0:828bfd94972b | 71 | * |
gsteiert | 0:828bfd94972b | 72 | * @param resp a pointer to the string to write the result |
gsteiert | 0:828bfd94972b | 73 | */ |
gsteiert | 0:828bfd94972b | 74 | void fnc_i2c(char* resp); |
gsteiert | 0:828bfd94972b | 75 | |
gsteiert | 0:828bfd94972b | 76 | /** Process SPI Command |
gsteiert | 0:828bfd94972b | 77 | * |
gsteiert | 0:828bfd94972b | 78 | * @param resp a pointer to the string to write the result |
gsteiert | 0:828bfd94972b | 79 | */ |
gsteiert | 0:828bfd94972b | 80 | void fnc_spi(char* resp); |
gsteiert | 0:828bfd94972b | 81 | |
gsteiert | 0:828bfd94972b | 82 | // Internal Resources |
gsteiert | 0:828bfd94972b | 83 | I2C *_i2c; |
gsteiert | 0:828bfd94972b | 84 | |
switches | 2:3f6a8ac111a9 | 85 | // Internal Resources |
switches | 2:3f6a8ac111a9 | 86 | SPI *_spi; |
gsteiert | 0:828bfd94972b | 87 | |
gsteiert | 0:828bfd94972b | 88 | // Internal Buffers |
switches | 2:3f6a8ac111a9 | 89 | int _args[64]; |
switches | 2:3f6a8ac111a9 | 90 | char _dbuf[128]; |
gsteiert | 0:828bfd94972b | 91 | |
gsteiert | 0:828bfd94972b | 92 | }; |
gsteiert | 0:828bfd94972b | 93 | |
gsteiert | 0:828bfd94972b | 94 | #endif |