Andy Lustig
/
stateScript_v2
fork of StateScript
Fork of stateScript_v2 by
mbedInterface/mbedInterface.h@7:5fe7329751d4, 2017-02-07 (annotated)
- Committer:
- mkarlsso
- Date:
- Tue Feb 07 18:45:25 2017 +0000
- Revision:
- 7:5fe7329751d4
- Parent:
- 4:abee20c0bf2a
- Child:
- 10:f65649c13b5b
Fixed flip command for digital outputs
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mkarlsso | 0:8dbd6bd9167f | 1 | #ifndef MBEDINTERFACE_H |
mkarlsso | 0:8dbd6bd9167f | 2 | #define MBEDINTERFACE_H |
mkarlsso | 0:8dbd6bd9167f | 3 | |
mkarlsso | 0:8dbd6bd9167f | 4 | #include "hardwareInterface.h" |
mkarlsso | 0:8dbd6bd9167f | 5 | #include "mbed.h" |
mkarlsso | 0:8dbd6bd9167f | 6 | #include <stdint.h> |
mkarlsso | 0:8dbd6bd9167f | 7 | #include "SMARTWAV.h" |
mkarlsso | 0:8dbd6bd9167f | 8 | #include <string.h> |
mkarlsso | 0:8dbd6bd9167f | 9 | #include <string> |
mkarlsso | 0:8dbd6bd9167f | 10 | #include <vector> |
mkarlsso | 0:8dbd6bd9167f | 11 | #include <queue> |
mkarlsso | 0:8dbd6bd9167f | 12 | #include <sstream> |
mkarlsso | 0:8dbd6bd9167f | 13 | |
mkarlsso | 0:8dbd6bd9167f | 14 | |
mkarlsso | 0:8dbd6bd9167f | 15 | //#define MBED_RF |
mkarlsso | 0:8dbd6bd9167f | 16 | |
mkarlsso | 0:8dbd6bd9167f | 17 | |
mkarlsso | 7:5fe7329751d4 | 18 | //#define NUMPORTS 10 //the number of ports available on this hardware |
mkarlsso | 7:5fe7329751d4 | 19 | #define NUMDIGINPORTS 8 |
mkarlsso | 7:5fe7329751d4 | 20 | #define NUMDIGOUTPORTS 8 |
mkarlsso | 7:5fe7329751d4 | 21 | #define NUMANINPORTS 1 |
mkarlsso | 7:5fe7329751d4 | 22 | #define NUMANOUTPORTS 1 |
mkarlsso | 0:8dbd6bd9167f | 23 | |
mkarlsso | 3:d7b0a0890d96 | 24 | #define NUMEVENTS 50 |
mkarlsso | 3:d7b0a0890d96 | 25 | #define NUMCONDITIONS 150 |
mkarlsso | 3:d7b0a0890d96 | 26 | #define NUMINTCOMPARE 150 |
mkarlsso | 3:d7b0a0890d96 | 27 | #define NUMACTIONS 150 |
mkarlsso | 3:d7b0a0890d96 | 28 | #define NUMPORTMESSAGES 150 |
mkarlsso | 3:d7b0a0890d96 | 29 | #define NUMINTOPERATIONS 150 |
mkarlsso | 3:d7b0a0890d96 | 30 | #define NUMDISPLAYACTIONS 30 |
mkarlsso | 3:d7b0a0890d96 | 31 | #define NUMTRIGGERACTIONS 30 |
mkarlsso | 3:d7b0a0890d96 | 32 | #define NUMFUNCTIONS 50 |
mkarlsso | 3:d7b0a0890d96 | 33 | #define INPUTCHARBUFFERSIZE 3072 |
mkarlsso | 3:d7b0a0890d96 | 34 | |
mkarlsso | 0:8dbd6bd9167f | 35 | |
mkarlsso | 0:8dbd6bd9167f | 36 | |
mkarlsso | 0:8dbd6bd9167f | 37 | /* |
mkarlsso | 0:8dbd6bd9167f | 38 | class MBEDTimer : public sTimer |
mkarlsso | 0:8dbd6bd9167f | 39 | { |
mkarlsso | 0:8dbd6bd9167f | 40 | public: |
mkarlsso | 0:8dbd6bd9167f | 41 | sTimer(); |
mkarlsso | 0:8dbd6bd9167f | 42 | virtual void init() = 0; |
mkarlsso | 0:8dbd6bd9167f | 43 | virtual void timeout_callback() = 0; |
mkarlsso | 0:8dbd6bd9167f | 44 | |
mkarlsso | 0:8dbd6bd9167f | 45 | }; |
mkarlsso | 0:8dbd6bd9167f | 46 | |
mkarlsso | 0:8dbd6bd9167f | 47 | class MBEDExternalSync : public sExternalSync |
mkarlsso | 0:8dbd6bd9167f | 48 | { |
mkarlsso | 0:8dbd6bd9167f | 49 | public: |
mkarlsso | 0:8dbd6bd9167f | 50 | MBEDExternalSync(); |
mkarlsso | 0:8dbd6bd9167f | 51 | void init(); |
mkarlsso | 0:8dbd6bd9167f | 52 | void interrupt_callback(); |
mkarlsso | 0:8dbd6bd9167f | 53 | void reset_callback(); |
mkarlsso | 0:8dbd6bd9167f | 54 | |
mkarlsso | 0:8dbd6bd9167f | 55 | };*/ |
mkarlsso | 0:8dbd6bd9167f | 56 | |
mkarlsso | 7:5fe7329751d4 | 57 | class MBEDAnalogOut : public sAnalogOut |
mkarlsso | 7:5fe7329751d4 | 58 | { |
mkarlsso | 7:5fe7329751d4 | 59 | public: |
mkarlsso | 7:5fe7329751d4 | 60 | MBEDAnalogOut(); |
mkarlsso | 0:8dbd6bd9167f | 61 | |
mkarlsso | 7:5fe7329751d4 | 62 | void init(int pin); |
mkarlsso | 7:5fe7329751d4 | 63 | void write(int value); |
mkarlsso | 7:5fe7329751d4 | 64 | int read(); |
mkarlsso | 7:5fe7329751d4 | 65 | |
mkarlsso | 7:5fe7329751d4 | 66 | private: |
mkarlsso | 7:5fe7329751d4 | 67 | //define the hardware output pin |
mkarlsso | 7:5fe7329751d4 | 68 | uint8_t pinNumber; |
mkarlsso | 7:5fe7329751d4 | 69 | AnalogOut *outpin; |
mkarlsso | 7:5fe7329751d4 | 70 | bool pinExists; |
mkarlsso | 7:5fe7329751d4 | 71 | |
mkarlsso | 7:5fe7329751d4 | 72 | }; |
mkarlsso | 7:5fe7329751d4 | 73 | |
mkarlsso | 7:5fe7329751d4 | 74 | class MBEDAnalogIn : public sAnalogIn |
mkarlsso | 7:5fe7329751d4 | 75 | { |
mkarlsso | 7:5fe7329751d4 | 76 | public: |
mkarlsso | 7:5fe7329751d4 | 77 | MBEDAnalogIn(); |
mkarlsso | 7:5fe7329751d4 | 78 | |
mkarlsso | 7:5fe7329751d4 | 79 | void init(int pin); |
mkarlsso | 7:5fe7329751d4 | 80 | int read(); |
mkarlsso | 7:5fe7329751d4 | 81 | |
mkarlsso | 7:5fe7329751d4 | 82 | protected: |
mkarlsso | 7:5fe7329751d4 | 83 | |
mkarlsso | 7:5fe7329751d4 | 84 | private: |
mkarlsso | 7:5fe7329751d4 | 85 | uint8_t pinNumber; |
mkarlsso | 7:5fe7329751d4 | 86 | AnalogIn *inpin; |
mkarlsso | 7:5fe7329751d4 | 87 | bool pinExists; |
mkarlsso | 7:5fe7329751d4 | 88 | |
mkarlsso | 7:5fe7329751d4 | 89 | |
mkarlsso | 7:5fe7329751d4 | 90 | }; |
mkarlsso | 0:8dbd6bd9167f | 91 | |
mkarlsso | 0:8dbd6bd9167f | 92 | class MBEDDigitalOut : public sDigitalOut |
mkarlsso | 0:8dbd6bd9167f | 93 | { |
mkarlsso | 0:8dbd6bd9167f | 94 | public: |
mkarlsso | 0:8dbd6bd9167f | 95 | MBEDDigitalOut(); |
mkarlsso | 0:8dbd6bd9167f | 96 | |
mkarlsso | 0:8dbd6bd9167f | 97 | void init(int pin); |
mkarlsso | 0:8dbd6bd9167f | 98 | void write(int value); |
mkarlsso | 0:8dbd6bd9167f | 99 | int read(); |
mkarlsso | 0:8dbd6bd9167f | 100 | |
mkarlsso | 0:8dbd6bd9167f | 101 | private: |
mkarlsso | 0:8dbd6bd9167f | 102 | DigitalOut *outpin; |
mkarlsso | 4:abee20c0bf2a | 103 | bool pinExists; |
mkarlsso | 0:8dbd6bd9167f | 104 | |
mkarlsso | 0:8dbd6bd9167f | 105 | }; |
mkarlsso | 0:8dbd6bd9167f | 106 | |
mkarlsso | 0:8dbd6bd9167f | 107 | class MBEDDigitalIn : public sDigitalIn |
mkarlsso | 0:8dbd6bd9167f | 108 | { |
mkarlsso | 0:8dbd6bd9167f | 109 | public: |
mkarlsso | 0:8dbd6bd9167f | 110 | MBEDDigitalIn(); |
mkarlsso | 0:8dbd6bd9167f | 111 | |
mkarlsso | 0:8dbd6bd9167f | 112 | void init(int pin); |
mkarlsso | 0:8dbd6bd9167f | 113 | int read(); |
mkarlsso | 0:8dbd6bd9167f | 114 | void interrupt_up_callback(); |
mkarlsso | 0:8dbd6bd9167f | 115 | void interrupt_down_callback(); |
mkarlsso | 0:8dbd6bd9167f | 116 | protected: |
mkarlsso | 3:d7b0a0890d96 | 117 | |
mkarlsso | 3:d7b0a0890d96 | 118 | |
mkarlsso | 0:8dbd6bd9167f | 119 | |
mkarlsso | 0:8dbd6bd9167f | 120 | private: |
mkarlsso | 0:8dbd6bd9167f | 121 | DigitalIn *inpin; |
mkarlsso | 0:8dbd6bd9167f | 122 | InterruptIn *inpin_interrupt; |
mkarlsso | 4:abee20c0bf2a | 123 | bool pinExists; |
mkarlsso | 0:8dbd6bd9167f | 124 | |
mkarlsso | 0:8dbd6bd9167f | 125 | }; |
mkarlsso | 0:8dbd6bd9167f | 126 | |
mkarlsso | 0:8dbd6bd9167f | 127 | class MBEDSerialPort : public sSerialPort |
mkarlsso | 0:8dbd6bd9167f | 128 | { |
mkarlsso | 0:8dbd6bd9167f | 129 | public: |
mkarlsso | 0:8dbd6bd9167f | 130 | MBEDSerialPort(); |
mkarlsso | 0:8dbd6bd9167f | 131 | |
mkarlsso | 0:8dbd6bd9167f | 132 | void init(); |
mkarlsso | 0:8dbd6bd9167f | 133 | bool readable(); |
mkarlsso | 0:8dbd6bd9167f | 134 | char readChar(); |
mkarlsso | 0:8dbd6bd9167f | 135 | void writeChar(char s); |
mkarlsso | 3:d7b0a0890d96 | 136 | int requestToWriteString(char *s, int numBytes); |
mkarlsso | 0:8dbd6bd9167f | 137 | Serial *serialToPC; |
mkarlsso | 0:8dbd6bd9167f | 138 | |
mkarlsso | 0:8dbd6bd9167f | 139 | private: |
mkarlsso | 0:8dbd6bd9167f | 140 | //Serial communication |
mkarlsso | 3:d7b0a0890d96 | 141 | |
mkarlsso | 0:8dbd6bd9167f | 142 | |
mkarlsso | 0:8dbd6bd9167f | 143 | }; |
mkarlsso | 0:8dbd6bd9167f | 144 | |
mkarlsso | 0:8dbd6bd9167f | 145 | class MBEDSound: public sSound |
mkarlsso | 0:8dbd6bd9167f | 146 | { |
mkarlsso | 0:8dbd6bd9167f | 147 | public: |
mkarlsso | 0:8dbd6bd9167f | 148 | MBEDSound(); |
mkarlsso | 0:8dbd6bd9167f | 149 | void execute(); |
mkarlsso | 0:8dbd6bd9167f | 150 | |
mkarlsso | 0:8dbd6bd9167f | 151 | private: |
mkarlsso | 0:8dbd6bd9167f | 152 | |
mkarlsso | 0:8dbd6bd9167f | 153 | }; |
mkarlsso | 0:8dbd6bd9167f | 154 | |
mkarlsso | 0:8dbd6bd9167f | 155 | class MBEDSystem: public sSystem |
mkarlsso | 0:8dbd6bd9167f | 156 | { |
mkarlsso | 0:8dbd6bd9167f | 157 | public: |
mkarlsso | 0:8dbd6bd9167f | 158 | MBEDSystem(); |
mkarlsso | 0:8dbd6bd9167f | 159 | void timerinit(); |
mkarlsso | 0:8dbd6bd9167f | 160 | void setStandAloneClock(); |
mkarlsso | 0:8dbd6bd9167f | 161 | void setSlaveClock(); |
mkarlsso | 0:8dbd6bd9167f | 162 | sDigitalOut* getDigitalOutPtr(int portNum); |
mkarlsso | 0:8dbd6bd9167f | 163 | sDigitalIn* getDigitalInPtr(int portNum); |
mkarlsso | 7:5fe7329751d4 | 164 | sAnalogOut* getAnalogOutPtr(int portNum); |
mkarlsso | 7:5fe7329751d4 | 165 | sAnalogIn* getAnalogInPtr(int portNum); |
mkarlsso | 0:8dbd6bd9167f | 166 | sSound* createNewSoundAction(); |
mkarlsso | 3:d7b0a0890d96 | 167 | void pauseInterrupts(); |
mkarlsso | 3:d7b0a0890d96 | 168 | void resumeInterrupts(); |
mkarlsso | 0:8dbd6bd9167f | 169 | void incrementClock(); |
mkarlsso | 0:8dbd6bd9167f | 170 | void externalClockReset(); //needs to reset harware timer before calling immediateClockReset(); |
mkarlsso | 0:8dbd6bd9167f | 171 | void mainLoopToDo(); |
mkarlsso | 3:d7b0a0890d96 | 172 | |
mkarlsso | 0:8dbd6bd9167f | 173 | protected: |
mkarlsso | 3:d7b0a0890d96 | 174 | |
mkarlsso | 0:8dbd6bd9167f | 175 | //Pins for clock syncing |
mkarlsso | 0:8dbd6bd9167f | 176 | InterruptIn clockResetInt; |
mkarlsso | 0:8dbd6bd9167f | 177 | InterruptIn clockExternalIncrement; |
mkarlsso | 3:d7b0a0890d96 | 178 | |
mkarlsso | 0:8dbd6bd9167f | 179 | private: |
mkarlsso | 7:5fe7329751d4 | 180 | MBEDDigitalIn dIn[NUMDIGINPORTS]; |
mkarlsso | 7:5fe7329751d4 | 181 | MBEDDigitalOut dOut[NUMDIGOUTPORTS]; |
mkarlsso | 7:5fe7329751d4 | 182 | MBEDAnalogIn aIn[NUMANINPORTS]; |
mkarlsso | 7:5fe7329751d4 | 183 | MBEDAnalogOut aOut[NUMANOUTPORTS]; |
mkarlsso | 0:8dbd6bd9167f | 184 | }; |
mkarlsso | 0:8dbd6bd9167f | 185 | |
mkarlsso | 0:8dbd6bd9167f | 186 | #endif // MBEDINTERFACE_H |