/** * \brief Initializes the SLIP MAC backhaul driver. * This function is called by the border router module. */ void backhaul_driver_init(void (*backhaul_driver_status_cb)(uint8_t, int8_t)) { const char *driver = STR(YOTTA_CFG_K64F_BORDER_ROUTER_BACKHAUL_DRIVER); if (strcmp(driver, "SLIP") == 0) { int8_t slipdrv_id; pslipmacdriver = new SlipMACDriver(SERIAL_TX, SERIAL_RX, SERIAL_RTS, SERIAL_CTS); tr_debug("Using SLIP backhaul driver..."); if (pslipmacdriver == NULL) { tr_error("Unable to create SLIP driver"); return; } slipdrv_id = pslipmacdriver->Slip_Init(mac, YOTTA_CFG_K64F_BORDER_ROUTER_BACKHAUL_SERIAL_BAUD); if (slipdrv_id >= 0) { backhaul_driver_status_cb(1, slipdrv_id); return; } tr_error("Backhaul driver init failed, retval = %d", slipdrv_id); } else if (strcmp(driver, "ETH") == 0) { tr_debug("Using ETH backhaul driver..."); arm_eth_phy_device_register(mac, backhaul_driver_status_cb); return; } tr_error("Unsupported backhaul driver: %s", driver); }
/** * \brief Initializes the SLIP MAC backhaul driver. * This function is called by the border router module. */ void backhaul_driver_init(void (*backhaul_driver_status_cb)(uint8_t, int8_t)) { const char *driver; #ifndef MBED_CONF_RTOS_PRESENT driver = STR(YOTTA_CFG_K64F_BORDER_ROUTER_BACKHAUL_DRIVER); #else driver = STR(MBED_CONF_APP_BACKHAUL_DRIVER); #endif if (strcmp(driver, "SLIP") == 0) { int8_t slipdrv_id; #if defined(MBED_CONF_APP_SLIP_HW_FLOW_CONTROL) || defined(YOTTA_CFG_K64F_BORDER_ROUTER_SLIP_HW_FLOW_CONTROL) pslipmacdriver = new SlipMACDriver(SERIAL_TX, SERIAL_RX, SERIAL_RTS, SERIAL_CTS); #else pslipmacdriver = new SlipMACDriver(SERIAL_TX, SERIAL_RX); #endif if (pslipmacdriver == NULL) { tr_error("Unable to create SLIP driver"); return; } tr_info("Using SLIP backhaul driver..."); #ifndef MBED_CONF_RTOS_PRESENT slipdrv_id = pslipmacdriver->Slip_Init(mac, YOTTA_CFG_K64F_BORDER_ROUTER_BACKHAUL_SERIAL_BAUD); #else slipdrv_id = pslipmacdriver->Slip_Init(mac, MBED_CONF_APP_SLIP_SERIAL_BAUD_RATE); #endif if (slipdrv_id >= 0) { backhaul_driver_status_cb(1, slipdrv_id); return; } tr_error("Backhaul driver init failed, retval = %d", slipdrv_id); } else if (strcmp(driver, "ETH") == 0) { tr_info("Using ETH backhaul driver..."); arm_eth_phy_device_register(mac, backhaul_driver_status_cb); return; } tr_error("Unsupported backhaul driver: %s", driver); }