aconno acnsensa project for iOS devices with iBeacon packets support.
Dependencies: LSM9DS1 Si7006A20 aconno_SEGGER_RTT aconno_bsp adc52832_common
service_macros.h
- Committer:
- dbartolovic
- Date:
- 2018-08-17
- Branch:
- sensaformatfix
- Revision:
- 38:c90e1670ffb3
- Parent:
- 36:9e40cdef6bd6
File content as of revision 38:c90e1670ffb3:
/*
* Made by Dominik @ aconno
* All rights reserved
*
*/
#ifndef __SERVICE_MACROS_H__
#define __SERVICE_MACROS_H__
#define _SERVICE_INIT_T(serv_name) Init##serv_name
#define SERVICE_INIT_T(serv_name) _SERVICE_INIT_T(serv_name)
#define CHARACTERISTIC_W(charType, type, var, func) \
\
public: \
\
inline GattAttribute::Handle_t get##func##Handle(){ \
return var.getValueHandle(); \
} \
\
inline void set##func(const type &new_state){ \
ble.gattServer().write(var.getValueHandle(), \
(uint8_t*)&new_state, \
sizeof(type)); \
} \
\
inline void set##func(type *new_state){ \
ble.gattServer().write(var.getValueHandle(), \
(uint8_t*)new_state, \
sizeof(type)); \
} \
\
inline type get##func(){ \
type tmp; \
uint16_t size = sizeof(tmp); \
ble.gattServer().read(var.getValueHandle(), (uint8_t*)&tmp, \
&size); \
return tmp; \
} \
\
inline type *get##func(type &tmp){ \
uint16_t size = sizeof(type); \
ble.gattServer().read(var.getValueHandle(), (uint8_t*)&tmp, \
&size); \
return &tmp; \
} \
\
inline type *get##func(type *tmp){ \
uint16_t size = sizeof(type); \
ble.gattServer().read(var.getValueHandle(), (uint8_t*)tmp, \
&size); \
return tmp; \
} \
\
private: \
charType##GattCharacteristic<type> var
#define CHARACTERISTIC_A(charType, type, size_, var, func) \
\
public: \
\
inline GattAttribute::Handle_t get##func##Handle(){ \
return var.getValueHandle(); \
} \
\
inline void set##func(type *new_state){ \
ble.gattServer().write(var.getValueHandle(), \
(uint8_t*)new_state, \
sizeof(type)*size_); \
} \
\
inline type *get##func(type *tmp){ \
uint16_t size = sizeof(type)*size_; \
ble.gattServer().read(var.getValueHandle(), (uint8_t*)tmp, \
&size); \
return tmp; \
} \
\
private: \
charType##ArrayGattCharacteristic<type, size_> var
#endif //__SERVICE_MACROS_H__


