Jonathan Jones
/
Radios
Radio Structures in OOP
utils/RTOS_Management/MailHelper.h@3:dc7e9c6bc26c, 2015-01-03 (annotated)
- Committer:
- jjones646
- Date:
- Sat Jan 03 04:35:32 2015 +0000
- Revision:
- 3:dc7e9c6bc26c
updating with threaded tasks for communication classes
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jjones646 | 3:dc7e9c6bc26c | 1 | #ifndef MAIL_HELPER_H |
jjones646 | 3:dc7e9c6bc26c | 2 | #define MAIL_HELPER_H |
jjones646 | 3:dc7e9c6bc26c | 3 | |
jjones646 | 3:dc7e9c6bc26c | 4 | #include "mbed.h" |
jjones646 | 3:dc7e9c6bc26c | 5 | #include "cmsis.h" |
jjones646 | 3:dc7e9c6bc26c | 6 | |
jjones646 | 3:dc7e9c6bc26c | 7 | template<class T, unsigned int size> |
jjones646 | 3:dc7e9c6bc26c | 8 | class MailHelper |
jjones646 | 3:dc7e9c6bc26c | 9 | { |
jjones646 | 3:dc7e9c6bc26c | 10 | public: |
jjones646 | 3:dc7e9c6bc26c | 11 | MailHelper() { |
jjones646 | 3:dc7e9c6bc26c | 12 | #ifdef CMSIS_OS_RTX |
jjones646 | 3:dc7e9c6bc26c | 13 | memset(_q, 0, sizeof(_q)); |
jjones646 | 3:dc7e9c6bc26c | 14 | _ptr[0] = _q; |
jjones646 | 3:dc7e9c6bc26c | 15 | |
jjones646 | 3:dc7e9c6bc26c | 16 | memset(_m, 0, sizeof(_m)); |
jjones646 | 3:dc7e9c6bc26c | 17 | _ptr[1] = _m; |
jjones646 | 3:dc7e9c6bc26c | 18 | |
jjones646 | 3:dc7e9c6bc26c | 19 | _def.pool = _ptr; |
jjones646 | 3:dc7e9c6bc26c | 20 | _def.item_sz = sizeof(T); |
jjones646 | 3:dc7e9c6bc26c | 21 | _def.queue_sz = size; |
jjones646 | 3:dc7e9c6bc26c | 22 | #endif |
jjones646 | 3:dc7e9c6bc26c | 23 | }; |
jjones646 | 3:dc7e9c6bc26c | 24 | |
jjones646 | 3:dc7e9c6bc26c | 25 | osMailQDef_t* def(void) { return &_def; } |
jjones646 | 3:dc7e9c6bc26c | 26 | |
jjones646 | 3:dc7e9c6bc26c | 27 | private: |
jjones646 | 3:dc7e9c6bc26c | 28 | osMailQDef_t _def; |
jjones646 | 3:dc7e9c6bc26c | 29 | |
jjones646 | 3:dc7e9c6bc26c | 30 | #ifdef CMSIS_OS_RTX |
jjones646 | 3:dc7e9c6bc26c | 31 | uint32_t _q[4+size]; |
jjones646 | 3:dc7e9c6bc26c | 32 | uint32_t _m[3+((sizeof(T)+3)/4)*size]; |
jjones646 | 3:dc7e9c6bc26c | 33 | void* _ptr[2]; |
jjones646 | 3:dc7e9c6bc26c | 34 | #endif |
jjones646 | 3:dc7e9c6bc26c | 35 | }; |
jjones646 | 3:dc7e9c6bc26c | 36 | |
jjones646 | 3:dc7e9c6bc26c | 37 | #endif // MAIL_HELPER_H |