SNICInterface for ThingPlug Example
Dependents: ThingPlug_WiFi_Example ThingPlug_WiFi_Example_2
Fork of SNICInterface by
SNIC/SNIC_UartCommandManager.h
- Committer:
- kishino
- Date:
- 2014-03-27
- Revision:
- 23:4ff2231ff9ba
- Parent:
- 21:dda155fe5048
- Child:
- 25:67183ed15708
File content as of revision 23:4ff2231ff9ba:
/******************* Murata Manufacturing Co.,Ltd. 2014 ***************** * * Filename: SNIC_UartCommandManager.h * * Purpose: This module has define of function for management of SNIC UART Command. * * $Author: kishino $ * * $Date: 2014/03/26 $ * * $Revision: 0.0.0.1 $ * ***********************************************************************/ #ifndef _SNIC_UART_COMMAND_MANAGER_H_ #define _SNIC_UART_COMMAND_MANAGER_H_ #include "mbed.h" #include "rtos.h" namespace murata_wifi { /** Max length of SSID */ #define SSID_MAX_LENGTH 32 /** Max length of BSSID */ #define BSSID_MAC_LENTH 6 /** Length of Country code */ #define COUNTRYC_CODE_LENTH 2 /** Wait signal ID of UART command */ #define UART_COMMAND_SIGNAL 0x00000001 /** Timeout of UART command wait(ms)*/ #define UART_COMMAND_WAIT_TIMEOUT 10000 /** Scan result structure used by scanresults handler */ typedef struct { bool is_complete; /** Channel */ unsigned char channel; /** RSSI */ signed char rssi; /** Security type */ unsigned char security; /** BSSID */ unsigned char bssid[BSSID_MAC_LENTH]; /** Network type */ unsigned char network_type; /** Max data rate */ unsigned char max_rate; /** SSID */ char ssid[SSID_MAX_LENGTH+1]; }tagSCAN_RESULT_T; /** Internal class for managing the SNIC UART command. */ class C_SNIC_UartCommandManager { friend class C_SNIC_Core; friend class C_SNIC_WifiInterface; friend class TCPSocketConnection; friend class Socket; private: /** Set Command ID @param cmd_id Command ID */ void setCommandID( unsigned char cmd_id ); /** Get Command ID @return Command ID */ unsigned char getCommandID(); /** Set Command SubID @param cmd_sid Command Sub ID */ void setCommandSID( unsigned char cmd_sid ); /** Get Command SubID @return Command Sub ID */ unsigned char getCommandSID(); /** Set Command status @param status Command status */ void setCommandStatus( unsigned char status ); /** Get Command status @return Command status */ unsigned char getCommandStatus(); /** Set Response buffer @param buf_p Pointer of response buffer */ void setResponseBuf( unsigned char *buf_p ); /** Get Response buffer @return Pointer of response buffer */ unsigned char *getResponseBuf(); /** Set scan result callback hander @param handler_p Pointer of callback function */ void setScanResultHandler( void (*handler_p)(tagSCAN_RESULT_T *scan_result) ); void bufferredPacket( unsigned char *payload_p, int payload_len ); void scanResultIndicate( unsigned char *payload_p, int payload_len ); /** Checks in the command which is waiting from Command ID and Sub ID. @param command_id Command ID @param payload_p Command payload @return true: Waiting command / false: Not waiting command */ bool isWaitingCommand( unsigned int command_id, unsigned char *payload_p ); int wait(); int signal(); private: /** Command request thread ID */ osThreadId mCommandThreadID; /** Command ID */ unsigned char mCommandID; /** Command SubID */ unsigned char mCommandSID; /** Status of command response */ unsigned char mCommandStatus; /** ResponseData of command response */ unsigned char *mResponseBuf_p; /** Scan result handler */ void (*mScanResultHandler_p)(tagSCAN_RESULT_T *scan_result); }; } #endif