Dependencies:   mbed-http

Committer:
ocomeni
Date:
Sat Mar 16 13:05:52 2019 +0000
Revision:
78:07bb86e3ce14
Parent:
75:08eff6258e1b
Child:
79:a2187bbfa407
Main Manager class constructors and configuration structures implemented.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ocomeni 74:f26e846adfe9 1 #ifndef __ATCMD_MANAGER_H__
ocomeni 74:f26e846adfe9 2 #define __ATCMD_MANAGER_H__
ocomeni 74:f26e846adfe9 3 #include <mbed.h>
ocomeni 74:f26e846adfe9 4 #include "ATCmdParser.h"
ocomeni 78:07bb86e3ce14 5 #include "BleManager.h"
ocomeni 78:07bb86e3ce14 6 #include "WiFiManager.h"
ocomeni 74:f26e846adfe9 7
ocomeni 75:08eff6258e1b 8 #define MAIN_LOOP_WAIT_TIME_MS 1000 // milliseconds
ocomeni 75:08eff6258e1b 9 #define NUM_UART_OPTIONS 6
ocomeni 74:f26e846adfe9 10 #ifndef UBLOX_ODIN_W2_MISC_TIMEOUT
ocomeni 74:f26e846adfe9 11 #define UBLOX_ODIN_W2_MISC_TIMEOUT 2000
ocomeni 74:f26e846adfe9 12 #endif
ocomeni 74:f26e846adfe9 13
ocomeni 74:f26e846adfe9 14
ocomeni 74:f26e846adfe9 15 class ATCmdManager {
ocomeni 74:f26e846adfe9 16 public:
ocomeni 78:07bb86e3ce14 17 ATCmdManager(PinName tx, PinName rx, SMDevicePeripheral *blePeripheral,
ocomeni 78:07bb86e3ce14 18 WiFiManager *wifi, bool debug = false);
ocomeni 74:f26e846adfe9 19 public:
ocomeni 74:f26e846adfe9 20 void runMain();
ocomeni 74:f26e846adfe9 21
ocomeni 74:f26e846adfe9 22
ocomeni 74:f26e846adfe9 23
ocomeni 74:f26e846adfe9 24 private:
ocomeni 74:f26e846adfe9 25 // UART settings
ocomeni 74:f26e846adfe9 26 UARTSerial _serial;
ocomeni 74:f26e846adfe9 27 Mutex _smutex; // Protect serial port access
ocomeni 74:f26e846adfe9 28 Mutex _rmutex; // Reset protection
ocomeni 74:f26e846adfe9 29
ocomeni 74:f26e846adfe9 30 // AT Command Parser
ocomeni 74:f26e846adfe9 31 ATCmdParser _parser;
ocomeni 78:07bb86e3ce14 32 SMDevicePeripheral *blePeripheral;
ocomeni 78:07bb86e3ce14 33 WiFiManager *wifi;
ocomeni 74:f26e846adfe9 34 // OOB processing
ocomeni 74:f26e846adfe9 35 void _process_oob(uint32_t timeout, bool all);
ocomeni 74:f26e846adfe9 36 // OOB message handlers
ocomeni 74:f26e846adfe9 37 void _oob_startup_hdlr();
ocomeni 74:f26e846adfe9 38 void _oob_bleRole_hdlr();
ocomeni 74:f26e846adfe9 39 void _oob_wifiMode_err();
ocomeni 74:f26e846adfe9 40 void _oob_conn_already();
ocomeni 74:f26e846adfe9 41 void _oob_err();
ocomeni 75:08eff6258e1b 42 void _oob_echo_off();
ocomeni 75:08eff6258e1b 43 void _oob_uart_setup();
ocomeni 75:08eff6258e1b 44 void _oob_echo_on();
ocomeni 75:08eff6258e1b 45 void _oob_data_mode();
ocomeni 75:08eff6258e1b 46 void _oob_get_mac_addr();
ocomeni 75:08eff6258e1b 47 void _oob_get_ble_role();
ocomeni 75:08eff6258e1b 48 void _oob_ena_ble_peri();
ocomeni 75:08eff6258e1b 49 void _oob_reboot();
ocomeni 75:08eff6258e1b 50 void _oob_get_fw_ver();
ocomeni 74:f26e846adfe9 51
ocomeni 74:f26e846adfe9 52 /**
ocomeni 74:f26e846adfe9 53 * Allows timeout to be changed between commands
ocomeni 74:f26e846adfe9 54 *
ocomeni 74:f26e846adfe9 55 * @param timeout_ms timeout of the connection
ocomeni 74:f26e846adfe9 56 */
ocomeni 74:f26e846adfe9 57 void set_timeout(uint32_t timeout_ms = UBLOX_ODIN_W2_MISC_TIMEOUT);
ocomeni 74:f26e846adfe9 58 };
ocomeni 74:f26e846adfe9 59 #endif // __ATCMD_MANAGER_H__