this is using the mbed os version 5-13-1
source/ATCmdManager.h
- Committer:
- ocomeni
- Date:
- 2019-03-20
- Revision:
- 79:a2187bbfa407
- Parent:
- 78:07bb86e3ce14
- Child:
- 80:e8f0e92e3ac9
File content as of revision 79:a2187bbfa407:
#ifndef __ATCMD_MANAGER_H__
#define __ATCMD_MANAGER_H__
#include <events/mbed_events.h>
#include <mbed.h>
#include "ATCmdParser.h"
#include "BleManager.h"
#include "WiFiManager.h"
#define MAIN_LOOP_WAIT_TIME_MS 1000 // milliseconds
#define NUM_UART_OPTIONS 6
#ifndef UBLOX_ODIN_W2_MISC_TIMEOUT
#define UBLOX_ODIN_W2_MISC_TIMEOUT 2000
#endif
class ATCmdManager {
public:
ATCmdManager(PinName tx, PinName rx, SMDevicePeripheral *blePeripheral,
events::EventQueue &event_queue, WiFiManager *wifi,
MemoryPool<wifi_cmd_message_t, 16> *aT2WiFimPool,
Queue<wifi_cmd_message_t, 16> *aT2WiFiCmdQueue,
bool debug = false);
public:
void runMain();
private:
// UART settings
UARTSerial _serial;
Mutex _smutex; // Protect serial port access
Mutex _rmutex; // Reset protection
// define event queue
events::EventQueue &_event_queue;
// AT Command Parser
ATCmdParser _parser;
SMDevicePeripheral *blePeripheral;
WiFiManager *wiFiManager;
MemoryPool<wifi_cmd_message_t, 16> *_aT2WiFimPool;
Queue<wifi_cmd_message_t, 16> *_aT2WiFiCmdQueue;
// OOB processing
void _process_oob(uint32_t timeout, bool all);
// OOB message handlers
void _oob_startup_hdlr();
void _oob_bleRole_hdlr();
void _oob_wifiMode_err();
void _oob_conn_already();
void _oob_err();
void _oob_echo_off();
void _oob_uart_setup();
void _oob_echo_on();
void _oob_data_mode();
void _oob_get_mac_addr();
void _oob_get_ble_role();
void _oob_ena_ble_peri();
void _oob_reboot();
void _oob_get_fw_ver();
void _oob_scanWiFiNetworks();
void _oob_connect2WiFiNetwork();
void _oob_disconnectWiFiNetwork();
const char * sec2str(nsapi_security_t sec);
bool queueWiFiCommand(wifi_cmd_t cmd);
/**
* Allows timeout to be changed between commands
*
* @param timeout_ms timeout of the connection
*/
void set_timeout(uint32_t timeout_ms = UBLOX_ODIN_W2_MISC_TIMEOUT);
};
#endif // __ATCMD_MANAGER_H__