Commit 4d9147bd1bced5ce2254e258946557ca9098b9e0
1 parent
737f88e5
--no commit message
Showing
9 changed files
with
1196 additions
and
0 deletions
DUREX/Em/DUREX-STUBS.c
0 → 100644
1 | +/**** DO NOT EDIT -- this file has been automatically generated from @emmoco.com.DUREX on 2014-05-14T16:44:10T ****/ | |
2 | +/**** protocolLevel = 13, toolsVersion = 13.4.1.201311121909 ****/ | |
3 | + | |
4 | +#include "DUREX.h" | |
5 | + | |
6 | +#ifdef DUREX_STUBS_ /* enables optional inclusion of application stubs */ | |
7 | + | |
8 | +/* Copy the function skeletons below into your own application source file */ | |
9 | + | |
10 | +void DUREX_connectHandler(void) { | |
11 | + /* TODO: application is now connected */ | |
12 | +} | |
13 | + | |
14 | +void DUREX_disconnectHandler(void) { | |
15 | + /* TODO: application is now disconnected */ | |
16 | +} | |
17 | + | |
18 | +void DUREX_numBytes_fetch(DUREX_numBytes_t* output) { | |
19 | + /* TODO: read resource 'numBytes' into 'output' */ | |
20 | +} | |
21 | + | |
22 | +void DUREX_numBytes_store(DUREX_numBytes_t* input) { | |
23 | + /* TODO: write resource 'numBytes' from 'input' */ | |
24 | +} | |
25 | + | |
26 | +void DUREX_data_fetch(DUREX_data_t output) { | |
27 | + /* TODO: read resource 'data' into 'output' */ | |
28 | +} | |
29 | + | |
30 | +void DUREX_data_store(DUREX_data_t input) { | |
31 | + /* TODO: write resource 'data' from 'input' */ | |
32 | +} | |
33 | + | |
34 | +void DUREX_numPackets_fetch(DUREX_numPackets_t* output) { | |
35 | + /* TODO: read resource 'numPackets' into 'output' */ | |
36 | +} | |
37 | + | |
38 | +void DUREX_numPackets_store(DUREX_numPackets_t* input) { | |
39 | + /* TODO: write resource 'numPackets' from 'input' */ | |
40 | +} | |
41 | + | |
42 | +void DUREX_messageAvailable_fetch(DUREX_messageAvailable_t* output) { | |
43 | + /* TODO: read resource 'messageAvailable' into 'output' */ | |
44 | +} | |
45 | + | |
46 | +#endif /* application stubs */ | ... | ... |
DUREX/Em/DUREX.c
0 → 100644
1 | +/**** DO NOT EDIT -- this file has been automatically generated from @emmoco.com.DUREX on 2014-05-14T16:44:10T ****/ | |
2 | +/**** protocolLevel = 13, toolsVersion = 13.4.1.201311121909 ****/ | |
3 | + | |
4 | +#include "Em_Message.h" | |
5 | +#include "DUREX.h" | |
6 | + | |
7 | +#ifdef __cplusplus | |
8 | +extern "C" { | |
9 | +#endif | |
10 | + | |
11 | +#define Em_Message_protocolLevel 13 | |
12 | + | |
13 | +typedef struct Em_App_Message { | |
14 | + uint8_t dummy[3]; | |
15 | + uint8_t sot; | |
16 | + Em_Message_Header hdr; | |
17 | + uint8_t data[229]; | |
18 | +} Em_App_Message; | |
19 | + | |
20 | +const uint8_t Em_App_hash[] = {28, 106, 83, 11, 248, 159, 192, 243, 66, 193, 233, 148, 55, 208, 191, 77, 13, 0, ((sizeof(struct{uint8_t f1; uint16_t f2;}) - sizeof(uint16_t)) << 4) | (sizeof(struct{uint8_t f1; uint32_t f2;}) - sizeof(uint32_t))}; | |
21 | + | |
22 | +const uint8_t Em_App_build[] = {208, 202, 48, 251, 69, 1, 0, 0}; | |
23 | + | |
24 | +#define Em_App_APP_RESOURCE_COUNT 4 | |
25 | +#define Em_App_SYS_RESOURCE_COUNT 9 | |
26 | + | |
27 | +#define Em_App_ACCEPT DUREX_accept | |
28 | +#define Em_App_ACTIVATEPARAMETERS DUREX_activateParameters | |
29 | +#define Em_App_BROADCASTOFF DUREX_broadcastOff | |
30 | +#define Em_App_DISCONNECT DUREX_disconnect | |
31 | +#define Em_App_PAIRINGON DUREX_pairingOn | |
32 | +#define Em_App_PAIRINGOFF DUREX_pairingOff | |
33 | +#define Em_App_RESET DUREX_reset | |
34 | +#define Em_App_SETDEVICENAME DUREX_setDeviceName | |
35 | +#define Em_App_START DUREX_start | |
36 | + | |
37 | +#define Em_App_CONNECTHANDLER DUREX_connectHandler | |
38 | +#define Em_App_DISCONNECTHANDLER DUREX_disconnectHandler | |
39 | + | |
40 | +#define Em_App_MAX_INDICATOR 2 | |
41 | + | |
42 | +/* BEGIN common code */ | |
43 | + | |
44 | +enum {Em_App_IDLE, Em_App_STARTING, Em_App_DISCONNECTED, Em_App_CONNECTED}; | |
45 | + | |
46 | +typedef struct Em_App_Indicator { | |
47 | + uint8_t dummy[3]; | |
48 | + uint8_t sot; | |
49 | + Em_Message_Header hdr; | |
50 | + uint8_t data[Em_Message_INDSIZE]; | |
51 | +} Em_App_Indicator; | |
52 | + | |
53 | +union { uint32_t align; Em_App_Message msg; } Em_App_msg_u; | |
54 | +union { uint32_t align; Em_App_Indicator ind; } Em_App_ind_u; | |
55 | +#define Em_App_msg Em_App_msg_u.msg | |
56 | +#define Em_App_ind Em_App_ind_u.ind | |
57 | + | |
58 | +void (*Em_App_pdHdlr)(void); | |
59 | + | |
60 | +const uint16_t Em_App_endian = 0x0100; | |
61 | + | |
62 | +Em_Message_Size Em_App_recvIdx; | |
63 | +Em_Message_Size Em_App_recvSize; | |
64 | +Em_Message_Size Em_App_xmitIdx; | |
65 | +Em_Message_Size Em_App_xmitSize; | |
66 | + | |
67 | +uint8_t Em_App_state = Em_App_IDLE; | |
68 | +int32_t Em_App_fileIndex = 0; | |
69 | +uint32_t Em_App_xmitMask = 0; | |
70 | + | |
71 | +uint8_t* Em_App_valp; | |
72 | +uint8_t* Em_App_bufp; | |
73 | +const char* Em_App_desc; | |
74 | + | |
75 | +uint8_t* Em_App_inBuf = (uint8_t*)&Em_App_msg.hdr; | |
76 | +uint8_t* Em_App_outBuf = 0; | |
77 | + | |
78 | +uint8_t* _Em_Message_rxBuf = 0; | |
79 | +uint8_t _Em_Message_rxCnt = 0; | |
80 | + | |
81 | +uint8_t* _Em_Message_txBuf = 0; | |
82 | +uint8_t _Em_Message_txCnt = 0; | |
83 | + | |
84 | +#define Em_App_DEVNAME_LEN 9 | |
85 | +const char* Em_App_devName = 0; | |
86 | + | |
87 | +void Em_App_fetchDispatch(void); | |
88 | +void Em_Message_marshallToBuf(uint8_t* valp, uint8_t* bufp, const char* desc); | |
89 | +void Em_Message_marshallToVal(uint8_t* valp, uint8_t* bufp, const char* desc); | |
90 | +void Em_App_storeDispatch(void); | |
91 | +void Em_App_sendIndicator(Em_Message_ResId indId); | |
92 | +void Em_App_sendResponse(Em_Message_Kind kind, Em_Message_Size size); | |
93 | +void Em_App_startIndSend(void); | |
94 | +void Em_App_startResSend(void); | |
95 | +void Em_App_sysFetchDispatch(void); | |
96 | +void Em_App_sysStoreDispatch(void); | |
97 | +bool Em_App_xmitReady(Em_Message_ResId indId); | |
98 | + | |
99 | +void Em_Message_nextXmit(void) { | |
100 | + uint8_t key = Em_Hal_lock(); | |
101 | + if (Em_App_xmitMask != 0) { | |
102 | + uint8_t i; | |
103 | + uint32_t m; | |
104 | + for (i = 0, m = 0x1; i < Em_App_MAX_INDICATOR; i++, m <<= 1) { | |
105 | + if (Em_App_xmitMask & m) { | |
106 | + Em_App_xmitMask &= ~m; | |
107 | + if (i == 0) { | |
108 | + Em_App_startResSend(); | |
109 | + } | |
110 | + else { | |
111 | + Em_App_sendIndicator(i - 1); | |
112 | + } | |
113 | + break; | |
114 | + } | |
115 | + } | |
116 | + } | |
117 | + Em_Hal_unlock(key); | |
118 | +} | |
119 | + | |
120 | +void Em_Message_restart(void) { | |
121 | + Em_App_START(); | |
122 | +} | |
123 | + | |
124 | +void Em_App_ACCEPT(bool enable) { | |
125 | + if (Em_App_state == Em_App_CONNECTED) { | |
126 | + return; | |
127 | + } | |
128 | + Em_App_ind.sot = 0; | |
129 | + Em_App_ind.hdr.kind = Em_Message_ACCEPT; | |
130 | + Em_App_ind.hdr.size = sizeof (Em_Message_Header); | |
131 | + Em_App_ind.hdr.resId = enable; | |
132 | + Em_App_startIndSend(); | |
133 | +} | |
134 | + | |
135 | +void Em_App_ACTIVATEPARAMETERS(uint8_t group) { | |
136 | + if (Em_App_state == Em_App_IDLE || Em_App_state == Em_App_STARTING) { | |
137 | + return; | |
138 | + } | |
139 | + Em_App_ind.sot = 0; | |
140 | + Em_App_ind.hdr.kind = Em_Message_ACTIVE_PARAMS; | |
141 | + Em_App_ind.hdr.size = sizeof (Em_Message_Header); | |
142 | + Em_App_ind.hdr.resId = group; | |
143 | + Em_App_startIndSend(); | |
144 | +} | |
145 | + | |
146 | +void Em_App_BROADCASTOFF(void) { | |
147 | + Em_App_ind.sot = 0; | |
148 | + Em_App_ind.hdr.kind = Em_Message_INDICATOR; | |
149 | + Em_App_ind.hdr.size = sizeof (Em_Message_Header); | |
150 | + Em_App_ind.hdr.resId = 0; | |
151 | + Em_App_startIndSend(); | |
152 | +} | |
153 | + | |
154 | +void Em_App_DISCONNECT(void) { | |
155 | + if (Em_App_state != Em_App_CONNECTED) { | |
156 | + return; | |
157 | + } | |
158 | + Em_App_state = Em_App_DISCONNECTED; | |
159 | + Em_App_ind.sot = 0; | |
160 | + Em_App_ind.hdr.kind = Em_Message_DISCONNECT; | |
161 | + Em_App_ind.hdr.size = sizeof (Em_Message_Header); | |
162 | + Em_App_ind.hdr.resId = 0; | |
163 | + Em_App_startIndSend(); | |
164 | +} | |
165 | + | |
166 | +void Em_Message_dispatch(void) { | |
167 | + if (Em_App_state == Em_App_IDLE) { | |
168 | + return; | |
169 | + } | |
170 | + switch (Em_App_msg.hdr.kind) { | |
171 | + case Em_Message_CONNECT: | |
172 | + Em_App_state = Em_App_CONNECTED; | |
173 | + Em_App_CONNECTHANDLER(); | |
174 | + break; | |
175 | + case Em_Message_DISCONNECT: | |
176 | + Em_App_state = Em_App_DISCONNECTED; | |
177 | + Em_App_DISCONNECTHANDLER(); | |
178 | + break; | |
179 | + case Em_Message_PAIRING_DONE: | |
180 | + if (Em_App_pdHdlr) { | |
181 | + (*Em_App_pdHdlr)(); | |
182 | + } | |
183 | + break; | |
184 | + case Em_Message_FETCH: | |
185 | + if (Em_App_msg.hdr.resId < 0x80) { | |
186 | + Em_App_fetchDispatch(); | |
187 | + } | |
188 | + else { | |
189 | + Em_App_sysFetchDispatch(); | |
190 | + } | |
191 | + break; | |
192 | + case Em_Message_STORE: | |
193 | + if (Em_App_msg.hdr.resId < 0x80) { | |
194 | + Em_App_storeDispatch(); | |
195 | + } | |
196 | + else { | |
197 | + Em_App_sysStoreDispatch(); | |
198 | + } | |
199 | + break; | |
200 | + } | |
201 | +} | |
202 | + | |
203 | +void Em_App_marshallToBuf() { | |
204 | + char ch; | |
205 | + while ((ch = *Em_App_desc++)) { | |
206 | + switch (ch) { | |
207 | + case '0' : { | |
208 | + *Em_App_bufp++ = 0; | |
209 | + break; | |
210 | + } | |
211 | + case '1' : { | |
212 | + *Em_App_bufp++ = *Em_App_valp & 0xFF; | |
213 | + break; | |
214 | + } | |
215 | + case '2' : { | |
216 | + uint16_t v16 = *(uint16_t*)Em_App_valp; | |
217 | + *Em_App_bufp++ = v16 & 0xFF; | |
218 | + *Em_App_bufp++ = (v16 >> 8) & 0xFF; | |
219 | + break; | |
220 | + } | |
221 | + case '4' : { | |
222 | + if (((uint32_t)Em_App_valp & 0x1)) Em_App_valp++; | |
223 | + uint32_t v32 = *(uint32_t*)Em_App_valp++; | |
224 | + *Em_App_bufp++ = v32 & 0xFF; | |
225 | + *Em_App_bufp++ = (v32 >> 8) & 0xFF; | |
226 | + *Em_App_bufp++ = (v32 >> 16) & 0xFF; | |
227 | + *Em_App_bufp++ = (v32 >> 24) & 0xFF; | |
228 | + break; | |
229 | + } | |
230 | + } | |
231 | + Em_App_valp += 1; | |
232 | + } | |
233 | +} | |
234 | + | |
235 | +void Em_App_marshallToVal() { | |
236 | + char ch; | |
237 | + while ((ch = *Em_App_desc++)) { | |
238 | + switch (ch) { | |
239 | + case '0' : { | |
240 | + *Em_App_valp = 0; | |
241 | + Em_App_bufp += 1; | |
242 | + break; | |
243 | + } | |
244 | + case '1' : { | |
245 | + *Em_App_valp = *Em_App_bufp++ & 0xFF; | |
246 | + break; | |
247 | + } | |
248 | + case '2' : { | |
249 | + uint16_t v16 = *Em_App_bufp++ & 0xFF; | |
250 | + v16 |= (*Em_App_bufp++ << 8); | |
251 | + *(uint16_t*)Em_App_valp = v16; | |
252 | + break; | |
253 | + } | |
254 | + case '4' : { | |
255 | + if (((uint32_t)Em_App_valp & 0x1)) Em_App_valp++; | |
256 | + uint32_t v32 = (uint32_t)*Em_App_bufp++ & 0xFF; | |
257 | + v32 |= ((uint32_t)*Em_App_bufp++ << 8); | |
258 | + v32 |= ((uint32_t)*Em_App_bufp++ << 16); | |
259 | + v32 |= ((uint32_t)*Em_App_bufp++ << 24); | |
260 | + *(uint32_t*)Em_App_valp++ = v32; | |
261 | + break; | |
262 | + } | |
263 | + } | |
264 | + Em_App_valp += 1; | |
265 | + } | |
266 | +} | |
267 | + | |
268 | +void Em_App_PAIRINGOFF(void(*handler)(void)) { | |
269 | + Em_App_PAIRINGON(0, handler); | |
270 | +} | |
271 | + | |
272 | +void Em_App_PAIRINGON(uint8_t secs, void(*handler)(void)) { | |
273 | + if (Em_App_state != Em_App_DISCONNECTED) { | |
274 | + return; | |
275 | + } | |
276 | + Em_App_pdHdlr = handler; | |
277 | + Em_App_ind.sot = 0; | |
278 | + Em_App_ind.hdr.kind = Em_Message_PAIRING; | |
279 | + Em_App_ind.hdr.size = sizeof (Em_Message_Header); | |
280 | + Em_App_ind.hdr.resId = secs; | |
281 | + Em_App_startIndSend(); | |
282 | +} | |
283 | + | |
284 | +void Em_App_RESET(void) { | |
285 | + Em_Hal_reset(); | |
286 | + _Em_Message_rxBuf = _Em_Message_txBuf = 0; | |
287 | + _Em_Message_rxCnt = _Em_Message_txCnt = 0; | |
288 | + Em_App_recvIdx = Em_App_recvSize = Em_App_xmitIdx = Em_App_xmitSize = 0; | |
289 | + Em_App_state = Em_App_IDLE; | |
290 | + Em_App_fileIndex = 0; | |
291 | + Em_App_xmitMask = 0; | |
292 | +} | |
293 | + | |
294 | +void Em_App_SETDEVICENAME(const char* name) { | |
295 | + Em_App_devName = name; | |
296 | +} | |
297 | + | |
298 | +void Em_App_START(void) { | |
299 | + Em_App_RESET(); | |
300 | + Em_App_state = Em_App_STARTING; | |
301 | +} | |
302 | + | |
303 | +void Em_App_sendResponse(Em_Message_Kind kind, Em_Message_Size size) { | |
304 | + if (Em_App_state != Em_App_IDLE) { | |
305 | + Em_App_msg.sot = 0; | |
306 | + Em_App_msg.hdr.kind = kind; | |
307 | + Em_App_msg.hdr.size = size + sizeof (Em_Message_Header); | |
308 | + if (Em_App_xmitReady(0)) { | |
309 | + Em_App_startResSend(); | |
310 | + } | |
311 | + } | |
312 | +} | |
313 | + | |
314 | +void Em_App_startIndSend(void) { | |
315 | + Em_App_outBuf = (uint8_t*)&Em_App_ind.sot; | |
316 | + Em_App_xmitSize = Em_App_ind.hdr.size + 1; | |
317 | + Em_App_xmitIdx = 0; | |
318 | + Em_Hal_startSend(); | |
319 | +} | |
320 | + | |
321 | +void Em_App_startResSend(void) { | |
322 | + Em_App_outBuf = (uint8_t*)&Em_App_msg.sot; | |
323 | + Em_App_xmitSize = Em_App_msg.hdr.size + 1; | |
324 | + Em_App_xmitIdx = 0; | |
325 | + Em_Hal_startSend(); | |
326 | +} | |
327 | + | |
328 | +void Em_App_sysFetchDispatch(void) { | |
329 | + uint8_t size = 0; | |
330 | + int i, j; | |
331 | + switch (Em_App_msg.hdr.resId) { | |
332 | + case Em_Message_SYS_SCHEMA_HASH: | |
333 | + for (i = 0; i < sizeof (Em_App_hash); i++) { | |
334 | + Em_App_msg.data[i] = Em_App_hash[i]; | |
335 | + } | |
336 | + Em_App_msg.data[sizeof (Em_App_hash)] = *((uint8_t*)&Em_App_endian); | |
337 | + size = sizeof (Em_App_hash) + 1; | |
338 | + break; | |
339 | + case Em_Message_SYS_MCM_NAME: | |
340 | + if (Em_App_devName) { | |
341 | + for (i = 0; i < Em_App_DEVNAME_LEN; i++) { | |
342 | + if ((Em_App_msg.data[i] = Em_App_devName[i]) == 0) { | |
343 | + break; | |
344 | + } | |
345 | + } | |
346 | + for (j = i; j < Em_App_DEVNAME_LEN; j++) { | |
347 | + Em_App_msg.data[j] = 0; | |
348 | + } | |
349 | + size = Em_App_DEVNAME_LEN; | |
350 | + } | |
351 | + break; | |
352 | + case Em_Message_SYS_EAP_PROTOCOL_LEVEL: | |
353 | + *((Em_Message_protocolLevel_t*)Em_App_msg.data) = Em_Message_protocolLevel; | |
354 | + size = sizeof (Em_Message_protocolLevel_t); | |
355 | + break; | |
356 | + case Em_Message_SYS_EAP_BUILD_DATE: | |
357 | + for (i = 0; i < sizeof (Em_App_build); i++) { | |
358 | + Em_App_msg.data[i] = Em_App_build[i]; | |
359 | + } | |
360 | + size = sizeof (Em_App_build); | |
361 | + break; | |
362 | + case Em_Message_SYS_RESOURCE_COUNT: | |
363 | + Em_App_msg.data[0] = Em_App_APP_RESOURCE_COUNT; | |
364 | + Em_App_msg.data[1] = Em_App_SYS_RESOURCE_COUNT; | |
365 | + size = 2; | |
366 | + break; | |
367 | + } | |
368 | + Em_App_sendResponse(Em_Message_FETCH_DONE, size); | |
369 | +} | |
370 | + | |
371 | +void Em_App_sysStoreDispatch(void) { | |
372 | + switch (Em_App_msg.hdr.resId) { | |
373 | + case Em_Message_SYS_FILE_INDEX_RESET: | |
374 | + Em_App_fileIndex = 0; | |
375 | + break; | |
376 | + } | |
377 | + Em_App_sendResponse(Em_Message_STORE_DONE, 0); | |
378 | +} | |
379 | + | |
380 | +bool Em_App_xmitReady(Em_Message_ResId indId) { | |
381 | + uint8_t key = Em_Hal_lock(); | |
382 | + bool res = _Em_Message_txBuf == 0 && Em_App_xmitMask == 0; | |
383 | + if (!res) { | |
384 | + Em_App_xmitMask |= (1 << indId); | |
385 | + } | |
386 | + Em_Hal_unlock(key); | |
387 | + return res; | |
388 | +} | |
389 | + | |
390 | +/* END common code */ | |
391 | + | |
392 | +void Em_App_fetchDispatch(void) { | |
393 | + uint8_t size = 0; | |
394 | + switch (Em_App_msg.hdr.resId) { | |
395 | + case 0: { | |
396 | + break; | |
397 | + } | |
398 | + case 1: { | |
399 | +#ifdef Em_16BIT | |
400 | + DUREX_numBytes_t val; | |
401 | + Em_App_valp = (uint8_t*)&val; | |
402 | + Em_App_bufp = Em_App_msg.data; | |
403 | + Em_App_desc = "1"; | |
404 | + DUREX_numBytes_fetch(&val); | |
405 | + Em_App_marshallToBuf(); | |
406 | +#else | |
407 | + DUREX_numBytes_fetch((void*)Em_App_msg.data); | |
408 | +#endif | |
409 | + size = 1; | |
410 | + break; | |
411 | + } | |
412 | + case 2: { | |
413 | +#ifdef Em_16BIT | |
414 | + DUREX_data_t val; | |
415 | + Em_App_valp = (uint8_t*)&val; | |
416 | + Em_App_bufp = Em_App_msg.data; | |
417 | + Em_App_desc = "*\xe5[1]"; | |
418 | + DUREX_data_fetch(&val); | |
419 | + Em_App_marshallToBuf(); | |
420 | +#else | |
421 | + DUREX_data_fetch((void*)Em_App_msg.data); | |
422 | +#endif | |
423 | + size = 229; | |
424 | + break; | |
425 | + } | |
426 | + case 3: { | |
427 | +#ifdef Em_16BIT | |
428 | + DUREX_numPackets_t val; | |
429 | + Em_App_valp = (uint8_t*)&val; | |
430 | + Em_App_bufp = Em_App_msg.data; | |
431 | + Em_App_desc = "1"; | |
432 | + DUREX_numPackets_fetch(&val); | |
433 | + Em_App_marshallToBuf(); | |
434 | +#else | |
435 | + DUREX_numPackets_fetch((void*)Em_App_msg.data); | |
436 | +#endif | |
437 | + size = 1; | |
438 | + break; | |
439 | + } | |
440 | + case 4: { | |
441 | +#ifdef Em_16BIT | |
442 | + DUREX_messageAvailable_t val; | |
443 | + Em_App_valp = (uint8_t*)&val; | |
444 | + Em_App_bufp = Em_App_msg.data; | |
445 | + Em_App_desc = "1"; | |
446 | + DUREX_messageAvailable_fetch(&val); | |
447 | + Em_App_marshallToBuf(); | |
448 | +#else | |
449 | + DUREX_messageAvailable_fetch((void*)Em_App_msg.data); | |
450 | +#endif | |
451 | + size = 1; | |
452 | + break; | |
453 | + } | |
454 | + } | |
455 | + Em_App_sendResponse(Em_Message_FETCH_DONE, size); | |
456 | +} | |
457 | + | |
458 | +void Em_App_storeDispatch(void) { | |
459 | + switch (Em_App_msg.hdr.resId) { | |
460 | + case 0: { | |
461 | + break; | |
462 | + } | |
463 | + case 1: { | |
464 | +#ifdef Em_16BIT | |
465 | + DUREX_numBytes_t val; | |
466 | + Em_App_valp = (uint8_t*)&val; | |
467 | + Em_App_bufp = Em_App_msg.data; | |
468 | + Em_App_desc = "1"; | |
469 | + Em_App_marshallToVal(); | |
470 | + DUREX_numBytes_store(&val); | |
471 | +#else | |
472 | + DUREX_numBytes_store((void*)Em_App_msg.data); | |
473 | +#endif | |
474 | + break; | |
475 | + } | |
476 | + case 2: { | |
477 | +#ifdef Em_16BIT | |
478 | + DUREX_data_t val; | |
479 | + Em_App_valp = (uint8_t*)&val; | |
480 | + Em_App_bufp = Em_App_msg.data; | |
481 | + Em_App_desc = "*\xe5[1]"; | |
482 | + Em_App_marshallToVal(); | |
483 | + DUREX_data_store(&val); | |
484 | +#else | |
485 | + DUREX_data_store((void*)Em_App_msg.data); | |
486 | +#endif | |
487 | + break; | |
488 | + } | |
489 | + case 3: { | |
490 | +#ifdef Em_16BIT | |
491 | + DUREX_numPackets_t val; | |
492 | + Em_App_valp = (uint8_t*)&val; | |
493 | + Em_App_bufp = Em_App_msg.data; | |
494 | + Em_App_desc = "1"; | |
495 | + Em_App_marshallToVal(); | |
496 | + DUREX_numPackets_store(&val); | |
497 | +#else | |
498 | + DUREX_numPackets_store((void*)Em_App_msg.data); | |
499 | +#endif | |
500 | + break; | |
501 | + } | |
502 | + } | |
503 | + Em_App_sendResponse(Em_Message_STORE_DONE, 0); | |
504 | +} | |
505 | + | |
506 | +void Em_App_sendIndicator(Em_Message_ResId indId) { | |
507 | + Em_Message_Size resId = 0; | |
508 | + Em_Message_Size size = 0; | |
509 | + switch (indId) { | |
510 | + case 1: { | |
511 | +#ifdef Em_16BIT | |
512 | + DUREX_messageAvailable_t val; | |
513 | + Em_App_valp = (uint8_t*)&val; | |
514 | + Em_App_bufp = Em_App_ind.data; | |
515 | + Em_App_desc = "1"; | |
516 | + DUREX_messageAvailable_fetch(&val); | |
517 | + Em_App_marshallToBuf(); | |
518 | +#else | |
519 | + DUREX_messageAvailable_fetch((DUREX_messageAvailable_t*)&Em_App_ind.data); | |
520 | +#endif | |
521 | + resId = 4; | |
522 | + size = 1; | |
523 | + break; | |
524 | + } | |
525 | + } | |
526 | + Em_App_ind.sot = 0; | |
527 | + Em_App_ind.hdr.kind = Em_Message_INDICATOR; | |
528 | + Em_App_ind.hdr.size = sizeof (Em_Message_Header) + size; | |
529 | + Em_App_ind.hdr.resId = resId; | |
530 | + Em_App_startIndSend(); | |
531 | +} | |
532 | + | |
533 | +void DUREX_messageAvailable_indicate(void) { | |
534 | + if (Em_App_state == Em_App_CONNECTED && Em_App_xmitReady(1 + 1)) Em_App_sendIndicator(1); | |
535 | +} | |
536 | + | |
537 | +#ifdef __cplusplus | |
538 | +} | |
539 | +#endif | |
540 | + | ... | ... |
DUREX/Em/DUREX.h
0 → 100644
1 | +/**** DO NOT EDIT -- this file has been automatically generated from @emmoco.com.DUREX on 2014-05-14T16:44:10T ****/ | |
2 | +/**** protocolLevel = 13, toolsVersion = 13.4.1.201311121909 ****/ | |
3 | + | |
4 | +#ifndef DUREX__H | |
5 | +#define DUREX__H | |
6 | + | |
7 | +#include "Em_Types.h" | |
8 | +#include "Em_Message.h" | |
9 | + | |
10 | +#ifdef __cplusplus | |
11 | +extern "C" { | |
12 | +#endif | |
13 | + | |
14 | +/* -------- connection callback functions implemented by the application -------- */ | |
15 | + | |
16 | +void DUREX_connectHandler(void); | |
17 | +void DUREX_disconnectHandler(void); | |
18 | + | |
19 | +/* -------- resource types defined in the schema -------- */ | |
20 | + | |
21 | +/* typedef String */ | |
22 | +typedef char DUREX_String[229]; | |
23 | +#define DUREX_String_length 229 | |
24 | + | |
25 | +/* enum BOOLEAN */ | |
26 | +typedef uint8_t DUREX_BOOLEAN; | |
27 | +#define DUREX_TRUE 0 | |
28 | +#define DUREX_FALSE 1 | |
29 | + | |
30 | +/* -------- resource callback functions implemented by the application -------- */ | |
31 | + | |
32 | +/* resource numBytes */ | |
33 | +typedef uint8_t DUREX_numBytes_t; | |
34 | +extern void DUREX_numBytes_fetch(DUREX_numBytes_t* output); | |
35 | +extern void DUREX_numBytes_store(DUREX_numBytes_t* input); | |
36 | + | |
37 | +/* resource data */ | |
38 | +typedef DUREX_String DUREX_data_t; | |
39 | +extern void DUREX_data_fetch(DUREX_data_t output); | |
40 | +extern void DUREX_data_store(DUREX_data_t input); | |
41 | + | |
42 | +/* resource numPackets */ | |
43 | +typedef uint8_t DUREX_numPackets_t; | |
44 | +extern void DUREX_numPackets_fetch(DUREX_numPackets_t* output); | |
45 | +extern void DUREX_numPackets_store(DUREX_numPackets_t* input); | |
46 | + | |
47 | +/* resource messageAvailable */ | |
48 | +typedef DUREX_BOOLEAN DUREX_messageAvailable_t; | |
49 | +extern void DUREX_messageAvailable_fetch(DUREX_messageAvailable_t* output); | |
50 | +extern void DUREX_messageAvailable_indicate(void); /* called by the application */ | |
51 | + | |
52 | +/* -------- application functions implemented in DUREX.c -------- */ | |
53 | + | |
54 | +void DUREX_accept(bool enable); | |
55 | +void DUREX_activateParameters(uint8_t group); | |
56 | +void DUREX_broadcastOff(void); | |
57 | +void DUREX_disconnect(void); | |
58 | +void DUREX_pairingOn(uint8_t secs, void(*handler)(void)); | |
59 | +void DUREX_pairingOff(void(*handler)(void)); | |
60 | +void DUREX_reset(void); | |
61 | +void DUREX_setDeviceName(const char* name); | |
62 | +void DUREX_start(void); | |
63 | + | |
64 | +#ifdef __cplusplus | |
65 | +} | |
66 | +#endif | |
67 | + | |
68 | +#endif /* DUREX__H */ | ... | ... |
DUREX/Em/Em_Message.h
0 → 100644
1 | +#ifndef Em_Message_H_ | |
2 | +#define Em_Message_H_ | |
3 | + | |
4 | +#include "Em_Types.h" | |
5 | + | |
6 | +#ifdef __cplusplus | |
7 | +extern "C" { | |
8 | +#endif | |
9 | + | |
10 | +/* -------- SRT FUNCTIONS CALLED BY HAL -------- */ | |
11 | + | |
12 | +static inline bool Em_Message_addByte(uint8_t b); | |
13 | +extern void Em_Message_dispatch(void); | |
14 | +static inline bool Em_Message_getByte(uint8_t* bp); | |
15 | +extern void Em_Message_restart(void); | |
16 | +static inline bool Em_Message_startRx(void); | |
17 | +static inline uint8_t Em_Message_startTx(void); | |
18 | + | |
19 | + | |
20 | +/* -------- HAL FUNCTIONS CALLED BY SRT -------- */ | |
21 | + | |
22 | +extern uint8_t Em_Hal_lock(void); | |
23 | +extern void Em_Hal_reset(void); | |
24 | +extern void Em_Hal_startSend(void); | |
25 | +extern void Em_Hal_unlock(uint8_t key); | |
26 | +extern void Em_Hal_watchOff(void); | |
27 | +extern void Em_Hal_watchOn(void); | |
28 | + | |
29 | + | |
30 | +/* -------- MESSAGE FORMAT -------- */ | |
31 | + | |
32 | +/* protocolLevel #4 */ | |
33 | +#define Em_Message_INDSIZE 4 | |
34 | + | |
35 | +typedef uint8_t Em_Message_Size; | |
36 | +typedef uint8_t Em_Message_Kind; | |
37 | +/* protocolLevel #12 -- split 16-bit resId into <resId, chan> */ | |
38 | +typedef uint8_t Em_Message_ResId; | |
39 | +typedef uint8_t Em_Message_Chan; | |
40 | + | |
41 | +#define Em_Message_NOP 0 | |
42 | +#define Em_Message_FETCH 1 | |
43 | +#define Em_Message_FETCH_DONE 2 | |
44 | +#define Em_Message_STORE 3 | |
45 | +#define Em_Message_STORE_DONE 4 | |
46 | +#define Em_Message_INDICATOR 5 | |
47 | +#define Em_Message_CONNECT 6 | |
48 | +#define Em_Message_DISCONNECT 7 | |
49 | +#define Em_Message_ECHO 8 | |
50 | +/* protocolLevel #3 */ | |
51 | +/* protocolLevel #6 -- rename from BROADCAST to PAIRING */ | |
52 | +#define Em_Message_PAIRING 9 | |
53 | +#define Em_Message_PAIRING_DONE 10 | |
54 | +/* protocolLevel #7 */ | |
55 | +#define Em_Message_OFFLINE 11 | |
56 | +/* protocolLevel #8 */ | |
57 | +#define Em_Message_ACCEPT 12 | |
58 | +/* protocolLevel #13 */ | |
59 | +#define Em_Message_START 13 | |
60 | +#define Em_Message_ACTIVE_PARAMS 14 | |
61 | + | |
62 | +typedef struct Em_Message_Header { | |
63 | + Em_Message_Size size; | |
64 | + Em_Message_Kind kind; | |
65 | + Em_Message_ResId resId; | |
66 | + Em_Message_Chan chan; | |
67 | +} Em_Message_Header; | |
68 | + | |
69 | +typedef uint16_t Em_Message_protocolLevel_t; | |
70 | + | |
71 | +/* protocolLevel #1 */ | |
72 | + | |
73 | +/* protocolLevel #10 */ | |
74 | +/* #define Em_Message_SYS_SCHEMA_UUID 0xFF */ | |
75 | + | |
76 | +#define Em_Message_SYS_MCM_PROTOCOL_LEVEL 0xFE | |
77 | +#define Em_Message_SYS_EAP_PROTOCOL_LEVEL 0xFD | |
78 | +#define Em_Message_SYS_EAP_BUILD_DATE 0xFC | |
79 | + | |
80 | +/* protocolLevel #2 */ | |
81 | +#define Em_Message_SYS_FILE_INDEX_RESET 0xFB | |
82 | + | |
83 | +/* protocolLevel #5 */ | |
84 | +#define Em_Message_SYS_SCHEMA_HASH 0xFA | |
85 | + | |
86 | +/* protocolLevel #7 */ | |
87 | +#define Em_Message_SYS_RESOURCE_COUNT 0xF9 | |
88 | + | |
89 | +/* protocolLevel #9 */ | |
90 | +#define Em_Message_SYS_MOBILE_RSSI 0xF8 | |
91 | + | |
92 | +/* protocolLevel #11 */ | |
93 | +#define Em_Message_SYS_MCM_DISCONNECT 0xF7 | |
94 | + | |
95 | +/* protocolLevel #13a */ | |
96 | +#define Em_Message_SYS_MCM_NAME 0xF5 | |
97 | + | |
98 | + | |
99 | +/* -------- PRIVATE -------- */ | |
100 | + | |
101 | +extern void Em_Message_nextXmit(void); | |
102 | + | |
103 | +extern uint8_t* Em_App_inBuf; | |
104 | +extern uint8_t* Em_App_outBuf; | |
105 | +extern Em_Message_Size Em_App_xmitSize; | |
106 | + | |
107 | +extern uint8_t* _Em_Message_rxBuf; | |
108 | +extern uint8_t _Em_Message_rxCnt; | |
109 | + | |
110 | +extern uint8_t* _Em_Message_txBuf; | |
111 | +extern uint8_t _Em_Message_txCnt; | |
112 | + | |
113 | +static inline bool Em_Message_addByte(uint8_t b) { | |
114 | + if (_Em_Message_rxCnt == 0) { | |
115 | + if (b == 0) { | |
116 | + return false; | |
117 | + } | |
118 | + _Em_Message_rxCnt = b; | |
119 | + } | |
120 | + *_Em_Message_rxBuf++ = b; | |
121 | + if (--_Em_Message_rxCnt == 0) { | |
122 | + _Em_Message_rxBuf = 0; | |
123 | + if (_Em_Message_txBuf == 0) { | |
124 | + Em_Hal_watchOff(); | |
125 | + } | |
126 | + return true; | |
127 | + } | |
128 | + else { | |
129 | + return false; | |
130 | + } | |
131 | +} | |
132 | + | |
133 | +static inline bool Em_Message_getByte(uint8_t* bp) { | |
134 | + if (_Em_Message_txBuf == 0) { | |
135 | + return false; | |
136 | + } | |
137 | + if (_Em_Message_txCnt == 0) { | |
138 | + _Em_Message_txCnt = *_Em_Message_txBuf + 1; | |
139 | + } | |
140 | + if (--_Em_Message_txCnt > 0) { | |
141 | + *bp = *_Em_Message_txBuf++; | |
142 | + return true; | |
143 | + } | |
144 | + else { | |
145 | + _Em_Message_txBuf = 0; | |
146 | + Em_App_xmitSize = 0; | |
147 | + Em_Message_nextXmit(); | |
148 | + if (_Em_Message_rxBuf == 0) { | |
149 | + Em_Hal_watchOff(); | |
150 | + } | |
151 | + return false; | |
152 | + } | |
153 | +} | |
154 | + | |
155 | +static inline bool Em_Message_startRx(void) { | |
156 | + if (_Em_Message_rxBuf == 0) { | |
157 | + _Em_Message_rxBuf = Em_App_inBuf; | |
158 | + if (_Em_Message_txBuf == 0) { | |
159 | + Em_Hal_watchOn(); | |
160 | + } | |
161 | + return true; | |
162 | + } | |
163 | + else { | |
164 | + return false; | |
165 | + } | |
166 | +} | |
167 | + | |
168 | +static inline uint8_t Em_Message_startTx(void) { | |
169 | + _Em_Message_txBuf = Em_App_outBuf + 1; | |
170 | + _Em_Message_txCnt = 0; | |
171 | + if (_Em_Message_rxBuf == 0) { | |
172 | + Em_Hal_watchOn(); | |
173 | + } | |
174 | + return 0; | |
175 | +} | |
176 | + | |
177 | + | |
178 | +#ifdef __cplusplus | |
179 | +} | |
180 | +#endif | |
181 | + | |
182 | +#endif /*Em_Message_H_*/ | ... | ... |
DUREX/Em/Em_Types.h
0 → 100644
1 | +#ifndef Em_Types_H_ | |
2 | +#define Em_Types_H_ | |
3 | + | |
4 | +#ifndef Em_NOSTDBOOL | |
5 | +#include <stdbool.h> | |
6 | +#endif | |
7 | + | |
8 | +#ifndef Em_NOSTDINT | |
9 | +#include <stdint.h> | |
10 | +#endif | |
11 | + | |
12 | +#ifdef Em_16BIT | |
13 | +typedef signed char int8_t; | |
14 | +typedef unsigned char uint8_t; | |
15 | +#endif | |
16 | + | |
17 | +#endif /*Em_Types_H_*/ | ... | ... |
DUREX/Em/durex.json
0 → 100644
1 | +{ | |
2 | + "resources": { | |
3 | + "$eapProtocolLevel": { | |
4 | + "id": -3, | |
5 | + "align": 2, | |
6 | + "attributes": {"readonly": true}, | |
7 | + "type": "u2", | |
8 | + "access": "r", | |
9 | + "size": 2 | |
10 | + }, | |
11 | + "numBytes": { | |
12 | + "id": 1, | |
13 | + "align": 1, | |
14 | + "attributes": {}, | |
15 | + "type": "u1", | |
16 | + "access": "rw", | |
17 | + "size": 1 | |
18 | + }, | |
19 | + "data": { | |
20 | + "id": 2, | |
21 | + "align": 1, | |
22 | + "attributes": {}, | |
23 | + "type": "C:229", | |
24 | + "access": "rw", | |
25 | + "size": 229 | |
26 | + }, | |
27 | + "$activeGroup": { | |
28 | + "id": -10, | |
29 | + "align": 1, | |
30 | + "pack": 1, | |
31 | + "attributes": {"readwrite": true}, | |
32 | + "type": "E:system@emmoco.com.System/ParameterGroup", | |
33 | + "access": "rw", | |
34 | + "size": 1 | |
35 | + }, | |
36 | + "$mcmDisconnect": { | |
37 | + "id": -9, | |
38 | + "align": 1, | |
39 | + "attributes": {"writeonly": true}, | |
40 | + "type": "u1", | |
41 | + "access": "w", | |
42 | + "size": 1 | |
43 | + }, | |
44 | + "$eapBuildDate": { | |
45 | + "dim": 8, | |
46 | + "id": -4, | |
47 | + "align": 1, | |
48 | + "attributes": {"readonly": true}, | |
49 | + "type": "A8:u1", | |
50 | + "access": "r", | |
51 | + "size": 8 | |
52 | + }, | |
53 | + "numPackets": { | |
54 | + "id": 3, | |
55 | + "align": 1, | |
56 | + "attributes": {}, | |
57 | + "type": "u1", | |
58 | + "access": "rw", | |
59 | + "size": 1 | |
60 | + }, | |
61 | + "$resourceCount": { | |
62 | + "id": -7, | |
63 | + "align": 1, | |
64 | + "attributes": {"readonly": true}, | |
65 | + "type": "S:system@emmoco.com.System/ResourceCount", | |
66 | + "access": "r", | |
67 | + "size": 2 | |
68 | + }, | |
69 | + "$schemaHash": { | |
70 | + "dim": 20, | |
71 | + "id": -6, | |
72 | + "align": 1, | |
73 | + "attributes": {"readonly": true}, | |
74 | + "type": "A20:u1", | |
75 | + "access": "r", | |
76 | + "size": 20 | |
77 | + }, | |
78 | + "messageAvailable": { | |
79 | + "id": 4, | |
80 | + "align": 1, | |
81 | + "pack": 1, | |
82 | + "attributes": {"indicator": true}, | |
83 | + "type": "E:@emmoco.com.DUREX/BOOLEAN", | |
84 | + "access": "ir", | |
85 | + "size": 1 | |
86 | + }, | |
87 | + "$mcmProtocolLevel": { | |
88 | + "id": -2, | |
89 | + "align": 2, | |
90 | + "attributes": {"readonly": true}, | |
91 | + "type": "u2", | |
92 | + "access": "r", | |
93 | + "size": 2 | |
94 | + }, | |
95 | + "$mobileRssi": { | |
96 | + "id": -8, | |
97 | + "align": 1, | |
98 | + "attributes": {"readonly": true}, | |
99 | + "type": "i1", | |
100 | + "access": "r", | |
101 | + "size": 1 | |
102 | + }, | |
103 | + "$fileIndexReset": { | |
104 | + "id": -5, | |
105 | + "align": 2, | |
106 | + "attributes": {"writeonly": true}, | |
107 | + "type": "i2", | |
108 | + "access": "w", | |
109 | + "size": 2 | |
110 | + } | |
111 | + }, | |
112 | + "resourceNamesSys": [ | |
113 | + "$activeGroup", | |
114 | + "$eapBuildDate", | |
115 | + "$eapProtocolLevel", | |
116 | + "$fileIndexReset", | |
117 | + "$mcmDisconnect", | |
118 | + "$mcmProtocolLevel", | |
119 | + "$mobileRssi", | |
120 | + "$resourceCount", | |
121 | + "$schemaHash" | |
122 | + ], | |
123 | + "manifest": { | |
124 | + "protocolLevel": 13, | |
125 | + "hash": [ | |
126 | + 28, | |
127 | + 106, | |
128 | + 83, | |
129 | + 11, | |
130 | + 248, | |
131 | + 159, | |
132 | + 192, | |
133 | + 243, | |
134 | + 66, | |
135 | + 193, | |
136 | + 233, | |
137 | + 148, | |
138 | + 55, | |
139 | + 208, | |
140 | + 191, | |
141 | + 77 | |
142 | + ], | |
143 | + "toolVersion": "13.4.1.201311121909", | |
144 | + "name": "DUREX", | |
145 | + "$$md5": "1c6a530bf89fc0f342c1e99437d0bf4d", | |
146 | + "build": [ | |
147 | + 208, | |
148 | + 202, | |
149 | + 48, | |
150 | + 251, | |
151 | + 69, | |
152 | + 1, | |
153 | + 0, | |
154 | + 0 | |
155 | + ], | |
156 | + "date": "2014-05-14T16:44:10T", | |
157 | + "maxAlign": 2, | |
158 | + "maxSize": 229, | |
159 | + "version": "1.0.0" | |
160 | + }, | |
161 | + "resourceNames": [ | |
162 | + "numBytes", | |
163 | + "data", | |
164 | + "numPackets", | |
165 | + "messageAvailable", | |
166 | + "$mcmProtocolLevel", | |
167 | + "$eapProtocolLevel", | |
168 | + "$eapBuildDate", | |
169 | + "$fileIndexReset", | |
170 | + "$schemaHash", | |
171 | + "$resourceCount", | |
172 | + "$mobileRssi", | |
173 | + "$mcmDisconnect", | |
174 | + "$activeGroup" | |
175 | + ], | |
176 | + "attributes": { | |
177 | + "description": "", | |
178 | + "version": "1.0.0" | |
179 | + }, | |
180 | + "resourceNamesApp": [ | |
181 | + "numBytes", | |
182 | + "data", | |
183 | + "numPackets", | |
184 | + "messageAvailable" | |
185 | + ], | |
186 | + "types": { | |
187 | + "system@emmoco.com.System/ResourceCount": { | |
188 | + "packed": false, | |
189 | + "align": 1, | |
190 | + "type": "S:system@emmoco.com.System/ResourceCount", | |
191 | + "size": 2, | |
192 | + "fields": [ | |
193 | + { | |
194 | + "pad": 0, | |
195 | + "align": 1, | |
196 | + "name": "app", | |
197 | + "type": "u1", | |
198 | + "size": 1 | |
199 | + }, | |
200 | + { | |
201 | + "pad": 0, | |
202 | + "align": 1, | |
203 | + "name": "sys", | |
204 | + "type": "u1", | |
205 | + "size": 1 | |
206 | + } | |
207 | + ] | |
208 | + }, | |
209 | + "std:i2": { | |
210 | + "align": 2, | |
211 | + "size": 2 | |
212 | + }, | |
213 | + "std:i1": { | |
214 | + "align": 1, | |
215 | + "size": 1 | |
216 | + }, | |
217 | + "std:u1": { | |
218 | + "align": 1, | |
219 | + "size": 1 | |
220 | + }, | |
221 | + "@emmoco.com.DUREX/BOOLEAN": { | |
222 | + "values": [ | |
223 | + "TRUE", | |
224 | + "FALSE" | |
225 | + ], | |
226 | + "align": 1, | |
227 | + "pack": 1, | |
228 | + "type": "E:@emmoco.com.DUREX/BOOLEAN", | |
229 | + "size": 1 | |
230 | + }, | |
231 | + "system@emmoco.com.System/ParameterGroup": { | |
232 | + "values": [ | |
233 | + "GROUP_A", | |
234 | + "GROUP_B" | |
235 | + ], | |
236 | + "align": 1, | |
237 | + "pack": 1, | |
238 | + "type": "E:system@emmoco.com.System/ParameterGroup", | |
239 | + "size": 1 | |
240 | + }, | |
241 | + "std:u2": { | |
242 | + "align": 2, | |
243 | + "size": 2 | |
244 | + } | |
245 | + }, | |
246 | + "imports": {"@emmoco.com.DUREX": true} | |
247 | +} | |
0 | 248 | \ No newline at end of file | ... | ... |
DUREX/Schema-Imports/system@emmoco.com/System.ems
0 → 100644
1 | +owner = "system@emmoco.com" | |
2 | + | |
3 | +schema System { | |
4 | + | |
5 | + // protocolLevel #13 | |
6 | + | |
7 | + enum ParameterGroup { | |
8 | + GROUP_A, GROUP_B | |
9 | + } | |
10 | + | |
11 | + // protocolLevel #1 | |
12 | + | |
13 | + uint8 $schemaUuid[16] { // protocolLevel #10 -- invisible to applications | |
14 | + readonly | |
15 | + } | |
16 | + | |
17 | + uint16 $mcmProtocolLevel { | |
18 | + readonly | |
19 | + } | |
20 | + | |
21 | + uint16 $eapProtocolLevel { | |
22 | + readonly | |
23 | + } | |
24 | + | |
25 | + uint8 $eapBuildDate[8] { // protocolLevel #5 -- rename from $eapBuildNumber | |
26 | + readonly | |
27 | + } | |
28 | + | |
29 | + // protocolLevel #2 | |
30 | + | |
31 | + int16 $fileIndexReset { | |
32 | + writeonly | |
33 | + } | |
34 | + | |
35 | + // protocolLevel #5 | |
36 | + | |
37 | + // protocolLevel #12 -- increase size to 20 | |
38 | + | |
39 | + uint8 $schemaHash[20] { | |
40 | + readonly | |
41 | + } | |
42 | + | |
43 | + // protocolLevel #7 | |
44 | + | |
45 | + struct ResourceCount { | |
46 | + uint8 app | |
47 | + uint8 sys | |
48 | + } | |
49 | + | |
50 | + ResourceCount $resourceCount { | |
51 | + readonly | |
52 | + } | |
53 | + | |
54 | + // protocolLevel #9 | |
55 | + | |
56 | + int8 $mobileRssi { | |
57 | + readonly | |
58 | + } | |
59 | + | |
60 | + // protocolLevel #11 | |
61 | + | |
62 | + uint8 $mcmDisconnect { | |
63 | + writeonly | |
64 | + } | |
65 | + | |
66 | + // protocolLevel #13 | |
67 | + | |
68 | + ParameterGroup $activeGroup { | |
69 | + readwrite | |
70 | + } | |
71 | + | |
72 | +} | ... | ... |
DUREXLaunchpad/.externalToolBuilders/DUREX LaunchPad Builder.launch
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
2 | +<launchConfiguration type="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType"> | |
3 | +<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/> | |
4 | +<mapAttribute key="org.eclipse.debug.core.environmentVariables"> | |
5 | +<mapEntry key="PATH" value="${eclipse_home}/emmoco/msptools/bin${system_property:path.separator}${env_var:PATH}"/> | |
6 | +</mapAttribute> | |
7 | +<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/> | |
8 | +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:<?xml version="1.0" encoding="UTF-8"?> <resources> <item path="/TesterLaunchPad/main.c" type="1"/> <item path="/TesterLaunchPad/main.out" type="1"/> <item path="/TesterLaunchPad/makefile" type="1"/> <item path="/TesterSchema/out/Tester.h" type="1"/> <item path="/TesterSchema/schema.ems" type="1"/> <item path="/CommonLaunchPad" type="4"/> </resources>}"/> | |
9 | +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${eclipse_home}/emmoco/msptools/bin/gmake${exe_ext}"/> | |
10 | +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,"/> | |
11 | +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="all COMMON=${project_loc:/CommonLaunchPad} SCHEMA=${project_loc:/DUREX}"/> | |
12 | +<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/> | |
13 | +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${project_loc}"/> | |
14 | +</launchConfiguration> | ... | ... |
DUREXLaunchpad/.externalToolBuilders/DUREX LaunchPad Cleaner.launch
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
2 | +<launchConfiguration type="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType"> | |
3 | +<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/> | |
4 | +<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/> | |
5 | +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${eclipse_home}/emmoco/msptools/bin/gmake${exe_ext}"/> | |
6 | +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="clean"/> | |
7 | +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="local-clean COMMON=${project_loc:/CommonLaunchPad}"/> | |
8 | +<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/> | |
9 | +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${project_loc}"/> | |
10 | +</launchConfiguration> | ... | ... |