micropython: add micropython component
This commit is contained in:
150
components/language/micropython/drivers/cc3100/src/netcfg.c
Normal file
150
components/language/micropython/drivers/cc3100/src/netcfg.c
Normal file
@@ -0,0 +1,150 @@
|
||||
/*
|
||||
* netcfg.c - CC31xx/CC32xx Host Driver Implementation
|
||||
*
|
||||
* Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Include files */
|
||||
/*****************************************************************************/
|
||||
#include "simplelink.h"
|
||||
#include "protocol.h"
|
||||
#include "driver.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/* sl_NetCfgSet */
|
||||
/*****************************************************************************/
|
||||
typedef union
|
||||
{
|
||||
_NetCfgSetGet_t Cmd;
|
||||
_BasicResponse_t Rsp;
|
||||
}_SlNetCfgMsgSet_u;
|
||||
|
||||
#if _SL_INCLUDE_FUNC(sl_NetCfgSet)
|
||||
|
||||
const _SlCmdCtrl_t _SlNetCfgSetCmdCtrl =
|
||||
{
|
||||
SL_OPCODE_DEVICE_NETCFG_SET_COMMAND,
|
||||
sizeof(_NetCfgSetGet_t),
|
||||
sizeof(_BasicResponse_t)
|
||||
};
|
||||
|
||||
_i32 sl_NetCfgSet(const _u8 ConfigId ,const _u8 ConfigOpt,const _u8 ConfigLen,const _u8 *pValues)
|
||||
{
|
||||
_SlNetCfgMsgSet_u Msg;
|
||||
_SlCmdExt_t CmdExt;
|
||||
|
||||
|
||||
_SlDrvResetCmdExt(&CmdExt);
|
||||
CmdExt.TxPayloadLen = (ConfigLen+3) & (~3);
|
||||
CmdExt.pTxPayload = (_u8 *)pValues;
|
||||
|
||||
|
||||
Msg.Cmd.ConfigId = ConfigId;
|
||||
Msg.Cmd.ConfigLen = ConfigLen;
|
||||
Msg.Cmd.ConfigOpt = ConfigOpt;
|
||||
|
||||
VERIFY_RET_OK(_SlDrvCmdOp((_SlCmdCtrl_t *)&_SlNetCfgSetCmdCtrl, &Msg, &CmdExt));
|
||||
|
||||
return (_i16)Msg.Rsp.status;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
/* sl_NetCfgGet */
|
||||
/*****************************************************************************/
|
||||
typedef union
|
||||
{
|
||||
_NetCfgSetGet_t Cmd;
|
||||
_NetCfgSetGet_t Rsp;
|
||||
}_SlNetCfgMsgGet_u;
|
||||
|
||||
#if _SL_INCLUDE_FUNC(sl_NetCfgGet)
|
||||
|
||||
const _SlCmdCtrl_t _SlNetCfgGetCmdCtrl =
|
||||
{
|
||||
SL_OPCODE_DEVICE_NETCFG_GET_COMMAND,
|
||||
sizeof(_NetCfgSetGet_t),
|
||||
sizeof(_NetCfgSetGet_t)
|
||||
};
|
||||
|
||||
_i32 sl_NetCfgGet(const _u8 ConfigId, _u8 *pConfigOpt,_u8 *pConfigLen, _u8 *pValues)
|
||||
{
|
||||
_SlNetCfgMsgGet_u Msg;
|
||||
_SlCmdExt_t CmdExt;
|
||||
|
||||
if (*pConfigLen == 0)
|
||||
{
|
||||
return SL_EZEROLEN;
|
||||
}
|
||||
|
||||
_SlDrvResetCmdExt(&CmdExt);
|
||||
CmdExt.RxPayloadLen = *pConfigLen;
|
||||
CmdExt.pRxPayload = (_u8 *)pValues;
|
||||
Msg.Cmd.ConfigLen = *pConfigLen;
|
||||
Msg.Cmd.ConfigId = ConfigId;
|
||||
|
||||
if( pConfigOpt )
|
||||
{
|
||||
Msg.Cmd.ConfigOpt = (_u16)*pConfigOpt;
|
||||
}
|
||||
VERIFY_RET_OK(_SlDrvCmdOp((_SlCmdCtrl_t *)&_SlNetCfgGetCmdCtrl, &Msg, &CmdExt));
|
||||
|
||||
if( pConfigOpt )
|
||||
{
|
||||
*pConfigOpt = (_u8)Msg.Rsp.ConfigOpt;
|
||||
}
|
||||
if (CmdExt.RxPayloadLen < CmdExt.ActualRxPayloadLen)
|
||||
{
|
||||
*pConfigLen = (_u8)CmdExt.RxPayloadLen;
|
||||
if( SL_MAC_ADDRESS_GET == ConfigId )
|
||||
{
|
||||
return SL_RET_CODE_OK; /* sp fix */
|
||||
}
|
||||
else
|
||||
{
|
||||
return SL_ESMALLBUF;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
*pConfigLen = (_u8)CmdExt.ActualRxPayloadLen;
|
||||
}
|
||||
|
||||
return (_i16)Msg.Rsp.Status;
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user