X-Git-Url: https://git.sur5r.net/?p=gsconf;a=blobdiff_plain;f=shell_port.c;fp=shell_port.c;h=4e69179b58095fbc1e48779acfdb7a8c69d3b55e;hp=258d966a37a0db7363d0e30d1e42f025e2c3ff7d;hb=bdf95351d3563e4039ee2cc229452d78b3b6a612;hpb=fe06c7690b8f78c8939cc69669c9d04cc52b3293 diff --git a/shell_port.c b/shell_port.c index 258d966..4e69179 100644 --- a/shell_port.c +++ b/shell_port.c @@ -2,7 +2,7 @@ void shell_port(char ** argv, int elem) { - int n; + int n, i; if (elem == 1) { @@ -17,5 +17,36 @@ void shell_port(char ** argv, int elem) { settings.portStatistics[n].bytesOut ); } + } else if (strncmp(argv[1], "diag", 4) == 0) { + if (elem != 3) { + printf("Port needed\n"); + return; + } + + n = atoi(argv[2]); + + if (n < 1 | n > 5) { + printf("Invalid Port\n"); + return; + } + + password(); + i = gs105e_cableDiagnostics((char) n); + + printError(i); + if (i != 0) + return; + if (settings.portStatistics[n].cableError) { + printf("\033[91mError detected: %s in %i m\033[0m\n", + (settings.portStatistics[n].cableError == 0x03 ? "short circuit" : (settings.portStatistics[n].cableError == 0x02 ? "Only one pair Connected!": "damaged")), + settings.portStatistics[n].errorDist + ); + + }else{ + if (settings.portStatistics[n].errorDist == 0 ) + printf("\033[92mSeems no Cable is connected!?\033[0m\n"); + else + printf("\033[92mCable is fine!\033[0m\n", settings.portStatistics[n].errorDist); + } } }