SNICInterface for ThingPlug Example

Dependents:   ThingPlug_WiFi_Example ThingPlug_WiFi_Example_2

Fork of SNICInterface by muRata

Committer:
kishino
Date:
Fri May 30 08:30:40 2014 +0000
Revision:
32:ae95309643aa
Parent:
29:6a0ba999597d
Child:
33:33f1bc919486
Implemented  a API of TCP server.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kishino 20:dd736d328de6 1 /******************* Murata Manufacturing Co.,Ltd. 2014 *****************
kishino 20:dd736d328de6 2 *
kishino 20:dd736d328de6 3 * Filename: SNIC_UartCommandManager.h
kishino 20:dd736d328de6 4 *
kishino 20:dd736d328de6 5 * Purpose: This module has define of function for management of
kishino 20:dd736d328de6 6 SNIC UART Command.
kishino 20:dd736d328de6 7 *
kishino 20:dd736d328de6 8 * $Author: kishino $
kishino 20:dd736d328de6 9 *
kishino 20:dd736d328de6 10 * $Date: 2014/03/26 $
kishino 20:dd736d328de6 11 *
kishino 20:dd736d328de6 12 * $Revision: 0.0.0.1 $
kishino 20:dd736d328de6 13 * ***********************************************************************/
kishino 20:dd736d328de6 14 #ifndef _SNIC_UART_COMMAND_MANAGER_H_
kishino 20:dd736d328de6 15 #define _SNIC_UART_COMMAND_MANAGER_H_
kishino 25:67183ed15708 16 #include "MurataObject.h"
kishino 20:dd736d328de6 17 #include "mbed.h"
kishino 20:dd736d328de6 18 #include "rtos.h"
kishino 20:dd736d328de6 19
kishino 20:dd736d328de6 20 /** Max length of SSID */
kishino 20:dd736d328de6 21 #define SSID_MAX_LENGTH 32
kishino 20:dd736d328de6 22 /** Max length of BSSID */
kishino 20:dd736d328de6 23 #define BSSID_MAC_LENTH 6
kishino 20:dd736d328de6 24 /** Length of Country code */
kishino 20:dd736d328de6 25 #define COUNTRYC_CODE_LENTH 2
kishino 20:dd736d328de6 26
kishino 20:dd736d328de6 27 /** Wait signal ID of UART command */
kishino 20:dd736d328de6 28 #define UART_COMMAND_SIGNAL 0x00000001
kishino 20:dd736d328de6 29 /** Timeout of UART command wait(ms)*/
kishino 20:dd736d328de6 30 #define UART_COMMAND_WAIT_TIMEOUT 10000
kishino 20:dd736d328de6 31
kishino 23:4ff2231ff9ba 32 /** Scan result structure used by scanresults handler
kishino 20:dd736d328de6 33 */
kishino 20:dd736d328de6 34 typedef struct {
kishino 20:dd736d328de6 35 bool is_complete;
kishino 20:dd736d328de6 36 /** Channel */
kishino 20:dd736d328de6 37 unsigned char channel;
kishino 20:dd736d328de6 38 /** RSSI */
kishino 20:dd736d328de6 39 signed char rssi;
kishino 20:dd736d328de6 40 /** Security type */
kishino 20:dd736d328de6 41 unsigned char security;
kishino 20:dd736d328de6 42 /** BSSID */
kishino 20:dd736d328de6 43 unsigned char bssid[BSSID_MAC_LENTH];
kishino 20:dd736d328de6 44 /** Network type */
kishino 20:dd736d328de6 45 unsigned char network_type;
kishino 20:dd736d328de6 46 /** Max data rate */
kishino 20:dd736d328de6 47 unsigned char max_rate;
kishino 20:dd736d328de6 48 /** SSID */
kishino 20:dd736d328de6 49 char ssid[SSID_MAX_LENGTH+1];
kishino 20:dd736d328de6 50 }tagSCAN_RESULT_T;
kishino 20:dd736d328de6 51
kishino 23:4ff2231ff9ba 52 /** Internal class for managing the SNIC UART command.
kishino 20:dd736d328de6 53 */
kishino 25:67183ed15708 54 class C_SNIC_UartCommandManager: public C_MurataObject
kishino 20:dd736d328de6 55 {
kishino 21:dda155fe5048 56 friend class C_SNIC_Core;
kishino 21:dda155fe5048 57 friend class C_SNIC_WifiInterface;
kishino 21:dda155fe5048 58 friend class TCPSocketConnection;
kishino 32:ae95309643aa 59 friend class TCPSocketServer;
kishino 21:dda155fe5048 60 friend class Socket;
kishino 21:dda155fe5048 61
kishino 21:dda155fe5048 62 private:
kishino 26:f2e1030964e4 63 virtual ~C_SNIC_UartCommandManager();
kishino 26:f2e1030964e4 64
kishino 20:dd736d328de6 65 /** Set Command ID
kishino 20:dd736d328de6 66 @param cmd_id Command ID
kishino 20:dd736d328de6 67 */
kishino 20:dd736d328de6 68 void setCommandID( unsigned char cmd_id );
kishino 20:dd736d328de6 69
kishino 20:dd736d328de6 70 /** Get Command ID
kishino 20:dd736d328de6 71 @return Command ID
kishino 20:dd736d328de6 72 */
kishino 20:dd736d328de6 73 unsigned char getCommandID();
kishino 20:dd736d328de6 74
kishino 20:dd736d328de6 75 /** Set Command SubID
kishino 20:dd736d328de6 76 @param cmd_sid Command Sub ID
kishino 20:dd736d328de6 77 */
kishino 20:dd736d328de6 78 void setCommandSID( unsigned char cmd_sid );
kishino 20:dd736d328de6 79
kishino 20:dd736d328de6 80 /** Get Command SubID
kishino 20:dd736d328de6 81 @return Command Sub ID
kishino 20:dd736d328de6 82 */
kishino 20:dd736d328de6 83 unsigned char getCommandSID();
kishino 20:dd736d328de6 84
kishino 20:dd736d328de6 85 /** Set Command status
kishino 20:dd736d328de6 86 @param status Command status
kishino 20:dd736d328de6 87 */
kishino 20:dd736d328de6 88 void setCommandStatus( unsigned char status );
kishino 20:dd736d328de6 89
kishino 20:dd736d328de6 90 /** Get Command status
kishino 20:dd736d328de6 91 @return Command status
kishino 20:dd736d328de6 92 */
kishino 20:dd736d328de6 93 unsigned char getCommandStatus();
kishino 20:dd736d328de6 94
kishino 20:dd736d328de6 95 /** Set Response buffer
kishino 20:dd736d328de6 96 @param buf_p Pointer of response buffer
kishino 20:dd736d328de6 97 */
kishino 20:dd736d328de6 98 void setResponseBuf( unsigned char *buf_p );
kishino 20:dd736d328de6 99
kishino 20:dd736d328de6 100 /** Get Response buffer
kishino 20:dd736d328de6 101 @return Pointer of response buffer
kishino 20:dd736d328de6 102 */
kishino 20:dd736d328de6 103 unsigned char *getResponseBuf();
kishino 20:dd736d328de6 104
kishino 20:dd736d328de6 105 /** Set scan result callback hander
kishino 20:dd736d328de6 106 @param handler_p Pointer of callback function
kishino 20:dd736d328de6 107 */
kishino 20:dd736d328de6 108 void setScanResultHandler( void (*handler_p)(tagSCAN_RESULT_T *scan_result) );
kishino 20:dd736d328de6 109
kishino 20:dd736d328de6 110 void bufferredPacket( unsigned char *payload_p, int payload_len );
kishino 20:dd736d328de6 111
kishino 20:dd736d328de6 112 void scanResultIndicate( unsigned char *payload_p, int payload_len );
kishino 20:dd736d328de6 113
kishino 32:ae95309643aa 114 void connectedTCPClient( unsigned char *payload_p, int payload_len );
kishino 32:ae95309643aa 115
kishino 20:dd736d328de6 116 /** Checks in the command which is waiting from Command ID and Sub ID.
kishino 20:dd736d328de6 117 @param command_id Command ID
kishino 20:dd736d328de6 118 @param payload_p Command payload
kishino 20:dd736d328de6 119 @return true: Waiting command / false: Not waiting command
kishino 20:dd736d328de6 120 */
kishino 20:dd736d328de6 121 bool isWaitingCommand( unsigned int command_id, unsigned char *payload_p );
kishino 20:dd736d328de6 122
kishino 20:dd736d328de6 123 int wait();
kishino 20:dd736d328de6 124
kishino 20:dd736d328de6 125 int signal();
kishino 20:dd736d328de6 126
kishino 20:dd736d328de6 127 private:
kishino 20:dd736d328de6 128 /** Command request thread ID */
kishino 20:dd736d328de6 129 osThreadId mCommandThreadID;
kishino 20:dd736d328de6 130 /** Command ID */
kishino 20:dd736d328de6 131 unsigned char mCommandID;
kishino 20:dd736d328de6 132 /** Command SubID */
kishino 20:dd736d328de6 133 unsigned char mCommandSID;
kishino 20:dd736d328de6 134 /** Status of command response */
kishino 20:dd736d328de6 135 unsigned char mCommandStatus;
kishino 20:dd736d328de6 136 /** ResponseData of command response */
kishino 20:dd736d328de6 137 unsigned char *mResponseBuf_p;
kishino 20:dd736d328de6 138 /** Scan result handler */
kishino 20:dd736d328de6 139 void (*mScanResultHandler_p)(tagSCAN_RESULT_T *scan_result);
kishino 20:dd736d328de6 140 };
kishino 20:dd736d328de6 141
kishino 20:dd736d328de6 142 #endif