Test serial console demonstrating various API functions of WiConnect library.

Dependencies:   WiConnect mbed

Committer:
dan_ackme
Date:
Mon Aug 11 11:31:32 2014 +0000
Revision:
0:836c9a6383e0
Child:
1:5137ec8f4c45
Initial check-in

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dan_ackme 0:836c9a6383e0 1 /*
dan_ackme 0:836c9a6383e0 2 * Copyright 2014, ACKme Networks
dan_ackme 0:836c9a6383e0 3 * All Rights Reserved.
dan_ackme 0:836c9a6383e0 4 *
dan_ackme 0:836c9a6383e0 5 * This is UNPUBLISHED PROPRIETARY SOURCE CODE of ACKme Networks;
dan_ackme 0:836c9a6383e0 6 * the contents of this file may not be disclosed to third parties, copied
dan_ackme 0:836c9a6383e0 7 * or duplicated in any form, in whole or in part, without the prior
dan_ackme 0:836c9a6383e0 8 * written permission of ACKme Networks.
dan_ackme 0:836c9a6383e0 9 */
dan_ackme 0:836c9a6383e0 10
dan_ackme 0:836c9a6383e0 11 #include "Wiconnect.h"
dan_ackme 0:836c9a6383e0 12 #include "util/log/log.h"
dan_ackme 0:836c9a6383e0 13 #include "util/CommandProcessor/CommandProcessor.h"
dan_ackme 0:836c9a6383e0 14 #include "tests/Tests.h"
dan_ackme 0:836c9a6383e0 15 #include "target_config.h"
dan_ackme 0:836c9a6383e0 16
dan_ackme 0:836c9a6383e0 17
dan_ackme 0:836c9a6383e0 18 #if TEST_NONBLOCKING_API
dan_ackme 0:836c9a6383e0 19 #error 'TEST_NONBLOCKING_API = true' NOT currently supported for the mbed sdk
dan_ackme 0:836c9a6383e0 20 #endif
dan_ackme 0:836c9a6383e0 21
dan_ackme 0:836c9a6383e0 22
dan_ackme 0:836c9a6383e0 23 int wiconnectLogDebug(const char *str);
dan_ackme 0:836c9a6383e0 24
dan_ackme 0:836c9a6383e0 25
dan_ackme 0:836c9a6383e0 26 static const CommandListEntry commandList[] =
dan_ackme 0:836c9a6383e0 27 {
dan_ackme 0:836c9a6383e0 28 CMD_HELP_ENTRY,
dan_ackme 0:836c9a6383e0 29 WICONNECT_TEST_CMD_LIST,
dan_ackme 0:836c9a6383e0 30 NETWORK_TEST_CMD_LIST,
dan_ackme 0:836c9a6383e0 31 SOCKET_TEST_CMD_LIST,
dan_ackme 0:836c9a6383e0 32 FILE_TEST_CMD_LIST,
dan_ackme 0:836c9a6383e0 33 CMD_LIST_TERMINATOR
dan_ackme 0:836c9a6383e0 34 };
dan_ackme 0:836c9a6383e0 35
dan_ackme 0:836c9a6383e0 36 static const SerialConfig serialConfig(WICONNECT_RX_PIN, WICONNECT_TX_PIN, WICONNECT_CTS_PIN, WICONNECT_RTS_PIN, WICONNECT_DEFAULT_BAUD, NULL, WICONNECT_SERIAL_RX_BUFFER_SIZE);
dan_ackme 0:836c9a6383e0 37 static Wiconnect wiconnectIfc(serialConfig, NULL, WICONNECT_INTERNAL_BUFFER_SIZE, WICONNECT_RESET_PIN, WICONNECT_WAKE_PIN, TEST_NONBLOCKING_API);
dan_ackme 0:836c9a6383e0 38
dan_ackme 0:836c9a6383e0 39 ConsoleSerial consoleSerial(SERIAL_TX, SERIAL_RX);
dan_ackme 0:836c9a6383e0 40 CommandProcessor cmdProcessor(&consoleSerial, commandList);
dan_ackme 0:836c9a6383e0 41 char testBuffer[TEST_BUFFER_LENGTH];
dan_ackme 0:836c9a6383e0 42
dan_ackme 0:836c9a6383e0 43
dan_ackme 0:836c9a6383e0 44 /*************************************************************************************************/
dan_ackme 0:836c9a6383e0 45 int main(int argc, char *argv[])
dan_ackme 0:836c9a6383e0 46 {
dan_ackme 0:836c9a6383e0 47 WiconnectResult result;
dan_ackme 0:836c9a6383e0 48
dan_ackme 0:836c9a6383e0 49 consoleSerial.setBaud(CONSOLE_BAUD);
dan_ackme 0:836c9a6383e0 50
dan_ackme 0:836c9a6383e0 51 #ifdef ENABLE_WICONNECT_DEBUG
dan_ackme 0:836c9a6383e0 52 wiconnectIfc.setDebugLogger(LogFunc(wiconnectLogDebug));
dan_ackme 0:836c9a6383e0 53 #endif
dan_ackme 0:836c9a6383e0 54
dan_ackme 0:836c9a6383e0 55 initialize_loop:
dan_ackme 0:836c9a6383e0 56 {
dan_ackme 0:836c9a6383e0 57 LOG_INFO("\r\n\r\nInitializing WiConnect...");
dan_ackme 0:836c9a6383e0 58 if(WICONNECT_FAILED(result, wiconnectIfc.init(true)))
dan_ackme 0:836c9a6383e0 59 {
dan_ackme 0:836c9a6383e0 60 LOG_WICONNECT_ERROR(result, "Failed to initialize Wiconnect");
dan_ackme 0:836c9a6383e0 61 LOG_INFO("Press any key to retry initialization...");
dan_ackme 0:836c9a6383e0 62 int c = consoleSerial.getc();
dan_ackme 0:836c9a6383e0 63 goto initialize_loop;
dan_ackme 0:836c9a6383e0 64 }
dan_ackme 0:836c9a6383e0 65 }
dan_ackme 0:836c9a6383e0 66
dan_ackme 0:836c9a6383e0 67 {
dan_ackme 0:836c9a6383e0 68 char version[WICONNECT_MAX_VERSION_SIZE];
dan_ackme 0:836c9a6383e0 69 if(!WICONNECT_FAILED(result, wiconnectIfc.getVersion(version, WICONNECT_MAX_VERSION_SIZE)))
dan_ackme 0:836c9a6383e0 70 {
dan_ackme 0:836c9a6383e0 71 LOG_INFO("Version: %s", version);
dan_ackme 0:836c9a6383e0 72 }
dan_ackme 0:836c9a6383e0 73 }
dan_ackme 0:836c9a6383e0 74
dan_ackme 0:836c9a6383e0 75 LOG_INFO("WiConnect test app ready...");
dan_ackme 0:836c9a6383e0 76
dan_ackme 0:836c9a6383e0 77 for(;;)
dan_ackme 0:836c9a6383e0 78 {
dan_ackme 0:836c9a6383e0 79 Command cmd;
dan_ackme 0:836c9a6383e0 80 cmdProcessor.waitForCommand(&cmd);
dan_ackme 0:836c9a6383e0 81 if(WICONNECT_FAILED(result, cmd.execute()))
dan_ackme 0:836c9a6383e0 82 {
dan_ackme 0:836c9a6383e0 83 LOG_WICONNECT_ERROR(result, "Failed to execute command");
dan_ackme 0:836c9a6383e0 84 if(result == WICONNECT_CMD_RESPONSE_ERROR)
dan_ackme 0:836c9a6383e0 85 {
dan_ackme 0:836c9a6383e0 86 LOG_ERROR("WiConnect command response code: %s", wiconnectIfc.getLastCommandResponseCodeStr());
dan_ackme 0:836c9a6383e0 87 }
dan_ackme 0:836c9a6383e0 88 }
dan_ackme 0:836c9a6383e0 89 }
dan_ackme 0:836c9a6383e0 90
dan_ackme 0:836c9a6383e0 91 return 0;
dan_ackme 0:836c9a6383e0 92 }
dan_ackme 0:836c9a6383e0 93
dan_ackme 0:836c9a6383e0 94
dan_ackme 0:836c9a6383e0 95 /*************************************************************************************************/
dan_ackme 0:836c9a6383e0 96 int wiconnectLogDebug(const char *str)
dan_ackme 0:836c9a6383e0 97 {
dan_ackme 0:836c9a6383e0 98 logDebug(str);
dan_ackme 0:836c9a6383e0 99 return 0;
dan_ackme 0:836c9a6383e0 100 }
dan_ackme 0:836c9a6383e0 101
dan_ackme 0:836c9a6383e0 102