Radio Structures in OOP

Dependencies:   mbed mbed-rtos

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?

UserRevisionLine numberNew 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