Doug Anson / mbedEndpointNetwork_BLE

Dependencies:   libnsdl_m0 BLE_API Base64 nRF51822 SplitterAssembler

Committer:
ansond
Date:
Wed Feb 18 06:58:01 2015 +0000
Revision:
9:bf0cf5828378
Parent:
6:98af441fd960
Child:
11:d601b867b297
updates - working

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ansond 5:9233e88b9c83 1 /**
ansond 5:9233e88b9c83 2 * @file UartRPC.h
ansond 5:9233e88b9c83 3 * @brief BLE UART RPC header
ansond 5:9233e88b9c83 4 * @author Doug Anson
ansond 5:9233e88b9c83 5 * @version 1.0
ansond 5:9233e88b9c83 6 * @see
ansond 5:9233e88b9c83 7 *
ansond 5:9233e88b9c83 8 * Copyright (c) 2014
ansond 5:9233e88b9c83 9 *
ansond 5:9233e88b9c83 10 * Licensed under the Apache License, Version 2.0 (the "License");
ansond 5:9233e88b9c83 11 * you may not use this file except in compliance with the License.
ansond 5:9233e88b9c83 12 * You may obtain a copy of the License at
ansond 5:9233e88b9c83 13 *
ansond 5:9233e88b9c83 14 * http://www.apache.org/licenses/LICENSE-2.0
ansond 5:9233e88b9c83 15 *
ansond 5:9233e88b9c83 16 * Unless required by applicable law or agreed to in writing, software
ansond 5:9233e88b9c83 17 * distributed under the License is distributed on an "AS IS" BASIS,
ansond 5:9233e88b9c83 18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ansond 5:9233e88b9c83 19 * See the License for the specific language governing permissions and
ansond 5:9233e88b9c83 20 * limitations under the License.
ansond 5:9233e88b9c83 21 */
ansond 5:9233e88b9c83 22
ansond 5:9233e88b9c83 23 #ifndef __UART_RPC_H__
ansond 5:9233e88b9c83 24 #define __UART_RPC_H__
ansond 5:9233e88b9c83 25
ansond 5:9233e88b9c83 26 #include "mbed.h"
ansond 5:9233e88b9c83 27 #include <stdarg.h>
ansond 5:9233e88b9c83 28 #include "BLEDevice.h"
ansond 5:9233e88b9c83 29 #include "Dispatcher.h"
ansond 6:98af441fd960 30
ansond 5:9233e88b9c83 31 class UartRPC {
ansond 5:9233e88b9c83 32 public:
ansond 5:9233e88b9c83 33 UartRPC(BLEDevice &ble);
ansond 9:bf0cf5828378 34
ansond 9:bf0cf5828378 35 // remote dispatch
ansond 9:bf0cf5828378 36 int dispatch(uint8_t fn_id,uint8_t *response,int response_length,const char *format,...);
ansond 9:bf0cf5828378 37
ansond 9:bf0cf5828378 38 // local accumulate and dispatch of packets
ansond 9:bf0cf5828378 39 bool accumulate(uint8_t *buffer,int buffer_length);
ansond 9:bf0cf5828378 40 void dispatch();
ansond 9:bf0cf5828378 41 bool localDispatchAvailable(void);
ansond 9:bf0cf5828378 42 int retrieveLocalDispatch(uint8_t *buffer,int buffer_length);
ansond 9:bf0cf5828378 43
ansond 9:bf0cf5828378 44 private:
ansond 9:bf0cf5828378 45 void resetLocalDispatch(void);
ansond 9:bf0cf5828378 46
ansond 9:bf0cf5828378 47 Dispatcher m_dispatcher;
ansond 9:bf0cf5828378 48 SplitterAssembler m_recv_accumulator;
ansond 9:bf0cf5828378 49 bool m_local_dispatch_available;
ansond 9:bf0cf5828378 50 char *m_recv_raw_data;
ansond 9:bf0cf5828378 51 int m_recv_raw_data_length;
ansond 5:9233e88b9c83 52 };
ansond 5:9233e88b9c83 53
ansond 5:9233e88b9c83 54 #endif // __UART_RPC_H__