예제 #1
0
int _cc110x_get_option(netdev_t *dev, netdev_opt_t opt, void *value, size_t *value_len)
{
    if (dev != &cc110x_dev) {
        return -ENODEV;
    }

    switch (opt) {
        case NETDEV_OPT_CHANNEL:
            if (*value_len == 0) {
                return -EOVERFLOW;
            }
            if (*value_len > sizeof(uint8_t)) {
                *value_len = sizeof(uint8_t);
            }
            *((uint8_t *)value) = cc110x_get_channel();
            break;
        case NETDEV_OPT_ADDRESS:
            if (*value_len < sizeof(radio_address_t)) {
                return -EOVERFLOW;
            }
            if (*value_len > sizeof(uint8_t)) {
                *value_len = sizeof(uint8_t);
            }
            *((uint8_t *)value) = (uint8_t) cc110x_get_address();
            break;
        case NETDEV_OPT_PROTO:
            if (*value_len < sizeof(netdev_proto_t)) {
                return -EOVERFLOW;
            }
            if (*value_len > sizeof(netdev_proto_t)) {
                *value_len = sizeof(netdev_proto_t);
            }
            *((netdev_proto_t *)value) = NETDEV_PROTO_CC110X;
            break;
        case NETDEV_OPT_MAX_PACKET_SIZE:
            if (*value_len == 0) {
                return -EOVERFLOW;
            }
            if (*value_len > sizeof(uint8_t)) {
                *value_len = sizeof(uint8_t);
            }
            *((uint8_t *)value) = PACKET_LENGTH;
            break;
        default:
            return -ENOTSUP;
    }

    return 0;
}
예제 #2
0
파일: transceiver.c 프로젝트: mm3/RIOT
/*
 * @brief Get the current address of transceiver device
 *
 * @param t     The transceiver device
 *
 * @return  The configured address of the device
 *
 * TODO: define error behavior
 */
static radio_address_t get_address(transceiver_type_t t)
{
    switch (t) {
        case TRANSCEIVER_CC1100:
#if (defined(MODULE_CC110X) || defined(MODULE_CC110X_LEGACY))
            return cc110x_get_address();
#elif MODULE_CC110X_LEGACY_CSMA
            return cc1100_get_address();
#else
            return 0; /* XXX see TODO above */
#endif
#ifdef MODULE_CC2420

        case TRANSCEIVER_CC2420:
            return cc2420_get_address();
#endif
#ifdef MODULE_MC1322X

        case TRANSCEIVER_MC1322X:
            return maca_get_address();
#endif
#ifdef MODULE_NATIVENET

        case TRANSCEIVER_NATIVE:
            return nativenet_get_address();
#endif
#ifdef MODULE_AT86RF231

        case TRANSCEIVER_AT86RF231:
            return at86rf231_get_address();
#endif

        default:
            return 0; /* XXX see TODO above */
    }
}
예제 #3
0
파일: main.c 프로젝트: benpicco/RIOT-old
void get_r_address(char *str){
    printf("radio: %hu\n", cc110x_get_address());
}