NetBurner 3.1
m2m_wifi.h
1 
40 #ifndef __M2M_WIFI_H__
41 #define __M2M_WIFI_H__
42 
43 /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
44 INCLUDES
45 *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
46 
50 
51 // #ifdef CONF_MGMT
52 
53 
54 /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
55 MACROS
56 *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
57 
58 
59 // TODO: update this structure with the version from the new driver. There have been added options for concurrent interfaces
60 // updated enum lives in m2m_tyes.h
61 // typedef enum {
62 // INTERFACE_1 = 1,
63 // INTERFACE_2,
64 // }tenuControlInterface;
65 
66 
87 typedef enum {
88  MANAGEMENT = 0x00,
91  CONTROL = 0x04,
97  RESERVED = 0x0C
99 
100 
116 typedef enum {
117 
119  ASSOC_REQ = 0x00,
120  ASSOC_RSP = 0x10,
121  REASSOC_REQ = 0x20,
122  REASSOC_RSP = 0x30,
123  PROBE_REQ = 0x40,
124  PROBE_RSP = 0x50,
125  BEACON = 0x80,
126  ATIM = 0x90,
127  DISASOC = 0xA0,
128  AUTH = 0xB0,
129  DEAUTH = 0xC0,
130  ACTION = 0xD0,
131 
133  /* Sub-Types related to Control */
134  PS_POLL = 0xA4,
135  RTS = 0xB4,
136  CTS = 0xC4,
137  ACK = 0xD4,
138  CFEND = 0xE4,
139  CFEND_ACK = 0xF4,
140  BLOCKACK_REQ = 0x84,
141  BLOCKACK = 0x94,
143  /* Sub-Types related to Data */
144  DATA = 0x08,
145  DATA_ACK = 0x18,
146  DATA_POLL = 0x28,
147  DATA_POLL_ACK = 0x38,
148  NULL_FRAME = 0x48,
149  CFACK = 0x58,
150  CFPOLL = 0x68,
151  CFPOLL_ACK = 0x78,
152  QOS_DATA = 0x88,
153  QOS_DATA_ACK = 0x98,
154  QOS_DATA_POLL = 0xA8,
155  QOS_DATA_POLL_ACK = 0xB8,
156  QOS_NULL_FRAME = 0xC8,
157  QOS_CFPOLL = 0xE8,
158  QOS_CFPOLL_ACK = 0xF8
159 }tenuSubTypes;
160 
196 typedef void (*tpfAppWifiCb) (uint8 u8MsgType, void * pvMsg);
197 
224 typedef void (*tpfAppEthCb) (uint8 u8MsgType, void * pvMsg,void * pvCtrlBuf);
225 
253 typedef void (*tpfAppMonCb) (tstrM2MWifiRxPacketInfo *pstrWifiRxPacket, uint8 * pu8Payload, uint16 u16PayloadSize);
254 
270 typedef struct {
275  uint8 * au8ethRcvBuf;
300 typedef struct{
313  uint8 u8IfcId;
318 
319 
333 typedef struct {
348 
349 
350 typedef union
351 {
352  tstrM2mWifiConnect strM2mWifiConnect;
353  tstrM2mTxPwrLevel strM2mTxPwrLevel;
354  tstrM2mSetMacAddress strM2mSetMacAddress;
355  tstrM2MIPConfig strM2MIPConfig;
356  tstrM2mLsnInt strM2mLsnInt;
357  tstrM2MScanOption strM2MScanOption;
358  tstrM2MScanRegion strM2MScanRegion;
359  tstrM2MScanList strM2MScanList;
360  tstrM2MScan strM2MScan;
361  tstrM2MWPSConnect strM2MWPSConnect;
362  tstrM2MP2PConnect strM2MP2PConnect;
363  tstrM2MAPConfig strM2MAPConfig;
364  uint8 au8BlackListRequest[7];
365  uint8 au8MacAddress[6];
366  uint8 au8MacAddressDpl[12];
367  tstrM2mReqScanResult strM2mReqScanResult;
368  tstrM2mPsType strM2mPsType;
369  tstrM2MDeviceNameConfig strM2MDeviceNameConfig;
370  tstrM2MWifiMonitorModeCtrl strM2MWifiMonitorModeCtrl;
371  uint8 u8ChannelID;
372  tstrM2MWifiTxPacketInfo strM2MWifiTxPacketInfo;
373  uint32 u32UTCSeconds;
374  tstrM2MMulticastMac strM2MMulticastMac;
375  uint8 au8CertChunk[32];
376  tstrM2MIfId strM2MIfId;
377  tstrM2MUserMaxTxRate strM2MUserMaxTxRate;
378 }tuCtrlStruct;
379 
380 /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
381 FUNCTION PROTOTYPES
382 *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
386 #ifdef __cplusplus
387  extern "C" {
388 #endif
389 
432 NMI_API sint8 m2m_wifi_init(tstrWifiInitParam * pWifiInitParam);
451 NMI_API sint8 m2m_wifi_deinit(void * arg);
475 
531 NMI_API sint8 m2m_wifi_connect(char *pcSsid, uint8 u8SsidLen, uint8 u8SecType, tuniM2MWifiAuth *puniAuthInfo, uint16 u16Ch);
661  NMI_API sint8 m2m_wifi_set_mac_address(uint8 au8MacAddress0[6],uint8 au8MacAddress1[6]);
757 NMI_API sint8 m2m_wifi_wps(uint8 u8TriggerType,const char *pcPinNumber);
853 NMI_API sint8 m2m_wifi_p2p(uint8 u8Channel);
1090 NMI_API sint8 m2m_wifi_ap_add_black_list(uint8 bAddNewEntry,uint8* mac_addr);
1116 NMI_API sint8 m2m_wifi_set_scan_options(uint8 u8NumOfSlot,uint8 u8SlotTime);
1140 NMI_API sint8 m2m_wifi_set_scan_region(uint8 ScanRegion);
1165 
1337 NMI_API sint8 m2m_wifi_request_scan_ssid(uint8 ch,char* pcssid);
1640 NMI_API sint8 m2m_wifi_get_otp_mac_address(uint8 *pu8MacAddr, uint8 * pu8IsValid);
1659 NMI_API sint8 m2m_wifi_get_mac_address(uint8 *pu8MacAddr0, uint8 *pu8MacAddr1);
1682 NMI_API sint8 m2m_wifi_set_sleep_mode(uint8 PsTyp, uint8 BcastEn);
1696 NMI_API uint8 m2m_wifi_get_sleep_mode(void);
1712 NMI_API sint8 m2m_wifi_set_device_name(uint8 *pu8DeviceName, uint8 u8DeviceNameLength);
1829 
1845 
1868 NMI_API sint8 m2m_wifi_send_wlan_pkt(uint8 *pu8WlanPacket, uint16 u16WlanHeaderLength, uint16 u16WlanPktSize);
1890 NMI_API sint8 m2m_wifi_send_ethernet_pkt(uint8* pu8Packet,uint16 u16PacketSize, uint8 u8IfcId);
1947 NMI_API sint8 m2m_wifi_set_cust_InfoElement(uint8* pau8M2mCustInfoElement);
1967 NMI_API sint8 m2m_wifi_enable_mac_mcast(uint8* pu8MulticastMacAddress, uint8 u8AddRemove);
1981 NMI_API sint8 m2m_wifi_enable_mcast_filter(void);
1994 NMI_API sint8 m2m_wifi_disable_mcast_filter(void);
2014 NMI_API sint8 m2m_wifi_set_receive_buffer(void* pvBuffer,uint16 u16BufferLen);
2033 sint8 m2m_wifi_download_cert(uint8* pCertData,uint32 u32CertSize);
2034 
2047 sint8 m2m_wifi_set_p2p_control_ifc(uint8 u8IfcId);
2058 NMI_API sint8 m2m_wifi_set_tx_power(uint8 u8TxPwrLevel);
2059 
2070 NMI_API sint8 m2m_wifi_set_max_tx_rate(tenuTxDataRate enuMaxTxDataRate);
2071 
2072 #ifdef __cplusplus
2073 }
2074 #endif
2075 #endif /* __M2M_WIFI_H__ */
uint16 u16DataSize
Definition: m2m_wifi.h:301
Wi-Fi Connect Request.
Definition: m2m_types.h:799
Listen interval.
Definition: m2m_types.h:1096
Structure, holding the Wi-Fi configuration attributes such as the Wi-Fi callback, monitoring mode cal...
Definition: m2m_wifi.h:333
This module contains common APIs declarations.
Set the device to operate in the Wi-Fi Direct (P2P) mode.
Definition: m2m_types.h:1243
uint16 u16RemainigDataSize
Definition: m2m_wifi.h:305
NMI_API uint8 m2m_wifi_get_sleep_mode(void)
Wi-Fi Monitor Mode Filter.
Definition: m2m_types.h:1119
NMI_API sint8 m2m_wifi_p2p(uint8 u8Channel)
tenuSubTypes
Enumeration for Wi-Fi MAC Frame subtype code (6-bit). The frame subtypes fall into one of the three f...
Definition: m2m_wifi.h:116
Power Save Configuration.
Definition: m2m_types.h:1074
void(* tpfAppEthCb)(uint8 u8MsgType, void *pvMsg, void *pvCtrlBuf)
Ethernet notification callback function receiving events as defined in the Wi-Fi reponses enumeration...
Definition: m2m_wifi.h:224
NMI_API sint8 m2m_wifi_enable_ap(CONST tstrM2MAPConfig *pstrM2MAPConfig)
NMI_API sint8 m2m_wifi_req_curr_rssi(void)
NMI_API sint8 m2m_wifi_req_scan_result(uint8 index)
void(* tpfAppMonCb)(tstrM2MWifiRxPacketInfo *pstrWifiRxPacket, uint8 *pu8Payload, uint16 u16PayloadSize)
Wi-Fi monitoring mode callback function. This function delivers all received wi-Fi packets through th...
Definition: m2m_wifi.h:253
Definition: m2m_wifi.h:119
NMI_API sint8 m2m_wifi_send_wlan_pkt(uint8 *pu8WlanPacket, uint16 u16WlanHeaderLength, uint16 u16WlanPktSize)
Wi-Fi Scan Request.
Definition: m2m_types.h:945
Scan Result Request.
Definition: m2m_types.h:988
Wi-Fi Security Parameters for all supported security modes.
Definition: m2m_types.h:751
NMC1500 IoT Application Interface Internal Types.
tpfAppMonCb pfAppMonCb
Definition: m2m_wifi.h:338
#define CONST
Definition: nm_bsp.h:59
void(* tpfAppWifiCb)(uint8 u8MsgType, void *pvMsg)
Wi-Fi's main callback function handler, for handling the M2M_WIFI events received on the Wi-Fi interf...
Definition: m2m_wifi.h:196
uint8 u8IfcId
Definition: m2m_wifi.h:313
Set Intrface ID.
Definition: m2m_types.h:1482
NMI_API sint8 m2m_wifi_change_monitoring_channel(uint8 u8ChannelID)
NMI_API sint8 m2m_wifi_ap_add_black_list(uint8 bAddNewEntry, uint8 *mac_addr)
tpfAppWifiCb pfAppWifiCb
Definition: m2m_wifi.h:334
M2M add/remove multicast mac address.
Definition: m2m_types.h:1461
NMI_API sint8 m2m_wifi_get_connection_info(void)
Request the status information of the currently connected Wi-Fi AP. The result is passed to the Wi-Fi...
WPS Configuration parameters.
Definition: m2m_types.h:826
Sets the MAC address from application. It is only intended for testing purpose. This method is not us...
Definition: m2m_types.h:1311
Definition: m2m_wifi.h:91
NMI_API sint8 m2m_wifi_handle_events(void *arg)
uint8 * au8ethRcvBuf
Definition: m2m_wifi.h:275
NMI_API sint8 m2m_wifi_set_scan_options(uint8 u8NumOfSlot, uint8 u8SlotTime)
NMI_API sint8 m2m_wifi_wps_disable(void)
Disable the WILC WPS operation.
NMI_API sint8 m2m_wifi_get_otp_mac_address(uint8 *pu8MacAddr, uint8 *pu8IsValid)
NMI_API sint8 m2m_wifi_disconnect(void)
Static IP configuration.
Definition: m2m_types.h:1360
Structure to hold ethernet interface parameters. Structure is to be defined and have its attributes s...
Definition: m2m_wifi.h:270
NMI_API sint8 m2m_wifi_deinit(void *arg)
NMI_API sint8 m2m_wifi_set_mac_address(uint8 au8MacAddress0[6], uint8 au8MacAddress1[6])
Assign MAC addresses to the WILC device.
NMI_API sint8 m2m_wifi_wps(uint8 u8TriggerType, const char *pcPinNumber)
Definition: m2m_wifi.h:94
tstrEthInitParam strEthInitParam
Definition: m2m_wifi.h:342
NMI_API sint8 m2m_wifi_enable_monitoring_mode(tstrM2MWifiMonitorModeCtrl *pstrMtrCtrl)
NMI_API sint8 m2m_wifi_disable_monitoring_mode(void)
NMI_API sint8 m2m_wifi_request_scan(uint8 ch)
Wi-Fi channel list regulation.
Definition: m2m_types.h:923
Tx power level.
Definition: m2m_types.h:1514
tpfAppEthCb pfAppEthCb
Definition: m2m_wifi.h:271
NMI_API sint8 m2m_wifi_send_ethernet_pkt(uint8 *pu8Packet, uint16 u16PacketSize, uint8 u8IfcId)
NMI_API sint8 m2m_wifi_ap_get_assoc_info(void)
Request the status information of the currently connected stations to the WILC1000 AP...
AP Configuration.
Definition: m2m_types.h:1262
NMI_API sint8 m2m_wifi_set_device_name(uint8 *pu8DeviceName, uint8 u8DeviceNameLength)
#define NMI_API
Definition: nm_bsp.h:51
NMI_API sint8 m2m_wifi_disable_ap(void)
Wi-Fi RX Frame Header.
Definition: m2m_types.h:1162
signed char sint8
Range of values between -128 to 127.
Definition: nm_bsp.h:123
tenuTxDataRate
This enum contains all the phy tx rates.
Definition: m2m_types.h:330
Wi-Fi channel regulation region information.
Definition: m2m_types.h:905
Wi-Fi Tx Packet Info.
Definition: m2m_types.h:1220
User specified Max Tx Rate.
Definition: m2m_types.h:1344
NMI_API sint8 m2m_wifi_set_scan_region(uint8 ScanRegion)
NMI_API sint8 m2m_wifi_p2p_disconnect(void)
tenuWifiFrameType
Enumeration for Wi-Fi MAC frame type codes (2-bit) The following types are used to identify the type ...
Definition: m2m_wifi.h:87
This module contains NMC1500 BSP APIs declarations.
NMI_API sint8 m2m_wifi_init(tstrWifiInitParam *pWifiInitParam)
Device name.
Definition: m2m_types.h:1330
uint8 u8DataOffset
Definition: m2m_wifi.h:309
NMI_API sint8 m2m_wifi_set_scan_list(tstrM2MScanList *pstrScanList)
Definition: m2m_wifi.h:88
NMI_API sint8 m2m_wifi_get_mac_address(uint8 *pu8MacAddr0, uint8 *pu8MacAddr1)
NMI_API sint8 m2m_wifi_set_sleep_mode(uint8 PsTyp, uint8 BcastEn)
Structure holding the incoming buffer's data size information, indicating the data size of the buffer...
Definition: m2m_wifi.h:300
NMI_API sint8 m2m_wifi_request_scan_ssid(uint8 ch, char *pcssid)
NMI_API uint8 m2m_wifi_get_num_ap_found(void)
unsigned short uint16
Range of values between 0 to 65535.
Definition: ahdlc.cpp:46
NMI_API sint8 m2m_wifi_set_lsn_int(tstrM2mLsnInt *pstrM2mLsnInt)
uint16 u16ethRcvBufSize
Definition: m2m_wifi.h:279