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; }
/* * @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 */ } }
void get_r_address(char *str){ printf("radio: %hu\n", cc110x_get_address()); }