int test_get_set_pan(void) { uint16_t pan = 0x0000, new_pan; new_pan = at86rf231_set_address(pan); if (new_pan != pan) { printf("new_pan [%d] != pan [%d] after set_address\n", new_pan, pan); return 0; } new_pan = at86rf231_get_address(); if (new_pan != pan) { printf("new_pan [%d] != pan [%d] after get_address\n", new_pan, pan); return 0; } pan = 0xffff; new_pan = at86rf231_set_address(pan); if (new_pan != pan) { printf("new_pan [%d] != pan [%d] after set_address\n", new_pan, pan); return 0; } new_pan = at86rf231_get_address(); if (new_pan != pan) { printf("new_pan [%d] != pan [%d] after get_address\n", new_pan, pan); return 0; } pan = 0x0004; /* randomly chosen by fair dice roll ;-) */ new_pan = at86rf231_set_address(pan); if (new_pan != pan) { printf("new_pan [%d] != pan [%d] after set_address\n", new_pan, pan); return 0; } new_pan = at86rf231_get_address(); if (new_pan != pan) { printf("new_pan [%d] != pan [%d] after get_address\n", new_pan, pan); return 0; } return 1; }
int test_get_set_address(void) { uint16_t addr = 0x0000, new_addr; new_addr = at86rf231_set_address(addr); if (new_addr != addr) { printf("new_addr [%d] != addr [%d] after set_address\n", new_addr, addr); return 0; } new_addr = at86rf231_get_address(); if (new_addr != addr) { printf("new_addr [%d] != addr [%d] after get_address\n", new_addr, addr); return 0; } addr = 0xffff; new_addr = at86rf231_set_address(addr); if (new_addr != addr) { printf("new_addr [%d] != addr [%d] after set_address\n", new_addr, addr); return 0; } new_addr = at86rf231_get_address(); if (new_addr != addr) { printf("new_addr [%d] != addr [%d] after get_address\n", new_addr, addr); return 0; } addr = 0x0004; /* randomly chosen by fair dice roll ;-) */ new_addr = at86rf231_set_address(addr); if (new_addr != addr) { printf("new_addr [%d] != addr [%d] after set_address\n", new_addr, addr); return 0; } new_addr = at86rf231_get_address(); if (new_addr != addr) { printf("new_addr [%d] != addr [%d] after get_address\n", new_addr, addr); return 0; } return 1; }
int test_get_set_address_long(void) { uint64_t addr = 0x0000000000000000, new_addr; new_addr = at86rf231_set_address(addr); if (new_addr != addr) { printf("new_addr [%" PRIu64 "] != addr [%" PRIu64 "] after set_address\n", new_addr, addr); return 0; } new_addr = at86rf231_get_address(); if (new_addr != addr) { printf("new_addr [%" PRIu64 "] != addr [%" PRIu64 "] after get_address\n", new_addr, addr); return 0; } addr = 0xffffffffffffffff; new_addr = at86rf231_set_address(addr); if (new_addr != addr) { printf("new_addr [%" PRIu64 "] != addr [%" PRIu64 "] after set_address\n", new_addr, addr); return 0; } new_addr = at86rf231_get_address(); if (new_addr != addr) { printf("new_addr [%" PRIu64 "] != addr [%" PRIu64 "] after get_address\n", new_addr, addr); return 0; } addr = 0x0000000002bb3f52; /* randomly chosen by fair dice roll ;-) */ new_addr = at86rf231_set_address(addr); if (new_addr != addr) { printf("new_addr [%" PRIu64 "] != addr [%" PRIu64 "] after set_address\n", new_addr, addr); return 0; } new_addr = at86rf231_get_address(); if (new_addr != addr) { printf("new_addr [%" PRIu64 "] != addr [%" PRIu64 "] after get_address\n", new_addr, addr); return 0; } return 1; }
/* * @brief Set the address of the transceiver device * * @param t The transceiver device * @param address Generic pointer to the address to set * * @return The new radio address of the device * * TODO: define error behavior */ static radio_address_t set_address(transceiver_type_t t, void *address) { /* cppcheck: addr is read depending on enabled modules */ /* cppcheck-suppress unreadVariable */ radio_address_t addr = *((radio_address_t *)address); switch (t) { case TRANSCEIVER_CC1100: #if (defined(MODULE_CC110X) || defined(MODULE_CC110X_LEGACY)) return cc110x_set_address(addr); #elif MODULE_CC110X_LEGACY_CSMA return cc1100_set_address(addr); #else return 0; /* XXX see TODO above */ #endif #ifdef MODULE_CC2420 case TRANSCEIVER_CC2420: return cc2420_set_address(addr); #endif #ifdef MODULE_MC1322X case TRANSCEIVER_MC1322X: return maca_set_address(addr); #endif #ifdef MODULE_NATIVENET case TRANSCEIVER_NATIVE: return nativenet_set_address(addr); #endif #ifdef MODULE_AT86RF231 case TRANSCEIVER_AT86RF231: return at86rf231_set_address(addr); #endif default: return 0; /* XXX see TODO above */ } }