From 09ba198bb434f9410ab47ff8f2960e0071e445a3 Mon Sep 17 00:00:00 2001 From: TMRh20 Date: Wed, 19 Jun 2024 10:53:56 -0600 Subject: [PATCH] Warnings if unable to config interface --- RF24Gateway.cpp | 7 ++++++- examples/ncurses/RF24Gateway_ncurses.cpp | 16 ++++++++++++++-- examples/ncursesInt/RF24Gateway_ncursesInt.cpp | 16 ++++++++++++++-- 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/RF24Gateway.cpp b/RF24Gateway.cpp index 62e4952..a84acac 100644 --- a/RF24Gateway.cpp +++ b/RF24Gateway.cpp @@ -209,7 +209,12 @@ int ESBGateway::allocateTunDevice(char* dev, int fla // close(fd); //#if (RF24GATEWAY_DEBUG_LEVEL >= 1) std::cerr << "RF24Gw: Error: enabling TUNSETIFF" << std::endl; - std::cerr << "RF24Gw: If changing from TAP/TUN, run 'sudo ip link delete tun_nrf24' to remove the interface" << std::endl; + uint32_t UID = getuid(); + if (UID) { + std::cout << "Not running as root, preconfigure the interface as follows, where 'pi' is your username" << std::endl; + std::cout << "sudo ip tuntap add dev tun_nrf24 mode tun user pi multi_queue" << std::endl; + std::cout << "sudo ifconfig tun_nrf24 10.10.2.2/24" << std::endl; + } return -1; //#endif } diff --git a/examples/ncurses/RF24Gateway_ncurses.cpp b/examples/ncurses/RF24Gateway_ncurses.cpp index 7e0f360..4a7f01e 100644 --- a/examples/ncurses/RF24Gateway_ncurses.cpp +++ b/examples/ncurses/RF24Gateway_ncurses.cpp @@ -531,7 +531,8 @@ void drawCfg(bool isConf) sleep(1); wattron(win, COLOR_PAIR(1)); - mvwprintw(win, 5, 1, isConf ? "IP Configuration\n" : "**Interface Not Configured:**\n"); + mvwprintw(win, 4, 1, isConf ? "IP Configuration\n" : "**Interface Not Configured:**\n"); + mvwprintw(win, 5, 1, "IP 10.10.2.2 and Subnet Mask 255.255.255.0 is default\n"); wattroff(win, COLOR_PAIR(1)); mvwprintw(win, 6, 1, "Enter IP Address: \n"); refresh(); @@ -546,7 +547,18 @@ void drawCfg(bool isConf) if (strlen(ip) >= 6 && strlen(mask) >= 7) { - gw.setIP(ip, mask); + if(gw.setIP(ip, mask) < 0){ + mvwprintw(win, 8, 1, "Unable to set IP/Subnet \n"); + uint32_t UID = getuid(); + if (UID) { + mvwprintw(win, 9, 1, "Not running as root, configure as follows, where 'pi' is your username:\n"); + mvwprintw(win, 10, 1, "sudo ip tuntap add dev tun_nrf24 mode tun user pi multi_queue\n"); + mvwprintw(win, 11, 1, "sudo ifconfig tun_nrf24 10.10.2.2/24\n"); + } + refresh(); + sleep(10); + } + } else { diff --git a/examples/ncursesInt/RF24Gateway_ncursesInt.cpp b/examples/ncursesInt/RF24Gateway_ncursesInt.cpp index 3f87b5c..2bfddc7 100644 --- a/examples/ncursesInt/RF24Gateway_ncursesInt.cpp +++ b/examples/ncursesInt/RF24Gateway_ncursesInt.cpp @@ -559,7 +559,8 @@ void drawCfg(bool isConf) sleep(1); wattron(win, COLOR_PAIR(1)); - mvwprintw(win, 5, 1, isConf ? "IP Configuration\n" : "**Interface Not Configured:**\n"); + mvwprintw(win, 4, 1, isConf ? "IP Configuration\n" : "**Interface Not Configured:**\n"); + mvwprintw(win, 5, 1, "IP 10.10.2.2 and Subnet Mask 255.255.255.0 is default\n"); wattroff(win, COLOR_PAIR(1)); mvwprintw(win, 6, 1, "Enter IP Address: \n"); refresh(); @@ -574,7 +575,18 @@ void drawCfg(bool isConf) if (strlen(ip) >= 6 && strlen(mask) >= 7) { - gw.setIP(ip, mask); + if(gw.setIP(ip, mask) < 0){ + mvwprintw(win, 8, 1, "Unable to set IP/Subnet \n"); + uint32_t UID = getuid(); + if (UID) { + mvwprintw(win, 9, 1, "Not running as root, configure as follows, where 'pi' is your username:\n"); + mvwprintw(win, 10, 1, "sudo ip tuntap add dev tun_nrf24 mode tun user pi multi_queue\n"); + mvwprintw(win, 11, 1, "sudo ifconfig tun_nrf24 10.10.2.2/24\n"); + } + refresh(); + sleep(10); + } + } else {