Ejemplo n.º 1
0
static int rd_set_mode(int mode)
{
    int result;

    /* Get current radio mode */
    if((radio_state == RADIO_UNKNOWN) || (radio_state == RADIO_PWD)) {
        result = RADIO_MODE_OFF;
    }
    else {
        result = RADIO_MODE_ON;
    }

    switch(mode) {
        case RADIO_MODE_ON:
            DEBUG("Enabling rx mode\n");
            cc110x_init_interrupts();			/* Enable interrupts */
            cc110x_setup_rx_mode();				/* Set chip to desired mode */
            break;

        case RADIO_MODE_OFF:
            cc110x_disable_interrupts();		/* Disable interrupts */
            cc110x_switch_to_pwd();					/* Set chip to power down mode */
            break;

        case RADIO_MODE_GET:

            /* do nothing, just return current mode */
        default:
            /* do nothing */
            break;
    }

    /* Return previous mode */
    return result;
}
Ejemplo n.º 2
0
/*------------------------------------------------------------------------------------*/
static void powerdown(transceiver_type_t t)
{
    switch (t) {
#if (defined(MODULE_CC110X) || defined(MODULE_CC110X_LEGACY))

        case TRANSCEIVER_CC1100:
            cc110x_switch_to_pwd();
            break;
#endif
#ifdef MODULE_MC1322X

        case TRANSCEIVER_MC1322X:
            maca_off();
            break;
#endif
#ifdef MODULE_NATIVENET

        case TRANSCEIVER_NATIVE:
            nativenet_powerdown();
            break;
#endif

        default:
            break;
    }
}
Ejemplo n.º 3
0
int _cc110x_set_state(netdev_t *dev, netdev_state_t state)
{
    if (dev != &cc110x_dev) {
        return -ENODEV;
    }

    switch (state) {
        case NETDEV_STATE_POWER_OFF:
            gpio_irq_disable(CC110X_GDO2);
            cc110x_switch_to_pwd();
            break;
        case NETDEV_STATE_RX_MODE:
            gpio_irq_enable(CC110X_GDO2);
            cc110x_setup_rx_mode();
            break;
        default:
            return -ENOTSUP;
    }

    return 0;
}