Bluetooth Low Energy based Firmware Over The Air with Mbed. Mbed part is a external processor of the IoT devices and communicate with a Bluetooth module. The Bluetooth module have to support BLE and implement BLE FOTA profile designed by ours. BLE FOTA profile specification is available from our GIT hub wiki(https://github.com/sevencore/BLEFOTA).

Dependencies:   mbed

Fork of mbed_fota by KIM HyoengJun

Bluetooth Low Energy based Firmware Over The Air with Mbed. Mbed part is a external processor of the IoT devices and communicate with a Bluetooth module. The Bluetooth module have to support BLE and implement BLE FOTA profile designed by ours. BLE FOTA profile specification is available from our GIT hub wiki.

ext_fota/BleMsgHandler.h

Committer:
dudnwjs
Date:
2015-07-13
Revision:
5:e11b23f9aacc
Parent:
4:60be78a172c2
Child:
6:8dd20294b2aa

File content as of revision 5:e11b23f9aacc:

#ifndef BLEMSGHANDLER_H
#define BLEMSGHANDLER_H

#include "mbed.h"
#include "MsgQueue.h"
#include "SerialManager.h"
#include "gapc_task.h"
#include "gapm_task.h"

namespace sevencore_fota{
    
typedef struct {
    unsigned short bType;
    unsigned short bDstid;
    unsigned short bSrcid;
    unsigned short bLength;
} ble_hdr;    

class BleMsgHandler
{
public:
    BleMsgHandler(Serial* _device);
    BleMsgHandler(Serial* _device, Serial* _hostpc);
    ~BleMsgHandler(void);
    void PrintTitle(void);
    void BleMsgAlloc(unsigned short id,unsigned short dest_id,unsigned short src_id,unsigned short data_len,void *pdata,uint8_t *msg);
    int BleSendMsg(uint8_t *msg, unsigned short size);
    void BleReceiveMsg(void);
    void BleMsgHandle(void);
    void HostPcPrint(char *str);
    void ReceiveToSerialTest(void);
    
    
private:
    void HandleGapmCmpEvt(unsigned short msgid,struct gapm_cmp_evt *param,unsigned short dest_id,unsigned short src_id);
    void HandleGapcCmpEvt(unsigned short msgid,struct gapc_cmp_evt *param,unsigned short dest_id,unsigned short src_id);
    bool print_flag;
    Serial* device;
    Serial* hostpc;
    SerialManager* SerialM;
    MsgQueue* MsgQ;
    unsigned char recv_msg[512];
};

}//namespace

#endif //BLEMSGHANDLER_H