Norimasa Okamoto
/
TinyJS
TinyJS
Fork of TinyJS by
Mbed_Functions.cpp@9:f80cf055f03d, 2014-09-10 (annotated)
- Committer:
- va009039
- Date:
- Wed Sep 10 08:41:53 2014 +0000
- Revision:
- 9:f80cf055f03d
- Parent:
- 8:819934a27c2d
for GAE
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ohneta | 3:f56c36ea8266 | 1 | /* |
ohneta | 3:f56c36ea8266 | 2 | * TinyJS for mbed. |
ohneta | 3:f56c36ea8266 | 3 | * Mbed_Functions.cpp |
ohneta | 3:f56c36ea8266 | 4 | * |
ohneta | 3:f56c36ea8266 | 5 | * Authored by Takehisa Oneta (ohneta@gmail.com) |
ohneta | 7:40010b4dc51d | 6 | * 17th Jan. 2014 - |
ohneta | 3:f56c36ea8266 | 7 | */ |
ohneta | 3:f56c36ea8266 | 8 | |
ohneta | 3:f56c36ea8266 | 9 | #include "mbed.h" |
ohneta | 3:f56c36ea8266 | 10 | #include "TinyJS.h" |
ohneta | 3:f56c36ea8266 | 11 | #include "Mbed_Functions.h" |
va009039 | 9:f80cf055f03d | 12 | #include "PinNameTable.h" |
ohneta | 3:f56c36ea8266 | 13 | |
ohneta | 3:f56c36ea8266 | 14 | //--------------------------------------------- |
ohneta | 3:f56c36ea8266 | 15 | |
ohneta | 3:f56c36ea8266 | 16 | void mbedDigitalIn(CScriptVar *c, void *) |
ohneta | 3:f56c36ea8266 | 17 | { |
ohneta | 3:f56c36ea8266 | 18 | string pinNameString = c->getParameter("pinName")->getString(); |
ohneta | 3:f56c36ea8266 | 19 | PinName pinName = _mbedPinNameExchange(pinNameString); |
ohneta | 3:f56c36ea8266 | 20 | string modeString = c->getParameter("mode")->getString(); |
ohneta | 3:f56c36ea8266 | 21 | |
ohneta | 3:f56c36ea8266 | 22 | int mode = PullDown; |
ohneta | 3:f56c36ea8266 | 23 | if (modeString == "PullUp") { |
ohneta | 3:f56c36ea8266 | 24 | mode = PullUp; |
ohneta | 3:f56c36ea8266 | 25 | } else if (modeString == "PullNone"){ |
ohneta | 3:f56c36ea8266 | 26 | mode = PullNone; |
ohneta | 3:f56c36ea8266 | 27 | } else if (modeString == "PullDown") { |
ohneta | 3:f56c36ea8266 | 28 | mode = PullDown; |
ohneta | 3:f56c36ea8266 | 29 | } |
ohneta | 3:f56c36ea8266 | 30 | |
ohneta | 3:f56c36ea8266 | 31 | DigitalIn din = DigitalIn((PinName)pinName); |
ohneta | 3:f56c36ea8266 | 32 | din.mode((PinMode)mode); |
ohneta | 3:f56c36ea8266 | 33 | int val = din.read(); |
ohneta | 3:f56c36ea8266 | 34 | c->getReturnVar()->setInt(val); |
ohneta | 3:f56c36ea8266 | 35 | } |
ohneta | 3:f56c36ea8266 | 36 | |
ohneta | 3:f56c36ea8266 | 37 | void mbedDigitalOut(CScriptVar *c, void *) |
ohneta | 3:f56c36ea8266 | 38 | { |
ohneta | 3:f56c36ea8266 | 39 | string pinNameString = c->getParameter("pinName")->getString(); |
ohneta | 3:f56c36ea8266 | 40 | PinName pinName = _mbedPinNameExchange(pinNameString); |
ohneta | 3:f56c36ea8266 | 41 | |
ohneta | 3:f56c36ea8266 | 42 | int val = c->getParameter("val")->getInt(); |
ohneta | 3:f56c36ea8266 | 43 | |
ohneta | 3:f56c36ea8266 | 44 | DigitalOut dout = DigitalOut((PinName)pinName); |
ohneta | 3:f56c36ea8266 | 45 | dout.write(val); |
ohneta | 3:f56c36ea8266 | 46 | } |
ohneta | 3:f56c36ea8266 | 47 | |
ohneta | 3:f56c36ea8266 | 48 | //--------------------------------------------- |
ohneta | 3:f56c36ea8266 | 49 | |
ohneta | 3:f56c36ea8266 | 50 | void mbedAnalogIn(CScriptVar *c, void *) |
ohneta | 3:f56c36ea8266 | 51 | { |
ohneta | 3:f56c36ea8266 | 52 | string pinNameString = c->getParameter("pinName")->getString(); |
ohneta | 3:f56c36ea8266 | 53 | PinName pinName = _mbedPinNameExchange(pinNameString); |
ohneta | 3:f56c36ea8266 | 54 | |
ohneta | 3:f56c36ea8266 | 55 | AnalogIn ain = AnalogIn((PinName)pinName); |
ohneta | 3:f56c36ea8266 | 56 | float val = ain.read(); |
ohneta | 3:f56c36ea8266 | 57 | |
ohneta | 3:f56c36ea8266 | 58 | c->getReturnVar()->setDouble(val); |
ohneta | 3:f56c36ea8266 | 59 | } |
ohneta | 3:f56c36ea8266 | 60 | |
ohneta | 3:f56c36ea8266 | 61 | void mbedAnalogOut(CScriptVar *c, void *) |
ohneta | 3:f56c36ea8266 | 62 | { |
ohneta | 3:f56c36ea8266 | 63 | string pinNameString = c->getParameter("pinName")->getString(); |
ohneta | 3:f56c36ea8266 | 64 | PinName pinName = _mbedPinNameExchange(pinNameString); |
ohneta | 5:b5e4fbe59746 | 65 | float val = c->getParameter("val")->getDouble(); |
va009039 | 9:f80cf055f03d | 66 | #if DEVICE_ANALOGOUT |
ohneta | 3:f56c36ea8266 | 67 | AnalogOut aout = AnalogOut((PinName)pinName); |
ohneta | 3:f56c36ea8266 | 68 | aout.write(val); |
va009039 | 9:f80cf055f03d | 69 | #endif |
ohneta | 3:f56c36ea8266 | 70 | } |
ohneta | 3:f56c36ea8266 | 71 | |
ohneta | 3:f56c36ea8266 | 72 | //--------------------------------------------- |
ohneta | 3:f56c36ea8266 | 73 | #define INTERRUPT_NUM 4 |
ohneta | 6:30b4122b0ee2 | 74 | CTinyJS *_mbed_interruptIn_tinyJS; |
ohneta | 6:30b4122b0ee2 | 75 | int _mbed_interruptIn_Count = 0; |
ohneta | 6:30b4122b0ee2 | 76 | string _mbed_interruptIn_callbackStrings[INTERRUPT_NUM]; |
ohneta | 6:30b4122b0ee2 | 77 | InterruptIn* _mbed_interrupt_array[INTERRUPT_NUM] = {NULL, NULL, NULL, NULL}; |
ohneta | 3:f56c36ea8266 | 78 | |
ohneta | 6:30b4122b0ee2 | 79 | void _interruptVector0(){ |
ohneta | 6:30b4122b0ee2 | 80 | _mbed_interruptIn_tinyJS->execute(_mbed_interruptIn_callbackStrings[0]); |
ohneta | 3:f56c36ea8266 | 81 | } |
ohneta | 6:30b4122b0ee2 | 82 | void _interruptVector1(){ |
ohneta | 6:30b4122b0ee2 | 83 | _mbed_interruptIn_tinyJS->execute(_mbed_interruptIn_callbackStrings[1]); |
ohneta | 3:f56c36ea8266 | 84 | } |
ohneta | 6:30b4122b0ee2 | 85 | void _interruptVector2(){ |
ohneta | 6:30b4122b0ee2 | 86 | _mbed_interruptIn_tinyJS->execute(_mbed_interruptIn_callbackStrings[2]); |
ohneta | 3:f56c36ea8266 | 87 | } |
ohneta | 6:30b4122b0ee2 | 88 | void _interruptVector3(){ |
ohneta | 6:30b4122b0ee2 | 89 | _mbed_interruptIn_tinyJS->execute(_mbed_interruptIn_callbackStrings[3]); |
ohneta | 3:f56c36ea8266 | 90 | } |
ohneta | 3:f56c36ea8266 | 91 | |
ohneta | 7:40010b4dc51d | 92 | void mbedInterruptIn(CScriptVar *c, void *data) |
ohneta | 3:f56c36ea8266 | 93 | { |
ohneta | 3:f56c36ea8266 | 94 | string pinNameString = c->getParameter("pinName")->getString(); |
ohneta | 3:f56c36ea8266 | 95 | PinName pinName = _mbedPinNameExchange(pinNameString); |
ohneta | 3:f56c36ea8266 | 96 | |
ohneta | 3:f56c36ea8266 | 97 | string edgeString = c->getParameter("edge")->getString(); |
ohneta | 3:f56c36ea8266 | 98 | string modeString = c->getParameter("mode")->getString(); |
ohneta | 3:f56c36ea8266 | 99 | PinMode mode = PullDown; |
ohneta | 3:f56c36ea8266 | 100 | if (modeString == "PullUp") { |
ohneta | 3:f56c36ea8266 | 101 | mode = PullUp; |
ohneta | 3:f56c36ea8266 | 102 | } else if (modeString == "PullNone"){ |
ohneta | 3:f56c36ea8266 | 103 | mode = PullNone; |
ohneta | 3:f56c36ea8266 | 104 | } else if (modeString == "PullDown") { |
ohneta | 3:f56c36ea8266 | 105 | mode = PullDown; |
ohneta | 3:f56c36ea8266 | 106 | } |
ohneta | 3:f56c36ea8266 | 107 | |
ohneta | 6:30b4122b0ee2 | 108 | _mbed_interruptIn_tinyJS = (CTinyJS *)data; |
ohneta | 6:30b4122b0ee2 | 109 | _mbed_interruptIn_callbackStrings[_mbed_interruptIn_Count] = c->getParameter("callback")->getString(); |
ohneta | 3:f56c36ea8266 | 110 | |
ohneta | 6:30b4122b0ee2 | 111 | if (_mbed_interrupt_array[_mbed_interruptIn_Count] != NULL) { |
ohneta | 6:30b4122b0ee2 | 112 | delete _mbed_interrupt_array[_mbed_interruptIn_Count]; |
ohneta | 3:f56c36ea8266 | 113 | } |
ohneta | 3:f56c36ea8266 | 114 | |
ohneta | 6:30b4122b0ee2 | 115 | _mbed_interrupt_array[_mbed_interruptIn_Count] = new InterruptIn(pinName); |
ohneta | 6:30b4122b0ee2 | 116 | _mbed_interrupt_array[_mbed_interruptIn_Count]->mode(mode); |
ohneta | 3:f56c36ea8266 | 117 | |
ohneta | 6:30b4122b0ee2 | 118 | if (_mbed_interruptIn_Count == 0) { |
ohneta | 6:30b4122b0ee2 | 119 | if (edgeString == "fall") _mbed_interrupt_array[_mbed_interruptIn_Count]->fall(_interruptVector0); |
ohneta | 6:30b4122b0ee2 | 120 | else if (edgeString == "rise") _mbed_interrupt_array[_mbed_interruptIn_Count]->rise(_interruptVector0); |
ohneta | 6:30b4122b0ee2 | 121 | } else if (_mbed_interruptIn_Count == 1) { |
ohneta | 6:30b4122b0ee2 | 122 | if (edgeString == "fall") _mbed_interrupt_array[_mbed_interruptIn_Count]->fall(_interruptVector1); |
ohneta | 6:30b4122b0ee2 | 123 | else if (edgeString == "rise") _mbed_interrupt_array[_mbed_interruptIn_Count]->rise(_interruptVector1); |
ohneta | 6:30b4122b0ee2 | 124 | } else if (_mbed_interruptIn_Count == 2) { |
ohneta | 6:30b4122b0ee2 | 125 | if (edgeString == "fall") _mbed_interrupt_array[_mbed_interruptIn_Count]->fall(_interruptVector2); |
ohneta | 6:30b4122b0ee2 | 126 | else if (edgeString == "rise") _mbed_interrupt_array[_mbed_interruptIn_Count]->rise(_interruptVector2); |
ohneta | 6:30b4122b0ee2 | 127 | } else if (_mbed_interruptIn_Count == 3) { |
ohneta | 6:30b4122b0ee2 | 128 | if (edgeString == "fall") _mbed_interrupt_array[_mbed_interruptIn_Count]->fall(_interruptVector3); |
ohneta | 6:30b4122b0ee2 | 129 | else if (edgeString == "rise") _mbed_interrupt_array[_mbed_interruptIn_Count]->rise(_interruptVector3); |
ohneta | 3:f56c36ea8266 | 130 | } |
ohneta | 3:f56c36ea8266 | 131 | |
ohneta | 6:30b4122b0ee2 | 132 | c->getReturnVar()->setInt(_mbed_interruptIn_Count); |
ohneta | 3:f56c36ea8266 | 133 | |
ohneta | 6:30b4122b0ee2 | 134 | _mbed_interruptIn_Count++; |
ohneta | 6:30b4122b0ee2 | 135 | if (_mbed_interruptIn_Count >= INTERRUPT_NUM) { |
ohneta | 6:30b4122b0ee2 | 136 | _mbed_interruptIn_Count = 0; |
ohneta | 3:f56c36ea8266 | 137 | } |
ohneta | 3:f56c36ea8266 | 138 | } |
ohneta | 3:f56c36ea8266 | 139 | |
ohneta | 6:30b4122b0ee2 | 140 | /* |
ohneta | 3:f56c36ea8266 | 141 | void mbedRemoveInterrupt(CScriptVar *c, void *) |
ohneta | 3:f56c36ea8266 | 142 | { |
ohneta | 6:30b4122b0ee2 | 143 | int intrno = c->getParameter("interrupt_no")->getInt(); |
ohneta | 6:30b4122b0ee2 | 144 | } |
ohneta | 6:30b4122b0ee2 | 145 | */ |
ohneta | 6:30b4122b0ee2 | 146 | |
ohneta | 6:30b4122b0ee2 | 147 | //--------------------------------------------- |
ohneta | 6:30b4122b0ee2 | 148 | |
ohneta | 6:30b4122b0ee2 | 149 | void mbedWait(CScriptVar *c, void *) |
ohneta | 6:30b4122b0ee2 | 150 | { |
ohneta | 6:30b4122b0ee2 | 151 | float val = c->getParameter("s")->getDouble(); |
ohneta | 6:30b4122b0ee2 | 152 | wait(val); |
ohneta | 3:f56c36ea8266 | 153 | } |
ohneta | 3:f56c36ea8266 | 154 | |
ohneta | 3:f56c36ea8266 | 155 | //--------------------------------------------- |
ohneta | 3:f56c36ea8266 | 156 | /** |
ohneta | 3:f56c36ea8266 | 157 | * |
ohneta | 3:f56c36ea8266 | 158 | */ |
ohneta | 3:f56c36ea8266 | 159 | void mbedMemfree(CScriptVar *c, void *) |
ohneta | 3:f56c36ea8266 | 160 | { |
ohneta | 3:f56c36ea8266 | 161 | int i = 0; |
ohneta | 3:f56c36ea8266 | 162 | while(1) { |
ohneta | 3:f56c36ea8266 | 163 | void *p = malloc(i); |
ohneta | 3:f56c36ea8266 | 164 | if (p == NULL) break; |
ohneta | 3:f56c36ea8266 | 165 | free(p); |
ohneta | 3:f56c36ea8266 | 166 | i++; |
ohneta | 3:f56c36ea8266 | 167 | } |
ohneta | 3:f56c36ea8266 | 168 | c->getReturnVar()->setInt(i); |
ohneta | 3:f56c36ea8266 | 169 | } |
ohneta | 3:f56c36ea8266 | 170 | |
ohneta | 3:f56c36ea8266 | 171 | //--------------------------------------------- |
ohneta | 3:f56c36ea8266 | 172 | PinName _mbedPinNameExchange(string pinNameString) |
ohneta | 3:f56c36ea8266 | 173 | { |
va009039 | 9:f80cf055f03d | 174 | #if 0 |
ohneta | 3:f56c36ea8266 | 175 | if (pinNameString == "p5") return p5; |
ohneta | 3:f56c36ea8266 | 176 | if (pinNameString == "p6") return p6; |
ohneta | 3:f56c36ea8266 | 177 | if (pinNameString == "p7") return p7; |
ohneta | 3:f56c36ea8266 | 178 | if (pinNameString == "p8") return p8; |
ohneta | 3:f56c36ea8266 | 179 | if (pinNameString == "p9") return p9; |
ohneta | 3:f56c36ea8266 | 180 | if (pinNameString == "p10") return p10; |
ohneta | 3:f56c36ea8266 | 181 | if (pinNameString == "p11") return p11; |
ohneta | 3:f56c36ea8266 | 182 | if (pinNameString == "p12") return p12; |
ohneta | 3:f56c36ea8266 | 183 | if (pinNameString == "p13") return p13; |
ohneta | 3:f56c36ea8266 | 184 | if (pinNameString == "p14") return p14; |
ohneta | 3:f56c36ea8266 | 185 | if (pinNameString == "p15") return p15; |
ohneta | 3:f56c36ea8266 | 186 | if (pinNameString == "p16") return p16; |
ohneta | 3:f56c36ea8266 | 187 | if (pinNameString == "p17") return p17; |
ohneta | 3:f56c36ea8266 | 188 | if (pinNameString == "p18") return p18; |
ohneta | 3:f56c36ea8266 | 189 | if (pinNameString == "p19") return p19; |
ohneta | 3:f56c36ea8266 | 190 | if (pinNameString == "p20") return p20; |
ohneta | 3:f56c36ea8266 | 191 | |
ohneta | 3:f56c36ea8266 | 192 | if (pinNameString == "p21") return p21; |
ohneta | 3:f56c36ea8266 | 193 | if (pinNameString == "p22") return p22; |
ohneta | 3:f56c36ea8266 | 194 | if (pinNameString == "p23") return p23; |
ohneta | 3:f56c36ea8266 | 195 | if (pinNameString == "p24") return p24; |
ohneta | 3:f56c36ea8266 | 196 | if (pinNameString == "p25") return p25; |
ohneta | 3:f56c36ea8266 | 197 | if (pinNameString == "p26") return p26; |
ohneta | 3:f56c36ea8266 | 198 | if (pinNameString == "p27") return p27; |
ohneta | 3:f56c36ea8266 | 199 | if (pinNameString == "p28") return p28; |
ohneta | 3:f56c36ea8266 | 200 | if (pinNameString == "p29") return p29; |
ohneta | 3:f56c36ea8266 | 201 | if (pinNameString == "p30") return p30; |
ohneta | 3:f56c36ea8266 | 202 | |
ohneta | 3:f56c36ea8266 | 203 | |
ohneta | 3:f56c36ea8266 | 204 | if (pinNameString == "LED1") return LED1; |
ohneta | 3:f56c36ea8266 | 205 | if (pinNameString == "LED2") return LED2; |
ohneta | 3:f56c36ea8266 | 206 | if (pinNameString == "LED3") return LED3; |
ohneta | 3:f56c36ea8266 | 207 | if (pinNameString == "LED4") return LED4; |
ohneta | 3:f56c36ea8266 | 208 | |
ohneta | 3:f56c36ea8266 | 209 | if (pinNameString == "USBTX") return USBTX; |
ohneta | 3:f56c36ea8266 | 210 | if (pinNameString == "USBRX") return USBRX; |
ohneta | 3:f56c36ea8266 | 211 | |
ohneta | 3:f56c36ea8266 | 212 | return NC; |
va009039 | 9:f80cf055f03d | 213 | #else |
va009039 | 9:f80cf055f03d | 214 | int imin = 0; |
va009039 | 9:f80cf055f03d | 215 | int imax = sizeof(pinname_table) / sizeof(pinNameStr) - 1; |
va009039 | 9:f80cf055f03d | 216 | while(imax >= imin) { |
va009039 | 9:f80cf055f03d | 217 | int i = (imin + imax) / 2; |
va009039 | 9:f80cf055f03d | 218 | int c = strcmp(pinNameString.c_str(), pinname_table[i].name); |
va009039 | 9:f80cf055f03d | 219 | if (c == 0) { |
va009039 | 9:f80cf055f03d | 220 | return pinname_table[i].pin; |
va009039 | 9:f80cf055f03d | 221 | } else if (c > 0) { |
va009039 | 9:f80cf055f03d | 222 | imin = i + 1; |
va009039 | 9:f80cf055f03d | 223 | } else { |
va009039 | 9:f80cf055f03d | 224 | imax = i - 1; |
va009039 | 9:f80cf055f03d | 225 | } |
va009039 | 9:f80cf055f03d | 226 | } |
va009039 | 9:f80cf055f03d | 227 | return NC; |
va009039 | 9:f80cf055f03d | 228 | #endif |
ohneta | 3:f56c36ea8266 | 229 | } |
ohneta | 3:f56c36ea8266 | 230 | |
ohneta | 6:30b4122b0ee2 | 231 | //--------------------------------------------- |
ohneta | 6:30b4122b0ee2 | 232 | Timer _mbedTimer; |
ohneta | 6:30b4122b0ee2 | 233 | |
ohneta | 6:30b4122b0ee2 | 234 | void mbedTimerStart(CScriptVar *c, void *) { |
ohneta | 6:30b4122b0ee2 | 235 | _mbedTimer.start(); |
ohneta | 6:30b4122b0ee2 | 236 | } |
ohneta | 6:30b4122b0ee2 | 237 | |
ohneta | 6:30b4122b0ee2 | 238 | void mbedTimerStop(CScriptVar *c, void *) { |
ohneta | 6:30b4122b0ee2 | 239 | _mbedTimer.stop(); |
ohneta | 6:30b4122b0ee2 | 240 | } |
ohneta | 6:30b4122b0ee2 | 241 | |
ohneta | 6:30b4122b0ee2 | 242 | void mbedTimerReset(CScriptVar *c, void *) { |
ohneta | 6:30b4122b0ee2 | 243 | _mbedTimer.reset(); |
ohneta | 6:30b4122b0ee2 | 244 | } |
ohneta | 3:f56c36ea8266 | 245 | |
ohneta | 6:30b4122b0ee2 | 246 | void mbedTimerRead(CScriptVar *c, void *) { |
ohneta | 6:30b4122b0ee2 | 247 | float tm = _mbedTimer.read(); |
ohneta | 6:30b4122b0ee2 | 248 | c->getReturnVar()->setDouble(tm); |
ohneta | 6:30b4122b0ee2 | 249 | } |
ohneta | 6:30b4122b0ee2 | 250 | |
ohneta | 6:30b4122b0ee2 | 251 | |
ohneta | 6:30b4122b0ee2 | 252 | //--------------------------------------------- |
ohneta | 6:30b4122b0ee2 | 253 | Timeout _mbedTimeout; |
ohneta | 6:30b4122b0ee2 | 254 | CTinyJS *_mbedTimeout_tinyJS; |
ohneta | 6:30b4122b0ee2 | 255 | string _mbedTimeout_callbackStrings; |
ohneta | 3:f56c36ea8266 | 256 | |
ohneta | 6:30b4122b0ee2 | 257 | void _mbedTimeoutVector() { |
ohneta | 6:30b4122b0ee2 | 258 | _mbedTimeout_tinyJS->execute(_mbedTimeout_callbackStrings); |
ohneta | 6:30b4122b0ee2 | 259 | } |
ohneta | 6:30b4122b0ee2 | 260 | |
ohneta | 6:30b4122b0ee2 | 261 | void mbedTimeout(CScriptVar *c, void *data) { |
ohneta | 6:30b4122b0ee2 | 262 | |
ohneta | 6:30b4122b0ee2 | 263 | _mbedTimeout_tinyJS = (CTinyJS *)data; |
ohneta | 6:30b4122b0ee2 | 264 | _mbedTimeout_callbackStrings = c->getParameter("callback")->getString(); |
ohneta | 6:30b4122b0ee2 | 265 | float t = c->getParameter("t")->getDouble(); |
ohneta | 6:30b4122b0ee2 | 266 | |
ohneta | 6:30b4122b0ee2 | 267 | _mbedTimeout.attach(&_mbedTimeoutVector, t); |
ohneta | 3:f56c36ea8266 | 268 | } |
ohneta | 3:f56c36ea8266 | 269 | |
ohneta | 3:f56c36ea8266 | 270 | |
ohneta | 3:f56c36ea8266 | 271 | //--------------------------------------------- |
ohneta | 3:f56c36ea8266 | 272 | // ----------------------------------------------- Register Functions |
ohneta | 3:f56c36ea8266 | 273 | void registerMbedFunctions(CTinyJS *tinyJS) { |
ohneta | 3:f56c36ea8266 | 274 | tinyJS->addNative("function mbed.DigitalIn(pinName, mode)", mbedDigitalIn, 0); |
ohneta | 3:f56c36ea8266 | 275 | tinyJS->addNative("function mbed.DigitalOut(pinName, val)", mbedDigitalOut, 0); |
ohneta | 3:f56c36ea8266 | 276 | |
ohneta | 3:f56c36ea8266 | 277 | tinyJS->addNative("function mbed.AnalogIn(pinName)", mbedAnalogIn, 0); |
ohneta | 3:f56c36ea8266 | 278 | tinyJS->addNative("function mbed.AnalogOut(pinName, val)", mbedAnalogOut, 0); |
ohneta | 3:f56c36ea8266 | 279 | |
ohneta | 8:819934a27c2d | 280 | tinyJS->addNative("function mbed.InterruptIn(pinName, edge, mode, callback)", mbedInterruptIn, tinyJS); |
ohneta | 6:30b4122b0ee2 | 281 | tinyJS->addNative("function mbed.wait(s)", mbedWait, 0); |
ohneta | 8:819934a27c2d | 282 | tinyJS->addNative("function mbed.TimerStart", mbedTimerStart, 0); |
ohneta | 8:819934a27c2d | 283 | tinyJS->addNative("function mbed.TimerStop", mbedTimerStop, 0); |
ohneta | 8:819934a27c2d | 284 | tinyJS->addNative("function mbed.TimerReset", mbedTimerReset, 0); |
ohneta | 8:819934a27c2d | 285 | tinyJS->addNative("function mbed.TimerRead", mbedTimerRead, 0); |
ohneta | 6:30b4122b0ee2 | 286 | tinyJS->addNative("function mbed.Timeout(callback, t)", mbedTimeout, tinyJS); |
ohneta | 6:30b4122b0ee2 | 287 | |
ohneta | 3:f56c36ea8266 | 288 | tinyJS->addNative("function mbed.memfree()", mbedMemfree, 0); |
ohneta | 3:f56c36ea8266 | 289 | } |
ohneta | 3:f56c36ea8266 | 290 | |
ohneta | 3:f56c36ea8266 | 291 |