コード例 #1
0
static void NetModeSet(uint8_t networkType)
{
    switch (networkType) {
    case WDRV_NETWORK_TYPE_INFRASTRUCTURE:
        WDRV_EXT_CmdNetModeBSSSet();
        break;
    case WDRV_NETWORK_TYPE_ADHOC:
        WDRV_ASSERT(false, "Ad-Hoc is not supported for now");
        break;
    case WDRV_NETWORK_TYPE_SOFT_AP:
        WDRV_EXT_CmdNetModeAPSet();
        break;
    case WDRV_NETWORK_TYPE_P2P:
        WDRV_ASSERT(false, "P2P is not supported for now");
        break;
    default:
        WDRV_ASSERT(false, "Undefined network type");
        break;
    }
}
コード例 #2
0
void WDRV_GPIO_Init(int board)      
{
    switch (board) {
    case MZ_ESK_BD:
        break;
    case MX_ESK_BD:
        break;
    case EXP16_BD:
        break;
    case MEB2_BD:
        break;
    default:
        WDRV_ASSERT(false, "Unsupported board");
        break;
    }
}
コード例 #3
0
static bool Spi_Init(void)
{
    if (s_SpiHandle == NULL) {
        s_SpiHandle = DRV_SPI_Open(WDRV_SPI_INDEX, DRV_IO_INTENT_READWRITE|DRV_IO_INTENT_BLOCKING);
        if (s_SpiHandle == (DRV_SPI_BUFFER_HANDLE)NULL)
        {
            WDRV_ASSERT(false, "SPI init failed");
            return false;
        }
    }

    WDRV_SemInit(&g_wdrv_priv.dmaTxSync);
    WDRV_SemInit(&g_wdrv_priv.dmaRxSync);

    return true;
}
コード例 #4
0
void WDRV_GPIO_OutHigh(int board)      
{
    switch (board) {
    case MZ_ESK_BD:
        PLIB_PORTS_PinModePerPortSelect(PORTS_ID_0, WF_TEST_PORT_CHANNEL,WF_TEST_BIT_POS,PORTS_PIN_MODE_DIGITAL);
        PLIB_PORTS_PinDirectionOutputSet(PORTS_ID_0,WF_TEST_PORT_CHANNEL,WF_TEST_BIT_POS);
        SYS_PORTS_PinSet    (PORTS_ID_0, WF_TEST_PORT_CHANNEL,WF_TEST_BIT_POS);
        break;
    case MX_ESK_BD:
        break;
    case EXP16_BD:
        break;
    case MEB2_BD:
        break;
    default:
        WDRV_ASSERT(false, "Unsupported board");
        break;
    }
}
コード例 #5
0
static bool Spi_Write(unsigned char *p_txBuf, uint32_t txLen)
{
    bool ret = true;
    int c = 0;
    
    CS_Assert();

    while (txLen > SPI_DMA_MAX_TX_SIZE) {
        ret = _Spi_Tx(p_txBuf + c * SPI_DMA_MAX_TX_SIZE, SPI_DMA_MAX_TX_SIZE);
        txLen -= SPI_DMA_MAX_TX_SIZE;
        c ++;
    }
    
    if (txLen > 0)
        ret = _Spi_Tx(p_txBuf + c * SPI_DMA_MAX_TX_SIZE, txLen);

    CS_Deassert();
    WDRV_ASSERT(ret, "Spi_Write failed");        
    return ret;
}
コード例 #6
0
static void SecuritySet(uint8_t securityMode)
{
    bool pinMode;

    switch (securityMode) {
    case WDRV_SECURITY_OPEN:
        WDRV_EXT_CmdSecNoneSet();
        break;
    case WDRV_SECURITY_WEP_40:
    case WDRV_SECURITY_WEP_104:
        if ((WDRV_CONFIG_PARAMS(securityKeyLen) == 5) || (WDRV_CONFIG_PARAMS(securityKeyLen) == 13))
        {
            int i;
            uint8_t tmpBuf[26]; 
            uint8_t c_value;
            for (i = 0; i < WDRV_CONFIG_PARAMS(securityKeyLen) * 2; i++)
            {   
                c_value = (i % 2 == 0 ) ? (WDRV_CONFIG_PARAMS(securityKey)[i / 2] >> 4) : (WDRV_CONFIG_PARAMS(securityKey)[i / 2] & 0x0F);
                tmpBuf[i] = (c_value > 9) ? ('A' + c_value - 0x0A) : ('0' + c_value - 0x00);
            }
            WDRV_CONFIG_PARAMS(securityKeyLen) *= 2;
            memcpy(WDRV_CONFIG_PARAMS(securityKey), tmpBuf, WDRV_CONFIG_PARAMS(securityKeyLen));
            WDRV_CONFIG_PARAMS(securityKey)[WDRV_CONFIG_PARAMS(securityKeyLen)] = 0x00;
        }
        WDRV_EXT_CmdSecWEPSet(WDRV_CONFIG_PARAMS(securityKey), WDRV_CONFIG_PARAMS(securityKeyLen));
        break;
    case WDRV_SECURITY_WPA_WITH_PASS_PHRASE:
        WDRV_EXT_CmdSecWPASet(WDRV_CONFIG_PARAMS(securityKey), WDRV_CONFIG_PARAMS(securityKeyLen));
        break;
    case WDRV_SECURITY_WPA2_WITH_PASS_PHRASE:
        WDRV_EXT_CmdSecWPA2Set(WDRV_CONFIG_PARAMS(securityKey), WDRV_CONFIG_PARAMS(securityKeyLen));
        break;
    case WDRV_SECURITY_WPS_PIN:
    case WDRV_SECURITY_WPS_PUSH_BUTTON:
         pinMode = WDRV_CONFIG_PARAMS(securityMode) == WDRV_SECURITY_WPS_PIN ? true : false;
         WDRV_EXT_CmdSecWpsSet(pinMode, WDRV_CONFIG_PARAMS(securityKey), WDRV_CONFIG_PARAMS(securityKeyLen));
        break;
    default:
        WDRV_ASSERT(false, "Undefined security mode");
        break;
    }
コード例 #7
0
static bool Spi_Read(unsigned char *p_cmd, uint32_t cmdLen, unsigned char *p_rxBuf, uint32_t rxLen)
{
    bool ret = true;
    int c = 0;

    CS_Assert();
    if (cmdLen > 0)
        ret = _Spi_Tx(p_cmd, cmdLen);

    if (ret && rxLen > 0) {
        while (rxLen > SPI_DMA_MAX_RX_SIZE) {
            ret = _Spi_Rx(p_rxBuf + c * SPI_DMA_MAX_RX_SIZE, SPI_DMA_MAX_RX_SIZE);
            rxLen -= SPI_DMA_MAX_RX_SIZE;
            c ++;
        }
        
        if (rxLen > 0)
            ret = _Spi_Rx(p_rxBuf + c * SPI_DMA_MAX_RX_SIZE, rxLen);
    }

    CS_Deassert();
    WDRV_ASSERT(ret, "Spi_Read failed");        
    return ret;
}