Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Committer:
klauss
Date:
Mon Nov 24 18:57:54 2014 +0000
Revision:
75:bd3c647b860b
Parent:
74:81c47fff88a5
Child:
76:9f5f99dd895a
versao antes de mudar o pedido de invite pra funcionar como MEF

Who changed what in which revision?

UserRevisionLine numberNew contents of line
klauss 44:cc4996469404 1 #include "prompt.h"
klauss 45:c80574f24dc3 2
klauss 60:b4ec6beb3be3 3 bool flood_silence = false;
klauss 65:0b653cfe95db 4 bool delayed_flood = false;
klauss 63:0d95da692bb4 5
klauss 62:07e5bdc9f8f7 6 #define PVERSION 5 // Sempre atualizar a versao do prompt
klauss 19:ab2088e0dec6 7
klauss 58:af7e8788f106 8 char __debug_buf__[ DEBUGBUFSIZE ];
klauss 35:96885a7931f0 9 char * debug_buf = __debug_buf__;
klauss 58:af7e8788f106 10 char last_cmd[ DEBUGBUFSIZE ];
klauss 58:af7e8788f106 11 char tmp_cmd[ DEBUGBUFSIZE ] = "help";
klauss 30:8dfb6d8de53d 12 char last_debug_buf[ DEBUGBUFSIZE ] = "help";
klauss 60:b4ec6beb3be3 13
klauss 56:c64bcbaa621a 14 FILE *fip, *fmask, *fgate, *fport, *fsip, *fsport, *fext, *fserext, *fudpport, *ftcpport, *ftip, *ftport;
klauss 19:ab2088e0dec6 15 uint8_t bufptr = 0;
klauss 35:96885a7931f0 16 uint8_t last_bufptr = 0;
klauss 19:ab2088e0dec6 17
klauss 62:07e5bdc9f8f7 18 uint8_t xmemmatch(const uint8_t * s1, const uint8_t * s2, uint16_t size) {
klauss 19:ab2088e0dec6 19 while (size--) {
klauss 19:ab2088e0dec6 20 if (*s1++ != *s2++) return 0; /* does not match */
klauss 19:ab2088e0dec6 21 }
klauss 19:ab2088e0dec6 22 return 1; /* matches */
klauss 19:ab2088e0dec6 23 }
klauss 19:ab2088e0dec6 24
klauss 62:07e5bdc9f8f7 25 uint8_t xstrmatch(const uint8_t * s1, const uint8_t * s2) {
klauss 19:ab2088e0dec6 26 while (*s1) {
klauss 19:ab2088e0dec6 27 if (*s1++ != *s2++) return 0; /* does not match */
klauss 19:ab2088e0dec6 28 }
klauss 19:ab2088e0dec6 29 if ( *s2 == 0 )
klauss 19:ab2088e0dec6 30 return 1; /* matches */
klauss 19:ab2088e0dec6 31 else
klauss 19:ab2088e0dec6 32 return 0; /* does not match */
klauss 19:ab2088e0dec6 33 }
klauss 19:ab2088e0dec6 34
klauss 62:07e5bdc9f8f7 35 void xmemcpy(uint8_t * dest, const uint8_t * src, uint16_t size){
klauss 19:ab2088e0dec6 36 while (size--) *dest++ = *src++;
klauss 19:ab2088e0dec6 37 }
klauss 19:ab2088e0dec6 38
klauss 48:195c97f12e8e 39 int str2uint ( char * s, unsigned int * val ){
Cola 21:0bd688722e81 40 int i = 0;
Cola 21:0bd688722e81 41 unsigned int ret = 0;
Cola 21:0bd688722e81 42 for (;;) {
Cola 21:0bd688722e81 43 if (s[i] < '0') {
Cola 21:0bd688722e81 44 *val = ret;
Cola 21:0bd688722e81 45 return i;
Cola 21:0bd688722e81 46 }
Cola 21:0bd688722e81 47 ret *= 10;
Cola 21:0bd688722e81 48 ret += s[i] - '0';
Cola 21:0bd688722e81 49 i++;
Cola 21:0bd688722e81 50 }
Cola 21:0bd688722e81 51 }
klauss 19:ab2088e0dec6 52
klauss 38:af5ecd6997ab 53 // Print the content of a given file
klauss 38:af5ecd6997ab 54 void cat(const char* fname){
klauss 19:ab2088e0dec6 55 char buff[513];
klauss 19:ab2088e0dec6 56 int num;
klauss 19:ab2088e0dec6 57
klauss 19:ab2088e0dec6 58 FILE *fp = fopen(fname, "r");
klauss 19:ab2088e0dec6 59 if (fp == NULL) {
klauss 42:480335bdde12 60 if( debug_file ) pc.printf( "Failed to open %s", fname);
klauss 19:ab2088e0dec6 61 return;
klauss 19:ab2088e0dec6 62 }
klauss 19:ab2088e0dec6 63
klauss 42:480335bdde12 64 while( ( num = fread( buff, 1, 512, fp ) ) > 0 ){
klauss 42:480335bdde12 65 buff[ num ] = '\0';
klauss 42:480335bdde12 66 pc.printf( buff );
klauss 42:480335bdde12 67 if( from_eth ){
klauss 45:c80574f24dc3 68 if( tcp_session ) tcp_client.send_all( buff, strlen( buff ) );
klauss 45:c80574f24dc3 69
klauss 45:c80574f24dc3 70 else if( udp_request ){
klauss 45:c80574f24dc3 71 udp_server.sendTo( udp_client, buff, strlen( buff ) );
klauss 45:c80574f24dc3 72 }
klauss 42:480335bdde12 73 }
klauss 19:ab2088e0dec6 74 }
klauss 19:ab2088e0dec6 75 fclose(fp);
klauss 19:ab2088e0dec6 76 }
klauss 19:ab2088e0dec6 77
klauss 28:94aec56c6329 78 // operantion with the system config files
klauss 42:480335bdde12 79 void files( const char type ){
klauss 42:480335bdde12 80 // show files
klauss 42:480335bdde12 81 if (type == 's' ){
klauss 56:c64bcbaa621a 82 //pc.printf("\n\rHeader IP " );
klauss 56:c64bcbaa621a 83 pc.printf("Header IP " );
klauss 42:480335bdde12 84 if( from_eth ){
klauss 56:c64bcbaa621a 85 //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rHeader IP " );
klauss 56:c64bcbaa621a 86 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Header IP " );
klauss 45:c80574f24dc3 87 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 88
klauss 45:c80574f24dc3 89 else if( udp_request ){
klauss 45:c80574f24dc3 90 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 91 }
klauss 42:480335bdde12 92 }
klauss 19:ab2088e0dec6 93 cat("/qspi/myip.txt");
klauss 42:480335bdde12 94
klauss 56:c64bcbaa621a 95 //pc.printf("\n\rHeader ext ");
klauss 56:c64bcbaa621a 96 pc.printf("Header ext ");
klauss 42:480335bdde12 97 if( from_eth ){
klauss 56:c64bcbaa621a 98 //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rHeader ext " );
klauss 56:c64bcbaa621a 99 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Header ext " );
klauss 45:c80574f24dc3 100 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 101
klauss 45:c80574f24dc3 102 else if( udp_request ){
klauss 45:c80574f24dc3 103 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 104 }
klauss 42:480335bdde12 105 }
klauss 28:94aec56c6329 106 cat("/qspi/myext.txt");
klauss 42:480335bdde12 107
klauss 56:c64bcbaa621a 108 //pc.printf("\n\rHeader port ");
klauss 56:c64bcbaa621a 109 pc.printf("Header port ");
klauss 42:480335bdde12 110 if( from_eth ){
klauss 56:c64bcbaa621a 111 //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rHeader port " );
klauss 56:c64bcbaa621a 112 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Header port " );
klauss 45:c80574f24dc3 113 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 114
klauss 45:c80574f24dc3 115 else if( udp_request ){
klauss 45:c80574f24dc3 116 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 117 }
klauss 42:480335bdde12 118 }
klauss 28:94aec56c6329 119 cat("/qspi/mysipport.txt");
klauss 28:94aec56c6329 120
klauss 56:c64bcbaa621a 121 //pc.printf("\n\rServer IP ");
klauss 56:c64bcbaa621a 122 pc.printf("Server IP ");
klauss 42:480335bdde12 123 if( from_eth ){
klauss 56:c64bcbaa621a 124 //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rServer IP " );
klauss 56:c64bcbaa621a 125 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Server IP " );
klauss 45:c80574f24dc3 126 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 127
klauss 45:c80574f24dc3 128 else if( udp_request ){
klauss 45:c80574f24dc3 129 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 130 }
klauss 42:480335bdde12 131 }
klauss 28:94aec56c6329 132 cat("/qspi/serverip.txt");
klauss 42:480335bdde12 133
klauss 56:c64bcbaa621a 134 //pc.printf("\n\rServer ext ");
klauss 56:c64bcbaa621a 135 pc.printf("Server ext ");
klauss 42:480335bdde12 136 if( from_eth ){
klauss 56:c64bcbaa621a 137 //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rServer ext " );
klauss 56:c64bcbaa621a 138 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Server ext " );
klauss 45:c80574f24dc3 139 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 140
klauss 45:c80574f24dc3 141 else if( udp_request ){
klauss 45:c80574f24dc3 142 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 143 }
klauss 42:480335bdde12 144 }
klauss 28:94aec56c6329 145 cat("/qspi/peerext.txt");
klauss 42:480335bdde12 146
klauss 56:c64bcbaa621a 147 //pc.printf("\n\rServer port ");
klauss 56:c64bcbaa621a 148 pc.printf("Server port ");
klauss 42:480335bdde12 149 if( from_eth ){
klauss 56:c64bcbaa621a 150 //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rServer port " );
klauss 56:c64bcbaa621a 151 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Server port " );
klauss 45:c80574f24dc3 152 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 153
klauss 45:c80574f24dc3 154 else if( udp_request ){
klauss 45:c80574f24dc3 155 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 156 }
klauss 42:480335bdde12 157 }
klauss 28:94aec56c6329 158 cat("/qspi/serverport.txt");
klauss 28:94aec56c6329 159
klauss 56:c64bcbaa621a 160 //pc.printf("\n\rMascara de rede ");
klauss 56:c64bcbaa621a 161 pc.printf("Mascara de rede ");
klauss 42:480335bdde12 162 if( from_eth ){
klauss 56:c64bcbaa621a 163 //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rMascara de rede " );
klauss 56:c64bcbaa621a 164 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Mascara de rede " );
klauss 45:c80574f24dc3 165 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 166
klauss 45:c80574f24dc3 167 else if( udp_request ){
klauss 45:c80574f24dc3 168 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 169 }
klauss 42:480335bdde12 170 }
klauss 19:ab2088e0dec6 171 cat("/qspi/mymask.txt");
klauss 42:480335bdde12 172
klauss 56:c64bcbaa621a 173 //pc.printf("\n\rGateway IP ");
klauss 56:c64bcbaa621a 174 pc.printf("Gateway IP ");
klauss 42:480335bdde12 175 if( from_eth ){
klauss 56:c64bcbaa621a 176 //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rGateway IP " );
klauss 56:c64bcbaa621a 177 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Gateway IP " );
klauss 45:c80574f24dc3 178 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 179
klauss 45:c80574f24dc3 180 else if( udp_request ){
klauss 45:c80574f24dc3 181 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 182 }
klauss 42:480335bdde12 183 }
klauss 19:ab2088e0dec6 184 cat("/qspi/mygate.txt");
klauss 43:455522f98de5 185
klauss 56:c64bcbaa621a 186 //pc.printf("\n\rUDP Port ");
klauss 56:c64bcbaa621a 187 pc.printf("UDP Port ");
klauss 45:c80574f24dc3 188 if( from_eth ){
klauss 56:c64bcbaa621a 189 //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rUDP Port " );
klauss 56:c64bcbaa621a 190 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "UDP Port " );
klauss 45:c80574f24dc3 191 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 192
klauss 45:c80574f24dc3 193 else if( udp_request ){
klauss 45:c80574f24dc3 194 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 195 }
klauss 45:c80574f24dc3 196 }
klauss 45:c80574f24dc3 197 cat("/qspi/udpport.txt");
klauss 45:c80574f24dc3 198
klauss 56:c64bcbaa621a 199 //pc.printf("\n\rTCP Port ");
klauss 56:c64bcbaa621a 200 pc.printf("TCP Port ");
klauss 45:c80574f24dc3 201 if( from_eth ){
klauss 56:c64bcbaa621a 202 //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rTCP Port " );
klauss 56:c64bcbaa621a 203 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "TCP Port " );
klauss 45:c80574f24dc3 204 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 205
klauss 45:c80574f24dc3 206 else if( udp_request ){
klauss 45:c80574f24dc3 207 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 208 }
klauss 45:c80574f24dc3 209 }
klauss 45:c80574f24dc3 210 cat("/qspi/tcpport.txt");
klauss 45:c80574f24dc3 211
klauss 56:c64bcbaa621a 212 //pc.printf("\n\rTelemetry Server IP ");
klauss 56:c64bcbaa621a 213 pc.printf("Telemetry Server IP ");
klauss 56:c64bcbaa621a 214 if( from_eth ){
klauss 56:c64bcbaa621a 215 //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rTelemetry Server IP " );
klauss 56:c64bcbaa621a 216 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Telemetry Server IP " );
klauss 56:c64bcbaa621a 217 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 56:c64bcbaa621a 218
klauss 56:c64bcbaa621a 219 else if( udp_request ){
klauss 56:c64bcbaa621a 220 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 56:c64bcbaa621a 221 }
klauss 56:c64bcbaa621a 222 }
klauss 56:c64bcbaa621a 223 cat("/qspi/telemetry_ip.txt");
klauss 56:c64bcbaa621a 224
klauss 56:c64bcbaa621a 225 //pc.printf("\n\rTelemetry Server Port ");
klauss 56:c64bcbaa621a 226 pc.printf("Telemetry Server Port ");
klauss 56:c64bcbaa621a 227 if( from_eth ){
klauss 56:c64bcbaa621a 228 //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rTelemetry Server Port " );
klauss 56:c64bcbaa621a 229 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Telemetry Server Port " );
klauss 56:c64bcbaa621a 230 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 56:c64bcbaa621a 231
klauss 56:c64bcbaa621a 232 else if( udp_request ){
klauss 56:c64bcbaa621a 233 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 56:c64bcbaa621a 234 }
klauss 56:c64bcbaa621a 235 }
klauss 56:c64bcbaa621a 236 cat("/qspi/telemetry_port.txt");
klauss 56:c64bcbaa621a 237
klauss 58:af7e8788f106 238 strcpy( last_cmd, tmp_cmd );
klauss 67:cdedc64d9921 239 //debug_buf[ 0 ] = 0;
klauss 67:cdedc64d9921 240 //bufptr = 0;
klauss 43:455522f98de5 241 bufptr = 0;
klauss 67:cdedc64d9921 242 for( uint8_t i = 0; i < DEBUGBUFSIZE; i++ ) debug_buf[ i ] = 0;
klauss 62:07e5bdc9f8f7 243 if( tcp_session ) tcp_client.send_all( "\n\r> " , strlen( "\n\r> " ) );
klauss 48:195c97f12e8e 244
klauss 48:195c97f12e8e 245 else if( udp_request ){
klauss 62:07e5bdc9f8f7 246 udp_server.sendTo( udp_client, "\n\r> ", strlen( "\n\r> " ) );
klauss 48:195c97f12e8e 247 }
klauss 19:ab2088e0dec6 248 }
klauss 19:ab2088e0dec6 249
klauss 56:c64bcbaa621a 250 if (type == 'c' ){
klauss 56:c64bcbaa621a 251 // close all files
klauss 28:94aec56c6329 252 fclose( fip );
klauss 28:94aec56c6329 253 fclose( fmask );
klauss 28:94aec56c6329 254 fclose( fgate );
klauss 28:94aec56c6329 255 fclose( fport );
klauss 28:94aec56c6329 256 fclose( fsip );
klauss 28:94aec56c6329 257 fclose( fsport );
klauss 28:94aec56c6329 258 fclose( fext );
klauss 28:94aec56c6329 259 fclose( fserext );
klauss 45:c80574f24dc3 260 fclose( fudpport );
klauss 45:c80574f24dc3 261 fclose( ftcpport );
klauss 19:ab2088e0dec6 262 }
klauss 19:ab2088e0dec6 263
klauss 56:c64bcbaa621a 264 if (type == 'i' ){
klauss 56:c64bcbaa621a 265 // Check if files exist, if not create the files
klauss 33:735fd60e96d8 266 bool exists = true;
klauss 19:ab2088e0dec6 267 fip = fopen("/qspi/myip.txt", "r");
klauss 56:c64bcbaa621a 268 if( fip == NULL){
klauss 56:c64bcbaa621a 269 set_ip( __MY_IP__ );
klauss 33:735fd60e96d8 270 exists = false;
klauss 19:ab2088e0dec6 271 }
klauss 28:94aec56c6329 272
klauss 28:94aec56c6329 273 fserext = fopen("/qspi/myext.txt", "r");
klauss 56:c64bcbaa621a 274 if( fserext == NULL ){
klauss 56:c64bcbaa621a 275 set_header_ext( __MY_EXT__ );
klauss 56:c64bcbaa621a 276 exists = false;
klauss 28:94aec56c6329 277 }
klauss 56:c64bcbaa621a 278
klauss 28:94aec56c6329 279 fport = fopen("/qspi/mysipport.txt", "r");
klauss 28:94aec56c6329 280 if (fport == NULL){
klauss 56:c64bcbaa621a 281 set_header_sip_port( __MY_PORT__ );
klauss 33:735fd60e96d8 282 exists = false;
klauss 28:94aec56c6329 283 }
klauss 28:94aec56c6329 284 fsip = fopen("/qspi/serverip.txt", "r");
klauss 28:94aec56c6329 285 if (fsip == NULL){
klauss 56:c64bcbaa621a 286 set_server_ip( __SERVER_IP__ );
klauss 33:735fd60e96d8 287 exists = false;
klauss 28:94aec56c6329 288 }
klauss 28:94aec56c6329 289
klauss 28:94aec56c6329 290 fext = fopen("/qspi/peerext.txt", "r");
klauss 28:94aec56c6329 291 if ( fext == NULL ){
klauss 56:c64bcbaa621a 292 set_server_ext( __PEER_EXT__ );
klauss 33:735fd60e96d8 293 exists = false;
klauss 28:94aec56c6329 294 }
klauss 28:94aec56c6329 295 fsport = fopen("/qspi/serverport.txt", "r");
klauss 28:94aec56c6329 296 if (fsport == NULL){
klauss 56:c64bcbaa621a 297 set_server_port( __SERVER_PORT__ );
klauss 33:735fd60e96d8 298 exists = false;
klauss 28:94aec56c6329 299 }
klauss 28:94aec56c6329 300
klauss 19:ab2088e0dec6 301 fmask = fopen("/qspi/mymask.txt", "r");
klauss 19:ab2088e0dec6 302 if (fmask == NULL){
klauss 56:c64bcbaa621a 303 set_mask( __MY_MSK__ );
klauss 33:735fd60e96d8 304 exists = false;
klauss 19:ab2088e0dec6 305 }
klauss 19:ab2088e0dec6 306 fgate = fopen("/qspi/mygateway.txt", "r");
klauss 19:ab2088e0dec6 307 if (fgate == NULL){
klauss 56:c64bcbaa621a 308 set_gateway( __MY_GTW__ );
klauss 45:c80574f24dc3 309 exists = false;
klauss 45:c80574f24dc3 310 }
klauss 45:c80574f24dc3 311 fudpport = fopen("/qspi/udpport.txt", "r" );
klauss 45:c80574f24dc3 312 if( fudpport == NULL ){
klauss 56:c64bcbaa621a 313 set_udp_port_listener( UDP_PORT_LISTENER );
klauss 45:c80574f24dc3 314 exists = false;
klauss 45:c80574f24dc3 315 }
klauss 45:c80574f24dc3 316 ftcpport = fopen("/qspi/tcpport.txt", "r" );
klauss 45:c80574f24dc3 317 if( ftcpport == NULL ){
klauss 56:c64bcbaa621a 318 set_tcp_port_listener( TCP_PORT_LISTENER );
klauss 33:735fd60e96d8 319 exists = false;
klauss 19:ab2088e0dec6 320 }
klauss 56:c64bcbaa621a 321
klauss 56:c64bcbaa621a 322 ftip = fopen("/qspi/telemetry_ip.txt", "r" );
klauss 56:c64bcbaa621a 323 if( ftip == NULL ){
klauss 56:c64bcbaa621a 324 set_telemetry_ip( __TELEMETRY_SERVER_IP__ );
klauss 56:c64bcbaa621a 325 exists = false;
klauss 56:c64bcbaa621a 326 }
klauss 56:c64bcbaa621a 327
klauss 56:c64bcbaa621a 328 ftport = fopen("/qspi/telemetry_port.txt", "r" );
klauss 56:c64bcbaa621a 329 if( ftport == NULL ){
klauss 56:c64bcbaa621a 330 set_telemetry_port( __TELEMETRY_SERVER_PORT__ );
klauss 56:c64bcbaa621a 331 exists = false;
klauss 56:c64bcbaa621a 332 }
klauss 56:c64bcbaa621a 333
klauss 44:cc4996469404 334 if( !exists ){
klauss 44:cc4996469404 335 pc.printf("\n\rDefault configurations set!\n\r");
klauss 44:cc4996469404 336 if( from_eth ){
klauss 44:cc4996469404 337 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Default configurations set!\n\r");
klauss 44:cc4996469404 338 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 44:cc4996469404 339 if( tcp_session ){
klauss 45:c80574f24dc3 340 tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 67:cdedc64d9921 341 //debug_buf[ 0 ] = 0;
klauss 67:cdedc64d9921 342 //bufptr = 0;
klauss 44:cc4996469404 343 bufptr = 0;
klauss 67:cdedc64d9921 344 for( uint8_t i = 0; i < DEBUGBUFSIZE; i++ ) debug_buf[ i ] = 0;
klauss 44:cc4996469404 345 }
klauss 44:cc4996469404 346 }
klauss 44:cc4996469404 347 }
klauss 19:ab2088e0dec6 348 }
klauss 19:ab2088e0dec6 349
klauss 56:c64bcbaa621a 350 if (type == 'r' ){
klauss 56:c64bcbaa621a 351 // Just open for read
klauss 19:ab2088e0dec6 352 fip = fopen("/qspi/myip.txt", "r");
klauss 19:ab2088e0dec6 353 fmask = fopen("/qspi/mymask.txt", "r");
klauss 19:ab2088e0dec6 354 fgate = fopen("/qspi/mygateway.txt", "r");
klauss 19:ab2088e0dec6 355 fport = fopen("/qspi/mysipport.txt", "r");
klauss 19:ab2088e0dec6 356 fsip = fopen("/qspi/serverip.txt", "r");
klauss 19:ab2088e0dec6 357 fsport = fopen("/qspi/serverport.txt", "r");
klauss 28:94aec56c6329 358 fext = fopen( "/qspi/myext.txt", "r" );
klauss 28:94aec56c6329 359 fserext = fopen( "/qspi/peerext.txt", "r" );
klauss 45:c80574f24dc3 360 fudpport = fopen( "/qspi/udpport.txt", "r" );
klauss 45:c80574f24dc3 361 ftcpport = fopen( "/qspi/tcpport.txt", "r" );
klauss 56:c64bcbaa621a 362 ftip = fopen("/qspi/telemetry_ip.txt", "r" );
klauss 56:c64bcbaa621a 363 ftport = fopen("/qspi/telemetry_port.txt", "r" );
klauss 19:ab2088e0dec6 364 }
klauss 19:ab2088e0dec6 365
klauss 55:2f5e7374af9d 366 if( type == 'w'){
klauss 55:2f5e7374af9d 367 // Create and write the default configs
klauss 56:c64bcbaa621a 368
klauss 56:c64bcbaa621a 369 set_ip( __MY_IP__ );
klauss 19:ab2088e0dec6 370
klauss 55:2f5e7374af9d 371 set_header_sip_port( __MY_PORT__ );
klauss 56:c64bcbaa621a 372
klauss 55:2f5e7374af9d 373 set_header_ext( __MY_EXT__ );
klauss 28:94aec56c6329 374
klauss 55:2f5e7374af9d 375 set_server_ip( __SERVER_IP__ );
klauss 56:c64bcbaa621a 376
klauss 55:2f5e7374af9d 377 set_server_ext( __PEER_EXT__ );
klauss 56:c64bcbaa621a 378
klauss 55:2f5e7374af9d 379 set_server_port( __SERVER_PORT__ );
klauss 56:c64bcbaa621a 380
klauss 56:c64bcbaa621a 381 set_mask( __MY_MSK__ );
klauss 28:94aec56c6329 382
klauss 55:2f5e7374af9d 383 set_gateway( __MY_GTW__ );
klauss 56:c64bcbaa621a 384
klauss 56:c64bcbaa621a 385 set_udp_port_listener( UDP_PORT_LISTENER );
klauss 45:c80574f24dc3 386
klauss 56:c64bcbaa621a 387 set_tcp_port_listener( TCP_PORT_LISTENER );
klauss 56:c64bcbaa621a 388
klauss 56:c64bcbaa621a 389 set_telemetry_ip( __TELEMETRY_SERVER_IP__ );
klauss 56:c64bcbaa621a 390
klauss 56:c64bcbaa621a 391 set_telemetry_port( __TELEMETRY_SERVER_PORT__ );
klauss 19:ab2088e0dec6 392
klauss 58:af7e8788f106 393 strcpy( last_cmd, tmp_cmd );
klauss 58:af7e8788f106 394
klauss 44:cc4996469404 395 pc.printf("\n\rDefault configurations set!\n\r");
klauss 44:cc4996469404 396 if( from_eth ){
klauss 44:cc4996469404 397 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rDefault configurations set!\n\r");
klauss 44:cc4996469404 398 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 44:cc4996469404 399 if( tcp_session ){
klauss 45:c80574f24dc3 400 tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 401 }else if( udp_request ){
klauss 45:c80574f24dc3 402 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 44:cc4996469404 403 }
klauss 67:cdedc64d9921 404 //debug_buf[ 0 ] = 0;
klauss 67:cdedc64d9921 405 //bufptr = 0;
klauss 45:c80574f24dc3 406 bufptr = 0;
klauss 67:cdedc64d9921 407 for( uint8_t i = 0; i < DEBUGBUFSIZE; i++ ) debug_buf[ i ] = 0;
klauss 44:cc4996469404 408 }
klauss 19:ab2088e0dec6 409 }
klauss 50:d9b6577a70f5 410
klauss 56:c64bcbaa621a 411 if (type == 'e'){
klauss 56:c64bcbaa621a 412 //Erase configs
klauss 50:d9b6577a70f5 413 fip = fopen("/qspi/myip.txt", "w");
klauss 50:d9b6577a70f5 414 fmask = fopen("/qspi/mymask.txt", "w");
klauss 50:d9b6577a70f5 415 fgate = fopen("/qspi/mygateway.txt", "w");
klauss 50:d9b6577a70f5 416 fport = fopen("/qspi/mysipport.txt", "w");
klauss 50:d9b6577a70f5 417 fsip = fopen("/qspi/serverip.txt", "w");
klauss 50:d9b6577a70f5 418 fsport = fopen("/qspi/serverport.txt", "w");
klauss 50:d9b6577a70f5 419 fext = fopen( "/qspi/myext.txt", "w" );
klauss 50:d9b6577a70f5 420 fserext = fopen( "/qspi/peerext.txt", "w" );
klauss 50:d9b6577a70f5 421 fudpport = fopen( "/qspi/udpport.txt", "w" );
klauss 50:d9b6577a70f5 422 ftcpport = fopen( "/qspi/tcpport.txt", "w" );
klauss 56:c64bcbaa621a 423 ftip = fopen("/qspi/telemetry_ip.txt", "w" );
klauss 56:c64bcbaa621a 424 ftport = fopen("/qspi/telemetry_port.txt", "w" );
klauss 50:d9b6577a70f5 425
klauss 56:c64bcbaa621a 426 //FIXME verificar se deveria colocar tudo para %s
klauss 56:c64bcbaa621a 427 fprintf( fip, "%s\n\r", "" );
klauss 60:b4ec6beb3be3 428 fprintf( fport, "%i\n\r", 0 );
klauss 60:b4ec6beb3be3 429 fprintf( fext, "%i\n\r", 0 );
klauss 50:d9b6577a70f5 430
klauss 56:c64bcbaa621a 431 fprintf( fsip, "%s\n\r", "" );
klauss 60:b4ec6beb3be3 432 fprintf( fserext, "%i\n\r", 0 );
klauss 60:b4ec6beb3be3 433 fprintf( fsport, "%i\n\r", 0 );
klauss 56:c64bcbaa621a 434
klauss 56:c64bcbaa621a 435 fprintf( fmask, "%s\n\r","" );
klauss 56:c64bcbaa621a 436 fprintf( fgate, "%s\n\r", "" );
klauss 50:d9b6577a70f5 437
klauss 60:b4ec6beb3be3 438 fprintf( fudpport, "%i\n\r", 0 );
klauss 60:b4ec6beb3be3 439 fprintf( ftcpport, "%i\n\r", 0 );
klauss 50:d9b6577a70f5 440
klauss 56:c64bcbaa621a 441 fprintf( ftip, "%s\n\r","" );
klauss 60:b4ec6beb3be3 442 fprintf( ftport, "%i\n\r",0 );
klauss 56:c64bcbaa621a 443
klauss 50:d9b6577a70f5 444 files('c');
klauss 50:d9b6577a70f5 445
klauss 50:d9b6577a70f5 446 pc.printf("\n\rErased configurations set!\n\r");
klauss 50:d9b6577a70f5 447 if( from_eth ){
klauss 50:d9b6577a70f5 448 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rErased configurations set!\n\r");
klauss 50:d9b6577a70f5 449 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 50:d9b6577a70f5 450 if( tcp_session ){
klauss 50:d9b6577a70f5 451 tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 50:d9b6577a70f5 452 }else if( udp_request ){
klauss 50:d9b6577a70f5 453 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 50:d9b6577a70f5 454 }
klauss 67:cdedc64d9921 455 //debug_buf[ 0 ] = 0;
klauss 67:cdedc64d9921 456 //bufptr = 0;
klauss 50:d9b6577a70f5 457 bufptr = 0;
klauss 67:cdedc64d9921 458 for( uint8_t i = 0; i < DEBUGBUFSIZE; i++ ) debug_buf[ i ] = 0;
klauss 50:d9b6577a70f5 459 }
klauss 50:d9b6577a70f5 460 }
klauss 19:ab2088e0dec6 461 }
klauss 26:725cbbedadd5 462 void init_fsystem(){
klauss 26:725cbbedadd5 463 // init file system and check if files exist
klauss 26:725cbbedadd5 464 if (!qspifs.isformatted()) {
klauss 26:725cbbedadd5 465 qspifs.format();
klauss 44:cc4996469404 466 pc.printf("\n\rFile system configured!!\n\r");
klauss 26:725cbbedadd5 467 }
klauss 26:725cbbedadd5 468 files('i'); // check if the files are created
klauss 26:725cbbedadd5 469 files('c');
klauss 44:cc4996469404 470 pc.printf("\n\r*******File System Ready*******\n\r");
klauss 43:455522f98de5 471 }
klauss 43:455522f98de5 472
klauss 43:455522f98de5 473 void init_prompt(){
klauss 45:c80574f24dc3 474 tcp_server.bind( TCP_PORT_LISTENER );
klauss 45:c80574f24dc3 475 tcp_server.listen();
klauss 53:bb492a8f115a 476 //tcp_timer.start();
klauss 45:c80574f24dc3 477 tcp_server.set_blocking( false, 1 );
klauss 45:c80574f24dc3 478
klauss 45:c80574f24dc3 479 udp_server.set_blocking( false, 2 );
klauss 45:c80574f24dc3 480 udp_server.bind( UDP_PORT_LISTENER );
klauss 45:c80574f24dc3 481
klauss 43:455522f98de5 482 pc.printf("*******Prompt eth Ready*******\n\r");
klauss 19:ab2088e0dec6 483 }
klauss 19:ab2088e0dec6 484
klauss 28:94aec56c6329 485 // main prompt process
klauss 48:195c97f12e8e 486 char * prompt_process( char * msg_from_cb ){
klauss 28:94aec56c6329 487 //FIXME dar flush na serial
klauss 19:ab2088e0dec6 488 volatile char b = 0;
klauss 19:ab2088e0dec6 489 static uint8_t bufret = 0;
klauss 30:8dfb6d8de53d 490 static Timer flood_timeout;
klauss 60:b4ec6beb3be3 491 static Timer flood_silence_timer;
klauss 60:b4ec6beb3be3 492 static uint8_t id_msg = 0x10;
klauss 60:b4ec6beb3be3 493 static int start_ext, end_ext, ext_count;
klauss 36:728498a78e1e 494 bool miss_match = true;
klauss 57:78f7191a8b69 495 char eth_buffer[ __PROMPT_ETH_BUFFER_SIZE__ ];
klauss 60:b4ec6beb3be3 496 uint8_t write_buffer[ __CB_BUFFER_SIZE__ ];
klauss 57:78f7191a8b69 497
klauss 45:c80574f24dc3 498 if( flood_timeout.read() > 60 ){
klauss 45:c80574f24dc3 499 pflood = 0;
klauss 45:c80574f24dc3 500 flood_timeout.stop();
klauss 45:c80574f24dc3 501 flood_timeout.reset();
klauss 45:c80574f24dc3 502 }
klauss 53:bb492a8f115a 503 if( tcp_timer.read() >= TCP_IDLE_MAX_TIME ){
klauss 53:bb492a8f115a 504 tcp_timer.stop();
klauss 53:bb492a8f115a 505 tcp_timer.reset();
klauss 53:bb492a8f115a 506 tcp_session = false;
klauss 53:bb492a8f115a 507 debug_buf = __debug_buf__;
klauss 53:bb492a8f115a 508 bufptr = last_bufptr;
klauss 53:bb492a8f115a 509 bufret = 0;
klauss 53:bb492a8f115a 510 from_eth = false;
klauss 53:bb492a8f115a 511 tcp_client.close();
klauss 53:bb492a8f115a 512 return( NULL );
klauss 53:bb492a8f115a 513 }
klauss 48:195c97f12e8e 514 if( !tcp_server.accept( tcp_client ) ){
klauss 48:195c97f12e8e 515 tcp_session = true;
klauss 53:bb492a8f115a 516 tcp_timer.start();
klauss 48:195c97f12e8e 517 last_bufptr = bufptr;
klauss 53:bb492a8f115a 518 eth_buffer[ 0 ] = 0;
klauss 48:195c97f12e8e 519 bufret = 0;
klauss 48:195c97f12e8e 520 }
klauss 48:195c97f12e8e 521 wdt.kick();
klauss 53:bb492a8f115a 522 if( tcp_session ){
klauss 57:78f7191a8b69 523 //if( !( (int)tcp_timer.read_ms() % 100 ) ){
klauss 53:bb492a8f115a 524 tcp_client.set_blocking( false, 1 );
klauss 53:bb492a8f115a 525 int n = tcp_client.receive( eth_buffer, sizeof( eth_buffer ) - 1 );
klauss 53:bb492a8f115a 526 if( n > 0 ){
klauss 48:195c97f12e8e 527 tcp_timer.reset();
klauss 53:bb492a8f115a 528
klauss 53:bb492a8f115a 529 if( ( n > 2 ) && ( eth_buffer[ n - 2 ] == '\r' ) ) eth_buffer[ n - 2 ] = 0;
klauss 53:bb492a8f115a 530
klauss 53:bb492a8f115a 531 if( ( n > 1 ) && ( eth_buffer[ n - 1 ] == '\n' ) ) eth_buffer[ n - 1 ] = 0;
klauss 53:bb492a8f115a 532
klauss 53:bb492a8f115a 533 if( ( n == 1 ) && eth_buffer[ 0 ] == 0x0A ) strcpy( eth_buffer, "\r" );
klauss 53:bb492a8f115a 534
klauss 53:bb492a8f115a 535 //if( eth_buffer[ 0 ] == '\r' || eth_buffer[ 1 ] == '\n' || eth_buffer[ 2 ] == 'r' || eth_buffer[ 2 ] == '\n' ) strcpy( eth_buffer, "\r" );
klauss 62:07e5bdc9f8f7 536
klauss 53:bb492a8f115a 537 bufptr = strlen( eth_buffer );
klauss 53:bb492a8f115a 538 debug_buf = eth_buffer;
klauss 53:bb492a8f115a 539 from_eth = true;
klauss 53:bb492a8f115a 540 bufret = 1;
klauss 53:bb492a8f115a 541
klauss 53:bb492a8f115a 542 if( !( strcmp( eth_buffer, "quit" ) ) ){
klauss 53:bb492a8f115a 543 tcp_timer.reset();
klauss 53:bb492a8f115a 544 debug_buf = __debug_buf__;
klauss 53:bb492a8f115a 545 bufptr = last_bufptr;
klauss 53:bb492a8f115a 546 from_eth = false;
klauss 53:bb492a8f115a 547 tcp_session = false;
klauss 53:bb492a8f115a 548 tcp_client.close();
klauss 53:bb492a8f115a 549 bufret = 0;
klauss 53:bb492a8f115a 550 return( NULL );
klauss 53:bb492a8f115a 551 }
klauss 53:bb492a8f115a 552 }else{
klauss 48:195c97f12e8e 553 debug_buf = __debug_buf__;
klauss 48:195c97f12e8e 554 bufptr = last_bufptr;
klauss 57:78f7191a8b69 555 from_eth = false;
klauss 45:c80574f24dc3 556 }
klauss 57:78f7191a8b69 557 //}
klauss 53:bb492a8f115a 558 }
klauss 57:78f7191a8b69 559
klauss 53:bb492a8f115a 560 if( !from_eth ){
klauss 57:78f7191a8b69 561 if( pc.readable() ){
klauss 53:bb492a8f115a 562 // imput do teclado
klauss 53:bb492a8f115a 563 b = pc.getc();
klauss 53:bb492a8f115a 564 if( b == 0x0D ){ // enter
klauss 53:bb492a8f115a 565 bufret = 1;
klauss 53:bb492a8f115a 566 }else{
klauss 53:bb492a8f115a 567 pc.putc( b );
klauss 53:bb492a8f115a 568 if( b == 0x08 || b == 0x7F ){ // BS | DEL
klauss 53:bb492a8f115a 569 if( bufptr > 0 ) debug_buf[ --bufptr ] = 0;
klauss 53:bb492a8f115a 570 }else if( b == 0x09 ){
klauss 53:bb492a8f115a 571 // ignore tab
klauss 53:bb492a8f115a 572 }else{
klauss 53:bb492a8f115a 573 debug_buf[bufptr] = b;
klauss 53:bb492a8f115a 574 bufptr++;
klauss 42:480335bdde12 575 }
klauss 31:bb5fb28a77df 576 }
klauss 53:bb492a8f115a 577 }
klauss 48:195c97f12e8e 578 }
klauss 53:bb492a8f115a 579
klauss 48:195c97f12e8e 580 if( msg_from_cb ){
klauss 48:195c97f12e8e 581 if( tcp_session ){
klauss 48:195c97f12e8e 582 tcp_client.send_all( msg_from_cb, strlen( msg_from_cb ) );
klauss 48:195c97f12e8e 583 }else if( udp_request ){
klauss 48:195c97f12e8e 584 udp_server.sendTo( udp_client, msg_from_cb, strlen( msg_from_cb ) );
klauss 48:195c97f12e8e 585 }
klauss 48:195c97f12e8e 586 pc.printf( "\n\r%s\n\r", msg_from_cb );
klauss 45:c80574f24dc3 587 }
klauss 60:b4ec6beb3be3 588
klauss 60:b4ec6beb3be3 589 if( flood_silence ){
klauss 60:b4ec6beb3be3 590 if( flood_silence_timer.read_ms() > 250 ){
klauss 60:b4ec6beb3be3 591 char cmd[ 16 ] = "flood off";
klauss 60:b4ec6beb3be3 592 int str_end = strlen( cmd );
klauss 60:b4ec6beb3be3 593 cmd[ str_end ] = 0x0D;
klauss 60:b4ec6beb3be3 594 cmd[ str_end + 1 ] = 0x00;
klauss 60:b4ec6beb3be3 595
klauss 60:b4ec6beb3be3 596 int port = convert_ext_to_port( ext_count );
klauss 74:81c47fff88a5 597 send2callboxes( __build_cb_package__( ext_count, port, __PROMPT__, cmd, id_msg++, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
klauss 60:b4ec6beb3be3 598 pc.printf("\r\nSilence sent to ext=%d port=%d", ext_count, port );
klauss 60:b4ec6beb3be3 599
klauss 60:b4ec6beb3be3 600 if( tcp_session ){
klauss 60:b4ec6beb3be3 601 snprintf( eth_buffer, __PROMPT_ETH_BUFFER_SIZE__, "\r\nSilence sent to ext=%d port=%d", ext_count, port );
klauss 60:b4ec6beb3be3 602 //eth_buffer[ strlen( eth_buffer ) - 1 ] = '\0';
klauss 60:b4ec6beb3be3 603
klauss 60:b4ec6beb3be3 604 tcp_client.send_all( eth_buffer, strlen( eth_buffer ) );
klauss 60:b4ec6beb3be3 605 }else if( udp_request ){
klauss 60:b4ec6beb3be3 606 snprintf( eth_buffer, __PROMPT_ETH_BUFFER_SIZE__, "\r\nSilence sent to ext=%d port=%d", ext_count, port );
klauss 60:b4ec6beb3be3 607 //eth_buffer[ strlen( eth_buffer ) - 1 ] = '\0';
klauss 60:b4ec6beb3be3 608
klauss 60:b4ec6beb3be3 609 udp_server.sendTo( udp_client, eth_buffer, strlen( eth_buffer ) );
klauss 60:b4ec6beb3be3 610 }
klauss 60:b4ec6beb3be3 611 flood_silence_timer.reset();
klauss 60:b4ec6beb3be3 612
klauss 60:b4ec6beb3be3 613 if( ++ext_count > end_ext ){
klauss 60:b4ec6beb3be3 614 flood_silence = false;
klauss 60:b4ec6beb3be3 615 flood_silence_timer.stop();
klauss 60:b4ec6beb3be3 616 flood_silence_timer.reset();
klauss 60:b4ec6beb3be3 617
klauss 60:b4ec6beb3be3 618 pc.printf("\r\n> " );
klauss 60:b4ec6beb3be3 619 if( tcp_session ){
klauss 60:b4ec6beb3be3 620 snprintf( eth_buffer, __PROMPT_ETH_BUFFER_SIZE__, "\r\n> " );
klauss 60:b4ec6beb3be3 621 tcp_client.send_all( eth_buffer, strlen( eth_buffer ) );
klauss 60:b4ec6beb3be3 622 }else if( udp_request ){
klauss 60:b4ec6beb3be3 623 snprintf( eth_buffer, __PROMPT_ETH_BUFFER_SIZE__, "\r\n> " );
klauss 60:b4ec6beb3be3 624 udp_server.sendTo( udp_client, eth_buffer, strlen( eth_buffer ) );
klauss 60:b4ec6beb3be3 625 }
klauss 60:b4ec6beb3be3 626 }
klauss 60:b4ec6beb3be3 627 }
klauss 60:b4ec6beb3be3 628 }
klauss 65:0b653cfe95db 629
klauss 65:0b653cfe95db 630 if( delayed_flood ){
klauss 65:0b653cfe95db 631 tflood.start();
klauss 65:0b653cfe95db 632 tflood.reset();
klauss 65:0b653cfe95db 633 floodcount =0;
klauss 65:0b653cfe95db 634 pflood = 1;
klauss 65:0b653cfe95db 635 flood_timeout.start();
klauss 65:0b653cfe95db 636 delayed_flood = false;
klauss 65:0b653cfe95db 637 pc.printf("\n\rFlood ON\n\r");
klauss 65:0b653cfe95db 638 if( from_eth ){
klauss 65:0b653cfe95db 639 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Flood On\n\r" );
klauss 65:0b653cfe95db 640 //debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 65:0b653cfe95db 641 }
klauss 65:0b653cfe95db 642 }
klauss 45:c80574f24dc3 643
klauss 45:c80574f24dc3 644 // Prompt commands here
klauss 58:af7e8788f106 645 if ( bufret == 1 ) {
klauss 45:c80574f24dc3 646 static unsigned int promptcb_last_ext = 0;
klauss 45:c80574f24dc3 647 static unsigned int promptcb_last_port = 0;
klauss 55:2f5e7374af9d 648 static char promptcb_last_cmd[ 300 ];
klauss 60:b4ec6beb3be3 649
klauss 58:af7e8788f106 650 strcpy( tmp_cmd, debug_buf );
klauss 59:e1e300880d2d 651 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "." ) ){
klauss 45:c80574f24dc3 652 miss_match = false;
klauss 58:af7e8788f106 653 strcpy( debug_buf, last_cmd );
klauss 58:af7e8788f106 654 strcpy( tmp_cmd, debug_buf );
klauss 59:e1e300880d2d 655 }else if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "+" ) ){
klauss 59:e1e300880d2d 656 miss_match = false;
klauss 59:e1e300880d2d 657 strcpy( debug_buf, "flood on" );
klauss 59:e1e300880d2d 658 strcpy( tmp_cmd, debug_buf );
klauss 59:e1e300880d2d 659 }else if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "-" ) ){
klauss 59:e1e300880d2d 660 miss_match = false;
klauss 59:e1e300880d2d 661 strcpy( debug_buf, "flood off" );
klauss 59:e1e300880d2d 662 strcpy( tmp_cmd, debug_buf );
klauss 59:e1e300880d2d 663 }else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "++ ", 3 ) ){
klauss 59:e1e300880d2d 664 miss_match = false;
klauss 65:0b653cfe95db 665 delayed_flood = true;
klauss 59:e1e300880d2d 666 int ext = atoi( debug_buf + 3 );
klauss 59:e1e300880d2d 667 sprintf( debug_buf, "pcb %i flood on", ext );
klauss 59:e1e300880d2d 668 }else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "-- ", 3 ) ){
klauss 59:e1e300880d2d 669 miss_match = false;
klauss 59:e1e300880d2d 670 int ext = atoi( debug_buf + 3 );
klauss 59:e1e300880d2d 671 pc.printf("\n\rFlood OFF\n\r");
klauss 59:e1e300880d2d 672 if( from_eth ){
klauss 59:e1e300880d2d 673 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Flood OFF\n\r" );
klauss 59:e1e300880d2d 674 //debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 59:e1e300880d2d 675 }
klauss 59:e1e300880d2d 676 pflood = 0;
klauss 59:e1e300880d2d 677 tflood.stop();
klauss 59:e1e300880d2d 678 flood_timeout.reset();
klauss 60:b4ec6beb3be3 679 sprintf( debug_buf, "pcb %i flood off", ext );
klauss 45:c80574f24dc3 680 }
klauss 45:c80574f24dc3 681
klauss 48:195c97f12e8e 682 //tratamento dos enters
klauss 45:c80574f24dc3 683 if( !bufptr ){
klauss 45:c80574f24dc3 684 miss_match = false;
klauss 48:195c97f12e8e 685 }else if( bufptr == 1 ) {
klauss 48:195c97f12e8e 686 if( debug_buf[ 0 ] == 0x0D || debug_buf[ 0 ] == 0x0D ) miss_match = false;
klauss 48:195c97f12e8e 687 }
klauss 48:195c97f12e8e 688
klauss 45:c80574f24dc3 689 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "ifconfig" ) ){
klauss 45:c80574f24dc3 690 miss_match = false;
klauss 45:c80574f24dc3 691 pc.printf("\n\r");
klauss 45:c80574f24dc3 692 files('s');
klauss 45:c80574f24dc3 693 }
klauss 62:07e5bdc9f8f7 694
klauss 63:0d95da692bb4 695 else if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "rx" ) ){
klauss 62:07e5bdc9f8f7 696 miss_match = false;
klauss 62:07e5bdc9f8f7 697 rx = true;
klauss 62:07e5bdc9f8f7 698 }
klauss 62:07e5bdc9f8f7 699
klauss 63:0d95da692bb4 700 else if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "tx" ) ){
klauss 63:0d95da692bb4 701 miss_match = false;
klauss 63:0d95da692bb4 702 tx = true;
klauss 63:0d95da692bb4 703 }
klauss 63:0d95da692bb4 704
klauss 63:0d95da692bb4 705 else if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "stats" ) ){
klauss 63:0d95da692bb4 706 miss_match = false;
klauss 63:0d95da692bb4 707 stats = true;
klauss 63:0d95da692bb4 708 }
klauss 63:0d95da692bb4 709 else if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "reset_stats" ) ){
klauss 63:0d95da692bb4 710 miss_match = false;
klauss 63:0d95da692bb4 711 r_stats = true;
klauss 63:0d95da692bb4 712 }
klauss 63:0d95da692bb4 713
klauss 59:e1e300880d2d 714 else if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "format" ) ){
klauss 45:c80574f24dc3 715 miss_match = false;
klauss 50:d9b6577a70f5 716 pc.printf("\n\rFormatando o sistema de arquivos... espere o sistema reiniciar\n\r");
klauss 62:07e5bdc9f8f7 717
klauss 45:c80574f24dc3 718 if( from_eth ){
klauss 62:07e5bdc9f8f7 719 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Not Allowed\n\r");
klauss 62:07e5bdc9f8f7 720 }else{
klauss 62:07e5bdc9f8f7 721 files('e');
klauss 62:07e5bdc9f8f7 722 files('w');
klauss 62:07e5bdc9f8f7 723 __disable_irq();
klauss 62:07e5bdc9f8f7 724 NVIC_SystemReset();
klauss 42:480335bdde12 725 }
klauss 45:c80574f24dc3 726 }
klauss 45:c80574f24dc3 727
klauss 59:e1e300880d2d 728 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "ipset ", 6 )) {
klauss 45:c80574f24dc3 729 miss_match = false;
klauss 54:448d57291be6 730 set_ip( debug_buf + 6 );
klauss 45:c80574f24dc3 731 files('s');
klauss 45:c80574f24dc3 732 }
klauss 45:c80574f24dc3 733
klauss 59:e1e300880d2d 734 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "extset ", 7 ) ){
klauss 45:c80574f24dc3 735 miss_match = false;
klauss 55:2f5e7374af9d 736 set_header_ext( atoi( debug_buf + 7 ) );
klauss 45:c80574f24dc3 737 files('s');
klauss 45:c80574f24dc3 738 }
klauss 45:c80574f24dc3 739
klauss 59:e1e300880d2d 740 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "serextset ", 10 ) ){
klauss 45:c80574f24dc3 741 miss_match = false;
klauss 55:2f5e7374af9d 742 set_server_ext( atoi( debug_buf + 10 ) );
klauss 45:c80574f24dc3 743 files('s');
klauss 45:c80574f24dc3 744 }
klauss 45:c80574f24dc3 745
klauss 59:e1e300880d2d 746 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "maskset ",8 ) ){
klauss 45:c80574f24dc3 747 miss_match = false;
klauss 55:2f5e7374af9d 748 set_mask( debug_buf + 8 );
klauss 45:c80574f24dc3 749 files('s');
klauss 45:c80574f24dc3 750 }
klauss 45:c80574f24dc3 751
klauss 59:e1e300880d2d 752 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "gatewayset ",11 ) ){
klauss 45:c80574f24dc3 753 miss_match = false;
klauss 55:2f5e7374af9d 754 set_gateway( debug_buf + 11 );
klauss 45:c80574f24dc3 755 files('s');
klauss 45:c80574f24dc3 756 }
klauss 45:c80574f24dc3 757
klauss 59:e1e300880d2d 758 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "msipport ",9 ) ){
klauss 45:c80574f24dc3 759 miss_match = false;
klauss 55:2f5e7374af9d 760 set_header_sip_port( atoi( debug_buf + 9 ) );
klauss 45:c80574f24dc3 761 files('s');
klauss 45:c80574f24dc3 762 }
klauss 45:c80574f24dc3 763
klauss 59:e1e300880d2d 764 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "serverip ",9 ) ){
klauss 45:c80574f24dc3 765 miss_match = false;
klauss 55:2f5e7374af9d 766 set_server_ip( debug_buf + 9 );
klauss 45:c80574f24dc3 767 files('s');
klauss 45:c80574f24dc3 768 }
klauss 45:c80574f24dc3 769
klauss 59:e1e300880d2d 770 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "ssport ",7 ) ){
klauss 45:c80574f24dc3 771 miss_match = false;
klauss 55:2f5e7374af9d 772 set_server_port( atoi( debug_buf + 7 ) );
klauss 45:c80574f24dc3 773 files('s');
klauss 45:c80574f24dc3 774 }
klauss 45:c80574f24dc3 775
klauss 59:e1e300880d2d 776 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "telemetry_ip ", 13 ) ){
klauss 56:c64bcbaa621a 777 miss_match = false;
klauss 56:c64bcbaa621a 778 set_telemetry_ip( debug_buf + 13 );
klauss 56:c64bcbaa621a 779 files('s');
klauss 56:c64bcbaa621a 780 }
klauss 56:c64bcbaa621a 781
klauss 59:e1e300880d2d 782 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "telemetry_port ", 15 ) ){
klauss 56:c64bcbaa621a 783 miss_match = false;
klauss 56:c64bcbaa621a 784 set_telemetry_port( atoi( debug_buf + 15 ) );
klauss 56:c64bcbaa621a 785 files('s');
klauss 56:c64bcbaa621a 786 }
klauss 45:c80574f24dc3 787
klauss 59:e1e300880d2d 788 else if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "dconfig" ) ){
klauss 45:c80574f24dc3 789 miss_match = false;
klauss 50:d9b6577a70f5 790 files('e');
klauss 45:c80574f24dc3 791 files('w');
klauss 45:c80574f24dc3 792 files('s');
klauss 45:c80574f24dc3 793 }
klauss 45:c80574f24dc3 794
klauss 59:e1e300880d2d 795 else if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "reset" ) ){
klauss 45:c80574f24dc3 796 miss_match = false;
klauss 45:c80574f24dc3 797 pc.printf("\n\rJob is done\n\r");
klauss 45:c80574f24dc3 798 if( from_eth ){
klauss 45:c80574f24dc3 799 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Job is done\n\r");
klauss 45:c80574f24dc3 800 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 801 if( tcp_session ){
klauss 45:c80574f24dc3 802 tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 803 tcp_client.close();
klauss 45:c80574f24dc3 804 }else if( udp_request ){
klauss 45:c80574f24dc3 805 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 806 }
klauss 45:c80574f24dc3 807 }
klauss 48:195c97f12e8e 808 __disable_irq();
klauss 45:c80574f24dc3 809 NVIC_SystemReset();
klauss 45:c80574f24dc3 810 }
klauss 45:c80574f24dc3 811
klauss 59:e1e300880d2d 812 else if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "dog" ) ){
klauss 45:c80574f24dc3 813 miss_match = false;
klauss 45:c80574f24dc3 814 pc.printf("\n\r MUUUUUUUuuuuUUUUUU - I'm not a dog!!!! \n\r");
klauss 45:c80574f24dc3 815 if( from_eth ){
klauss 45:c80574f24dc3 816 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "MUUUUUUUuuuuUUUUUU - I'm not a dog!!!!\n\r");
klauss 67:cdedc64d9921 817 //debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 818 }
klauss 45:c80574f24dc3 819 }
klauss 48:195c97f12e8e 820
klauss 62:07e5bdc9f8f7 821 else if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "ls" ) ){
klauss 62:07e5bdc9f8f7 822 miss_match = false;
klauss 62:07e5bdc9f8f7 823 list = true;
klauss 62:07e5bdc9f8f7 824 }
klauss 62:07e5bdc9f8f7 825
klauss 59:e1e300880d2d 826 else if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "tt" ) ){
klauss 53:bb492a8f115a 827 miss_match = false;
klauss 62:07e5bdc9f8f7 828 main_test = !main_test;
klauss 53:bb492a8f115a 829 }
klauss 53:bb492a8f115a 830
klauss 59:e1e300880d2d 831 else if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "reset_cks" ) ){
klauss 52:12930cef17c4 832 miss_match = false;
klauss 52:12930cef17c4 833 reset_cks = true;
klauss 52:12930cef17c4 834 }
klauss 52:12930cef17c4 835
klauss 64:5b011d5707d2 836 //replaced by ls
klauss 59:e1e300880d2d 837 else if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "status" ) ){
klauss 48:195c97f12e8e 838 miss_match = false;
klauss 64:5b011d5707d2 839 list = true;
klauss 64:5b011d5707d2 840 }
klauss 64:5b011d5707d2 841
klauss 64:5b011d5707d2 842 else if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "types" ) ){
klauss 64:5b011d5707d2 843 miss_match = false;
klauss 64:5b011d5707d2 844
klauss 64:5b011d5707d2 845 pc.printf( "\n\rhex :: dec :: Type \n\r0x00 :: 0 :: boot \n\r0x02 :: 2 :: registry \n\r0x04 :: 4 :: invite \n\r0x08 :: 8 :: audio \n\r0x10 :: 16 :: telemetry \n\r0x20 :: 32 :: cb_bye \n\r0x01 :: 1 :: prompt \n\r0x40 :: 64 :: flood \n\r" );
klauss 64:5b011d5707d2 846
klauss 64:5b011d5707d2 847 if( from_eth ){
klauss 64:5b011d5707d2 848 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rhex :: dec :: Type \n\r0x00 :: 0 :: boot \n\r0x02 :: 2 :: registry \n\r0x04 :: 4 :: invite \n\r0x08 :: 8 :: audio \n\r0x10 :: 16 :: telemetry \n\r0x20 :: 32 :: cb_bye \n\r0x01 :: 1 :: prompt \n\r0x40 :: 64 :: flood \n\r" );
klauss 64:5b011d5707d2 849 //debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 64:5b011d5707d2 850 }
klauss 48:195c97f12e8e 851 }
klauss 64:5b011d5707d2 852
klauss 64:5b011d5707d2 853 else if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "protocol" ) ){
klauss 64:5b011d5707d2 854 miss_match = false;
klauss 64:5b011d5707d2 855
klauss 64:5b011d5707d2 856 pc.printf( "\n\r| E | E | P | P | C | C | T | [ Seq_num | Audio ] | 14[ Clock | Audio ] | [ TS | Audio ] | ... |\n\r \n\rE = Ext = Ramal\n\r \n\rP = Port = Porta\n\r \n\rC = Checksum\n\r \n\rT = Type = Tipo\n\r \n\rSeq_num = Sequence Number = Numero de sequencia\n\r \n\rClock = 14 bytes to sync\n\r \n\r... = demais __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__ bytes\n\r" );
klauss 64:5b011d5707d2 857
klauss 64:5b011d5707d2 858 if( from_eth ){
klauss 64:5b011d5707d2 859 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\r| E | E | P | P | C | C | T | [ Seq_num | Audio ] | 14[ Clock | Audio ] | [ TS | Audio ] | ... |\n\r \n\rE = Ext = Ramal\n\r \n\rP = Port = Porta\n\r \n\rC = Checksum\n\r \n\rT = Type = Tipo\n\r \n\rSeq_num = Sequence Number = Numero de sequencia\n\r \n\rClock = 14 bytes to sync\n\r \n\r... = demais __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__ bytes\n\r" );
klauss 64:5b011d5707d2 860 //debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 64:5b011d5707d2 861 }
klauss 64:5b011d5707d2 862 }
klauss 64:5b011d5707d2 863
klauss 60:b4ec6beb3be3 864 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "flood ", 6 ) ){
klauss 60:b4ec6beb3be3 865 if (xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "on", 2 ) ){
klauss 45:c80574f24dc3 866 miss_match = false;
klauss 46:a670f187a704 867 pc.printf("\n\rFlood ON\n\r");
klauss 42:480335bdde12 868 if( from_eth ){
klauss 45:c80574f24dc3 869 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Flood On\n\r" );
klauss 45:c80574f24dc3 870 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 871 }
klauss 45:c80574f24dc3 872 tflood.start();
klauss 45:c80574f24dc3 873 tflood.reset();
klauss 45:c80574f24dc3 874 floodcount =0;
klauss 45:c80574f24dc3 875 pflood = 1;
klauss 45:c80574f24dc3 876 flood_timeout.start();
klauss 45:c80574f24dc3 877 }
klauss 61:06e77dff6f00 878
klauss 61:06e77dff6f00 879 if (xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "more", 4 ) ){
klauss 61:06e77dff6f00 880 miss_match = false;
klauss 61:06e77dff6f00 881 pc.printf("\n\rFlood ON\n\r");
klauss 61:06e77dff6f00 882 if( from_eth ){
klauss 61:06e77dff6f00 883 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Flood On\n\r" );
klauss 61:06e77dff6f00 884 //debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 61:06e77dff6f00 885 }
klauss 61:06e77dff6f00 886 tflood.start();
klauss 61:06e77dff6f00 887 tflood.reset();
klauss 61:06e77dff6f00 888 floodcount = 0;
klauss 61:06e77dff6f00 889 pflood = 1;
klauss 61:06e77dff6f00 890 }
klauss 61:06e77dff6f00 891
klauss 60:b4ec6beb3be3 892 if (xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "off", 3 )) {
klauss 45:c80574f24dc3 893 miss_match = false;
klauss 46:a670f187a704 894 pc.printf("\n\rFlood OFF\n\r");
klauss 42:480335bdde12 895 if( from_eth ){
klauss 45:c80574f24dc3 896 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Flood Off\n\r" );
klauss 45:c80574f24dc3 897 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 898 }
klauss 45:c80574f24dc3 899 pflood = 0;
klauss 45:c80574f24dc3 900 tflood.stop();
klauss 45:c80574f24dc3 901 flood_timeout.reset();
klauss 31:bb5fb28a77df 902 }
klauss 60:b4ec6beb3be3 903 }else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "silence ", 8 ) ){
klauss 60:b4ec6beb3be3 904 miss_match = false;
klauss 60:b4ec6beb3be3 905 char *ref, *split;
klauss 60:b4ec6beb3be3 906
klauss 60:b4ec6beb3be3 907 strcpy( promptcb_last_cmd, debug_buf );
klauss 60:b4ec6beb3be3 908
klauss 65:0b653cfe95db 909 if( !( strcmp( debug_buf + 8, "-h" ) && strcmp( debug_buf + 8, "--help" ) ) ){
klauss 65:0b653cfe95db 910 pc.printf("\n\rUsage :: silence start_ext end_ext | start_ext must be greater than end_ext\n\rObs : ( end_ext - start_ext ) < 50 ");
klauss 65:0b653cfe95db 911
klauss 65:0b653cfe95db 912 if( tcp_session ){
klauss 65:0b653cfe95db 913 snprintf( eth_buffer, __PROMPT_ETH_BUFFER_SIZE__, "Usage :: silence start_ext end_ext | start_ext must be greater than end_ext\n\rObs : ( end_ext - start_ext ) < 50 " );
klauss 65:0b653cfe95db 914 }
klauss 65:0b653cfe95db 915 }else{
klauss 65:0b653cfe95db 916 ref = debug_buf;
klauss 65:0b653cfe95db 917
klauss 65:0b653cfe95db 918 split = strtok( debug_buf + 8, " " );
klauss 65:0b653cfe95db 919
klauss 65:0b653cfe95db 920 start_ext = atoi( split );
klauss 65:0b653cfe95db 921
klauss 65:0b653cfe95db 922 split += strlen( split ) + 1;
klauss 65:0b653cfe95db 923
klauss 65:0b653cfe95db 924 end_ext = atoi( split );
klauss 60:b4ec6beb3be3 925
klauss 65:0b653cfe95db 926 debug_buf = ref;
klauss 65:0b653cfe95db 927
klauss 65:0b653cfe95db 928 if( start_ext < end_ext && ( end_ext - start_ext ) < 50 ){
klauss 65:0b653cfe95db 929 if( start_ext % 2 ) start_ext--;
klauss 65:0b653cfe95db 930 if( !( end_ext % 2 ) ) end_ext++;
klauss 65:0b653cfe95db 931
klauss 65:0b653cfe95db 932 ext_count = start_ext;
klauss 65:0b653cfe95db 933 flood_silence_timer.start();
klauss 65:0b653cfe95db 934 }else{
klauss 65:0b653cfe95db 935 pc.printf("\n\rUsage Error :: silence start_ext end_ext | start_ext must be greater than end_ext\n\rObs : ( end_ext - start_ext ) < 50 ");
klauss 65:0b653cfe95db 936
klauss 65:0b653cfe95db 937 if( tcp_session ){
klauss 65:0b653cfe95db 938 snprintf( eth_buffer, __PROMPT_ETH_BUFFER_SIZE__, "Usage Error :: silence start_ext end_ext | start_ext must be greater than end_ext\n\rObs : ( end_ext - start_ext ) < 50 " );
klauss 65:0b653cfe95db 939 }
klauss 48:195c97f12e8e 940 }
klauss 65:0b653cfe95db 941 flood_silence = true;
klauss 48:195c97f12e8e 942 }
klauss 45:c80574f24dc3 943 }
klauss 45:c80574f24dc3 944
klauss 60:b4ec6beb3be3 945 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug ",6 ) ){
klauss 45:c80574f24dc3 946 if( xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "on",2 )) {
klauss 45:c80574f24dc3 947 miss_match = false;
klauss 46:a670f187a704 948 pc.printf("\n\rDebug ON\n\r");
klauss 45:c80574f24dc3 949 if( from_eth ){
klauss 45:c80574f24dc3 950 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug On\n\r" );
klauss 45:c80574f24dc3 951 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 952 }
klauss 45:c80574f24dc3 953 debug_alive = 1;
klauss 45:c80574f24dc3 954 }
klauss 45:c80574f24dc3 955 if( xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 956 miss_match = false;
klauss 46:a670f187a704 957 pc.printf("\n\rDebug OFF\n\r");
klauss 45:c80574f24dc3 958 if( from_eth ){
klauss 45:c80574f24dc3 959 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Off\n\r" );
klauss 45:c80574f24dc3 960 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 961 }
klauss 45:c80574f24dc3 962 debug_alive = 0;
klauss 31:bb5fb28a77df 963 }
klauss 45:c80574f24dc3 964 if( xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "show",4 ) ){
klauss 45:c80574f24dc3 965 miss_match = false;
klauss 50:d9b6577a70f5 966 pc.printf("\n\rdsip");
klauss 45:c80574f24dc3 967 pc.printf("\n\rdebug_alive");
klauss 45:c80574f24dc3 968 pc.printf("\n\rdebug_prompt");
klauss 45:c80574f24dc3 969 pc.printf("\n\rdebug_vector");
klauss 45:c80574f24dc3 970 pc.printf("\n\rdebug_cb");
klauss 45:c80574f24dc3 971 pc.printf("\n\rdebug_main");
klauss 45:c80574f24dc3 972 pc.printf("\n\rdebug_cks");
klauss 45:c80574f24dc3 973 pc.printf("\n\rdebug_cb_rx");
klauss 45:c80574f24dc3 974 pc.printf("\n\rdebug_cb_tx*");
klauss 45:c80574f24dc3 975 pc.printf("\n\rdebug_eth_rx*");
klauss 45:c80574f24dc3 976 pc.printf("\n\rdebug_eth_tx*");
klauss 45:c80574f24dc3 977 pc.printf("\n\rdebug_file");
klauss 45:c80574f24dc3 978
klauss 42:480335bdde12 979 if( from_eth ){
klauss 50:d9b6577a70f5 980 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rdsip \n\rdebug_alive \n\rdebug_prompt \n\rdebug_vector \n\rdebug_cb \n\rdebug_main \n\rdebug_cks \n\rdebug_cb_rx \n\rdebug_cb_tx* \n\rdebug_eth_rx* \n\rdebug_eth_tx* \n\rdebug_file\n\r" );
klauss 42:480335bdde12 981 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 982 }
klauss 42:480335bdde12 983 }
klauss 45:c80574f24dc3 984 }
klauss 45:c80574f24dc3 985
klauss 59:e1e300880d2d 986 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dsip ",5 ) ){
klauss 50:d9b6577a70f5 987 if (xmemmatch( (uint8_t*)(debug_buf + 5 ), (uint8_t*) "on",2 ) ){
klauss 45:c80574f24dc3 988 miss_match = false;
klauss 45:c80574f24dc3 989 pc.printf( "\n\rSip Debug ON\n\r" );
klauss 45:c80574f24dc3 990 if( from_eth ){
klauss 45:c80574f24dc3 991 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Sip Debug On\n\r" );
klauss 45:c80574f24dc3 992 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 993 }
klauss 45:c80574f24dc3 994 debug_sip = 1;
klauss 45:c80574f24dc3 995 }
klauss 50:d9b6577a70f5 996 if (xmemmatch( (uint8_t*)(debug_buf + 5 ), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 997 miss_match = false;
klauss 45:c80574f24dc3 998 pc.printf( "\n\rSip Debug OFF\n\r" );
klauss 45:c80574f24dc3 999 if( from_eth ){
klauss 45:c80574f24dc3 1000 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Sip Debug Off\n\r" );
klauss 45:c80574f24dc3 1001 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 1002 }
klauss 45:c80574f24dc3 1003 debug_sip = 0;
klauss 45:c80574f24dc3 1004 }
klauss 45:c80574f24dc3 1005 }
klauss 45:c80574f24dc3 1006
klauss 72:895ca792c647 1007 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dparallel ", 10 ) ){
klauss 72:895ca792c647 1008 if( xmemmatch( ( uint8_t * )( debug_buf + 10 ), ( uint8_t * )"on", 2 ) ){
klauss 72:895ca792c647 1009 miss_match = false;
klauss 72:895ca792c647 1010 pc.printf( "\n\rParallel Write Debug ON\n\r" );
klauss 72:895ca792c647 1011 if( from_eth ){
klauss 72:895ca792c647 1012 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rParallel Write Debug ON\n\r" );
klauss 72:895ca792c647 1013 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 72:895ca792c647 1014 }
klauss 72:895ca792c647 1015 dparallel = true;
klauss 72:895ca792c647 1016 }
klauss 72:895ca792c647 1017 if( xmemmatch( ( uint8_t * )( debug_buf + 10 ), ( uint8_t *)"off", 3 )) {
klauss 72:895ca792c647 1018 miss_match = false;
klauss 72:895ca792c647 1019 pc.printf( "\n\rParallel Write Debug OFF\n\r" );
klauss 72:895ca792c647 1020 if( from_eth ){
klauss 72:895ca792c647 1021 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rParallel Write Debug OFF\n\r" );
klauss 72:895ca792c647 1022 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 72:895ca792c647 1023 }
klauss 72:895ca792c647 1024 dparallel = false;
klauss 72:895ca792c647 1025 }
klauss 72:895ca792c647 1026 }
klauss 72:895ca792c647 1027
klauss 59:e1e300880d2d 1028 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dtelemetry ", 11 ) ){
klauss 53:bb492a8f115a 1029 if (xmemmatch( (uint8_t*)(debug_buf + 11 ), (uint8_t*) "on",2 ) ){
klauss 53:bb492a8f115a 1030 miss_match = false;
klauss 53:bb492a8f115a 1031 pc.printf( "\n\rTelemetry Debug ON\n\r" );
klauss 53:bb492a8f115a 1032 if( from_eth ){
klauss 53:bb492a8f115a 1033 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "rTelemetry Debug On\n\r" );
klauss 53:bb492a8f115a 1034 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 53:bb492a8f115a 1035 }
klauss 53:bb492a8f115a 1036 debug_telemetry = true;
klauss 53:bb492a8f115a 1037 }
klauss 53:bb492a8f115a 1038 if (xmemmatch( (uint8_t*)(debug_buf + 11 ), (uint8_t*) "off",3 )) {
klauss 53:bb492a8f115a 1039 miss_match = false;
klauss 53:bb492a8f115a 1040 pc.printf( "\n\rrTelemetry Debug OFF\n\r" );
klauss 53:bb492a8f115a 1041 if( from_eth ){
klauss 53:bb492a8f115a 1042 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "rTelemetry Debug Off\n\r" );
klauss 53:bb492a8f115a 1043 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 53:bb492a8f115a 1044 }
klauss 53:bb492a8f115a 1045 debug_telemetry = false;
klauss 53:bb492a8f115a 1046 }
klauss 53:bb492a8f115a 1047 }
klauss 53:bb492a8f115a 1048
klauss 59:e1e300880d2d 1049 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_cks ", 10 )) {
klauss 50:d9b6577a70f5 1050 if (xmemmatch( (uint8_t*)(debug_buf + 5 ), (uint8_t*) "on",2 )) {
klauss 45:c80574f24dc3 1051 miss_match = false;
klauss 45:c80574f24dc3 1052 pc.printf( "\n\rCKS Debug ON\n\r" );
klauss 45:c80574f24dc3 1053 if( from_eth ){
klauss 45:c80574f24dc3 1054 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "CKS Debug On\n\r" );
klauss 45:c80574f24dc3 1055 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 1056 }
klauss 45:c80574f24dc3 1057 debug_cks = 1;
klauss 45:c80574f24dc3 1058 }
klauss 50:d9b6577a70f5 1059 if (xmemmatch( (uint8_t*)(debug_buf + 5 ), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 1060 miss_match = false;
klauss 45:c80574f24dc3 1061 pc.printf( "\n\rCKS Debug OFF\n\r" );
klauss 45:c80574f24dc3 1062 if( from_eth ){
klauss 45:c80574f24dc3 1063 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "CKS Debug Off\n\r" );
klauss 45:c80574f24dc3 1064 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 1065 }
klauss 45:c80574f24dc3 1066 debug_cks = 0;
klauss 45:c80574f24dc3 1067 }
klauss 45:c80574f24dc3 1068 }
klauss 45:c80574f24dc3 1069
klauss 45:c80574f24dc3 1070 //promptcb ramal porta comando
klauss 50:d9b6577a70f5 1071 //FIXME colocar a parte eth de novo
klauss 59:e1e300880d2d 1072 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "pcb ", 4 )) {
klauss 45:c80574f24dc3 1073 miss_match = false;
klauss 48:195c97f12e8e 1074 int ext,port;
klauss 54:448d57291be6 1075 char *split, *ref, *cmd;
klauss 48:195c97f12e8e 1076
klauss 62:07e5bdc9f8f7 1077 ref = debug_buf;
klauss 59:e1e300880d2d 1078
klauss 74:81c47fff88a5 1079 //debug_buf[ strlen( debug_buf ) ] = 0x0D;
klauss 74:81c47fff88a5 1080 strcat( debug_buf, "\r" );
klauss 74:81c47fff88a5 1081 //debug_buf[ strlen( debug_buf ) + 1 ] = 0x00;
klauss 48:195c97f12e8e 1082
klauss 48:195c97f12e8e 1083 split = strtok( debug_buf + 4, " " );
klauss 48:195c97f12e8e 1084 ext = atoi( split );
klauss 50:d9b6577a70f5 1085
klauss 50:d9b6577a70f5 1086 port = convert_ext_to_port( ext );
klauss 48:195c97f12e8e 1087 split += strlen( split ) + 1;
klauss 54:448d57291be6 1088 cmd = split;
klauss 48:195c97f12e8e 1089
klauss 48:195c97f12e8e 1090 promptcb_last_ext = ext;
klauss 48:195c97f12e8e 1091 promptcb_last_port = port;
klauss 62:07e5bdc9f8f7 1092
klauss 74:81c47fff88a5 1093 //int tmp = strlen( cmd );
klauss 74:81c47fff88a5 1094 //cmd[ tmp ] = 0x0D;
klauss 74:81c47fff88a5 1095 //cmd[ tmp + 1 ] = 0x00;
klauss 55:2f5e7374af9d 1096 strcpy( promptcb_last_cmd, cmd );
klauss 75:bd3c647b860b 1097 strcat( cmd, "\r\r\r" );
klauss 48:195c97f12e8e 1098
klauss 54:448d57291be6 1099 pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n", ext, port, cmd );
klauss 74:81c47fff88a5 1100 send2callboxes( __build_cb_package__( ext, port, __PROMPT__, cmd, id_msg++, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
klauss 48:195c97f12e8e 1101 pc.printf("\n\rComando enviado\n\r");
klauss 48:195c97f12e8e 1102
klauss 54:448d57291be6 1103 if( from_eth ){
klauss 62:07e5bdc9f8f7 1104 char eth_msg[ 512 ];
klauss 62:07e5bdc9f8f7 1105 snprintf( eth_msg, 512 - 1, "\r\next=%d port=%d\r\ncmd=%s\r\n\n\rComando enviado\n\r", ext, port, cmd );
klauss 62:07e5bdc9f8f7 1106 if( tcp_session ){
klauss 62:07e5bdc9f8f7 1107 tcp_client.send_all( eth_msg, strlen( eth_msg ) );
klauss 62:07e5bdc9f8f7 1108 }else if( udp_request ){
klauss 62:07e5bdc9f8f7 1109 udp_server.sendTo( udp_client, eth_msg, strlen( eth_msg ) );
klauss 62:07e5bdc9f8f7 1110 }
klauss 54:448d57291be6 1111 }
klauss 54:448d57291be6 1112
klauss 48:195c97f12e8e 1113 debug_buf = ref;
klauss 67:cdedc64d9921 1114 //bufptr = 0;
klauss 67:cdedc64d9921 1115 //debug_buf[ 0 ] = 0;
klauss 62:07e5bdc9f8f7 1116 bufptr = 0;
klauss 67:cdedc64d9921 1117 for( uint8_t i = 0; i < DEBUGBUFSIZE; i++ ) debug_buf[ i ] = 0;
klauss 45:c80574f24dc3 1118 }
klauss 48:195c97f12e8e 1119
klauss 59:e1e300880d2d 1120 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "_pcb",4 )) {
klauss 45:c80574f24dc3 1121 miss_match = false;
klauss 48:195c97f12e8e 1122 debug_buf[ bufptr++ ] = 0x0D;
klauss 48:195c97f12e8e 1123 debug_buf[ bufptr++ ] = 0x00;
klauss 45:c80574f24dc3 1124
klauss 48:195c97f12e8e 1125 pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n",promptcb_last_ext, promptcb_last_port, debug_buf + 4 );
klauss 74:81c47fff88a5 1126 send2callboxes( __build_cb_package__( promptcb_last_ext, promptcb_last_port, __PROMPT__, debug_buf + 4, id_msg++, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
klauss 45:c80574f24dc3 1127 pc.printf("\n\rComando enviado\n\r");
klauss 45:c80574f24dc3 1128 }
klauss 62:07e5bdc9f8f7 1129
klauss 58:af7e8788f106 1130 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "cks",3 )) {
klauss 45:c80574f24dc3 1131 miss_match = false;
klauss 45:c80574f24dc3 1132 pcks_s = 1;
klauss 45:c80574f24dc3 1133 }
klauss 45:c80574f24dc3 1134
klauss 58:af7e8788f106 1135 else if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "showcb",6 )) {
klauss 45:c80574f24dc3 1136 miss_match = false;
klauss 45:c80574f24dc3 1137 pshowcb = 1;
klauss 45:c80574f24dc3 1138 }
klauss 45:c80574f24dc3 1139
klauss 58:af7e8788f106 1140 else if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_main ", 11 )) {
klauss 45:c80574f24dc3 1141 if (xmemmatch( (uint8_t*)( debug_buf + 11 ), (uint8_t*) "on",2 )) {
klauss 45:c80574f24dc3 1142 miss_match = false;
klauss 45:c80574f24dc3 1143 pc.printf("\r\nDebug Main ON");
klauss 45:c80574f24dc3 1144 if( from_eth ){
klauss 45:c80574f24dc3 1145 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Main On\n\r" );
klauss 45:c80574f24dc3 1146 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 1147 }
klauss 45:c80574f24dc3 1148 debug_main = 1;
klauss 45:c80574f24dc3 1149 }
klauss 45:c80574f24dc3 1150 if (xmemmatch( (uint8_t*)( debug_buf + 11 ), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 1151 miss_match = false;
klauss 45:c80574f24dc3 1152 pc.printf("\r\nDebug Main OFF");
klauss 45:c80574f24dc3 1153 if( from_eth ){
klauss 45:c80574f24dc3 1154 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Main Off\n\r" );
klauss 45:c80574f24dc3 1155 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 1156 }
klauss 45:c80574f24dc3 1157 debug_main = 0;
klauss 45:c80574f24dc3 1158 }
klauss 45:c80574f24dc3 1159 }
klauss 45:c80574f24dc3 1160
klauss 58:af7e8788f106 1161 else if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_cb_rx ", 12 )) {
klauss 45:c80574f24dc3 1162 if (xmemmatch( (uint8_t*)( debug_buf + 12 ), (uint8_t*) "on",2 )) {
klauss 45:c80574f24dc3 1163 miss_match = false;
klauss 45:c80574f24dc3 1164 pc.printf("\tDebug Cbx Rx ON");
klauss 45:c80574f24dc3 1165 if( from_eth ){
klauss 45:c80574f24dc3 1166 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Cbx On Rx on\n\r" );
klauss 45:c80574f24dc3 1167 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 1168 }
klauss 45:c80574f24dc3 1169 debug_cb_rx = 1;
klauss 45:c80574f24dc3 1170 }
klauss 45:c80574f24dc3 1171 if (xmemmatch( (uint8_t*)( debug_buf + 12 ), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 1172 miss_match = false;
klauss 45:c80574f24dc3 1173 pc.printf("Debug Cbx Rx OFF");
klauss 45:c80574f24dc3 1174 if( from_eth ){
klauss 45:c80574f24dc3 1175 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Cbx Rx Off\n\r" );
klauss 45:c80574f24dc3 1176 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 1177 }
klauss 45:c80574f24dc3 1178 debug_cb_rx = 0;
klauss 45:c80574f24dc3 1179 }
klauss 45:c80574f24dc3 1180 }
klauss 45:c80574f24dc3 1181
klauss 58:af7e8788f106 1182 else if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_file ", 11 )) {
klauss 45:c80574f24dc3 1183 if (xmemmatch( (uint8_t*)( debug_buf + 11 ), (uint8_t*) "on",2 )) {
klauss 45:c80574f24dc3 1184 miss_match = false;
klauss 45:c80574f24dc3 1185 pc.printf("\tDebug File ON");
klauss 45:c80574f24dc3 1186 if( from_eth ){
klauss 45:c80574f24dc3 1187 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug File On\n\r" );
klauss 45:c80574f24dc3 1188 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 1189 }
klauss 45:c80574f24dc3 1190 debug_cb_rx = 1;
klauss 45:c80574f24dc3 1191 }
klauss 45:c80574f24dc3 1192 if (xmemmatch( (uint8_t*)( debug_buf + 11 ), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 1193 miss_match = false;
klauss 45:c80574f24dc3 1194 pc.printf("Debug File OFF");
klauss 45:c80574f24dc3 1195 if( from_eth ){
klauss 45:c80574f24dc3 1196 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug File Off\n\r" );
klauss 45:c80574f24dc3 1197 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 1198 }
klauss 45:c80574f24dc3 1199 debug_cb_rx = 0;
klauss 45:c80574f24dc3 1200 }
klauss 45:c80574f24dc3 1201 }
klauss 45:c80574f24dc3 1202
klauss 58:af7e8788f106 1203 else if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "help" )) {
klauss 45:c80574f24dc3 1204 miss_match = false;
klauss 45:c80574f24dc3 1205 pc.printf("\n\r****************************PROMPT HELP******************\n\r");
klauss 45:c80574f24dc3 1206 if( from_eth ){
klauss 45:c80574f24dc3 1207 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "\n\r****************************PROMPT HELP******************\n\r" );
klauss 45:c80574f24dc3 1208 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1209
klauss 45:c80574f24dc3 1210 else if( udp_request ){
klauss 45:c80574f24dc3 1211 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1212 }
klauss 44:cc4996469404 1213 }
klauss 52:12930cef17c4 1214
klauss 45:c80574f24dc3 1215 pc.printf("ifconfig - mostra o arquivo de configuracao do sistema\n\r");
klauss 45:c80574f24dc3 1216 if( from_eth ){
klauss 45:c80574f24dc3 1217 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "ifconfig - mostra o arquivo de configuracao do sistema\n\r" );
klauss 45:c80574f24dc3 1218 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1219
klauss 45:c80574f24dc3 1220 else if( udp_request ){
klauss 45:c80574f24dc3 1221 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1222 }
klauss 45:c80574f24dc3 1223 }
klauss 45:c80574f24dc3 1224 pc.printf("dconfig - volta as configuracoes do sistema para o padrao de fabrica\n\r");
klauss 45:c80574f24dc3 1225 if( from_eth ){
klauss 45:c80574f24dc3 1226 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "dconfig - volta as configuracoes do sistema para o padrao de fabrica\n\r" );
klauss 45:c80574f24dc3 1227 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1228
klauss 45:c80574f24dc3 1229 else if( udp_request ){
klauss 45:c80574f24dc3 1230 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1231 }
klauss 45:c80574f24dc3 1232 }
klauss 45:c80574f24dc3 1233 pc.printf("callme [ramal porta] - envia o pedido de ligacao para o callbox com o ramal e porta indicada\n\r");
klauss 45:c80574f24dc3 1234 if( from_eth ){
klauss 45:c80574f24dc3 1235 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "callme [ramal porta] - envia o pedido de ligacao para o callbox com o ramal e porta indicada\n\r" );
klauss 45:c80574f24dc3 1236 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1237
klauss 45:c80574f24dc3 1238 else if( udp_request ){
klauss 45:c80574f24dc3 1239 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1240 }
klauss 45:c80574f24dc3 1241 }
klauss 48:195c97f12e8e 1242 pc.printf("pcb porta comando - envia o <comando> para o cbx <ramal> e <porta> executar\n\r");
klauss 45:c80574f24dc3 1243 if( from_eth ){
klauss 45:c80574f24dc3 1244 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "promptcb ramal porta comando - envia o <comando> para o cbx <ramal> e <porta> executar\n\r" );
klauss 45:c80574f24dc3 1245 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1246
klauss 45:c80574f24dc3 1247 else if( udp_request ){
klauss 45:c80574f24dc3 1248 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1249 }
klauss 45:c80574f24dc3 1250 }
klauss 45:c80574f24dc3 1251 pc.printf("format - formata o sistema de arquivos\n\r");
klauss 62:07e5bdc9f8f7 1252 //desabilitado via eth
klauss 62:07e5bdc9f8f7 1253 /*
klauss 45:c80574f24dc3 1254 if( from_eth ){
klauss 45:c80574f24dc3 1255 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "format - formata o sistema de arquivos\n\r" );
klauss 45:c80574f24dc3 1256 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1257
klauss 45:c80574f24dc3 1258 else if( udp_request ){
klauss 45:c80574f24dc3 1259 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1260 }
klauss 45:c80574f24dc3 1261 }
klauss 62:07e5bdc9f8f7 1262 */
klauss 45:c80574f24dc3 1263 pc.printf("reset - resta o sistema\n\r");
klauss 45:c80574f24dc3 1264 if( from_eth ){
klauss 45:c80574f24dc3 1265 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "reset - resta o sistema\n\r" );
klauss 45:c80574f24dc3 1266 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1267
klauss 45:c80574f24dc3 1268 else if( udp_request ){
klauss 45:c80574f24dc3 1269 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1270 }
klauss 45:c80574f24dc3 1271 }
klauss 45:c80574f24dc3 1272 pc.printf("ipset [ip] - Configura o IP da cabeceira\n\r");
klauss 45:c80574f24dc3 1273 if( from_eth ){
klauss 45:c80574f24dc3 1274 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "ipset [ip] - Configura o IP da cabeceira\n\r" );
klauss 45:c80574f24dc3 1275 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1276
klauss 45:c80574f24dc3 1277 else if( udp_request ){
klauss 45:c80574f24dc3 1278 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1279 }
klauss 45:c80574f24dc3 1280 }
klauss 45:c80574f24dc3 1281 pc.printf("extset [ext] - Configura a ext da cabeceira\n\r");
klauss 45:c80574f24dc3 1282 if( from_eth ){
klauss 45:c80574f24dc3 1283 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "extset [ext] - Configura a ext da cabeceira\n\r" );
klauss 45:c80574f24dc3 1284 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1285
klauss 45:c80574f24dc3 1286 else if( udp_request ){
klauss 45:c80574f24dc3 1287 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1288 }
klauss 45:c80574f24dc3 1289 }
klauss 45:c80574f24dc3 1290 pc.printf("msipport [port] - Configura a porta SIP da cabeceira\n\r");
klauss 45:c80574f24dc3 1291 if( from_eth ){
klauss 45:c80574f24dc3 1292 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "msipport [port] - Configura a porta SIP da cabeceira\n\r" );
klauss 45:c80574f24dc3 1293 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1294
klauss 45:c80574f24dc3 1295 else if( udp_request ){
klauss 45:c80574f24dc3 1296 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1297 }
klauss 45:c80574f24dc3 1298 }
klauss 45:c80574f24dc3 1299 pc.printf("serverip [ip] - Configura o ip do servidor asterisk\n\r");
klauss 45:c80574f24dc3 1300 if( from_eth ){
klauss 45:c80574f24dc3 1301 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "serverip [ip] - Configura o ip do servidor asterisk\n\r" );
klauss 45:c80574f24dc3 1302 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1303
klauss 45:c80574f24dc3 1304 else if( udp_request ){
klauss 45:c80574f24dc3 1305 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1306 }
klauss 45:c80574f24dc3 1307 }
klauss 45:c80574f24dc3 1308 pc.printf("serextset [ext] - Configura a server ext da cabeceira\n\r");
klauss 45:c80574f24dc3 1309 if( from_eth ){
klauss 45:c80574f24dc3 1310 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "serextset [ext] - Configura a server ext da cabeceira\n\r" );
klauss 45:c80574f24dc3 1311 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1312
klauss 45:c80574f24dc3 1313 else if( udp_request ){
klauss 45:c80574f24dc3 1314 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1315 }
klauss 45:c80574f24dc3 1316 }
klauss 45:c80574f24dc3 1317 pc.printf("ssport [port] - Configura a porta SIP do servidor asterisk\n\r");
klauss 45:c80574f24dc3 1318 if( from_eth ){
klauss 45:c80574f24dc3 1319 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "ssport [port] - Configura a porta SIP do servidor asterisk\n\r" );
klauss 45:c80574f24dc3 1320 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1321
klauss 45:c80574f24dc3 1322 else if( udp_request ){
klauss 45:c80574f24dc3 1323 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1324 }
klauss 45:c80574f24dc3 1325 }
klauss 45:c80574f24dc3 1326 pc.printf("maskset [mask] - Configura a mascara da cabeceira\n\r");
klauss 45:c80574f24dc3 1327 if( from_eth ){
klauss 45:c80574f24dc3 1328 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "maskset [mask] - Configura a mascara da cabeceira\n\r" );
klauss 45:c80574f24dc3 1329 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1330
klauss 45:c80574f24dc3 1331 else if( udp_request ){
klauss 45:c80574f24dc3 1332 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1333 }
klauss 45:c80574f24dc3 1334 }
klauss 45:c80574f24dc3 1335 pc.printf("gatewayset [gateway] - Configura o gateway da cabeceira\n\r");
klauss 45:c80574f24dc3 1336 if( from_eth ){
klauss 45:c80574f24dc3 1337 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "gatewayset [gateway] - Configura o gateway da cabeceira\n\r" );
klauss 45:c80574f24dc3 1338 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1339
klauss 45:c80574f24dc3 1340 else if( udp_request ){
klauss 45:c80574f24dc3 1341 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1342 }
klauss 45:c80574f24dc3 1343 }
klauss 56:c64bcbaa621a 1344 pc.printf("telemetry_ip - Configura o IP do servidor de telemetria\n\r");
klauss 56:c64bcbaa621a 1345 if( from_eth ){
klauss 56:c64bcbaa621a 1346 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "telemetry_ip - Configura o IP do servidor de telemetria\n\r" );
klauss 56:c64bcbaa621a 1347 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 56:c64bcbaa621a 1348
klauss 56:c64bcbaa621a 1349 else if( udp_request ){
klauss 56:c64bcbaa621a 1350 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 56:c64bcbaa621a 1351 }
klauss 56:c64bcbaa621a 1352 }
klauss 62:07e5bdc9f8f7 1353 pc.printf("telemetry_port - Configura a port do servidor de telemetria\n\r");
klauss 56:c64bcbaa621a 1354 if( from_eth ){
klauss 62:07e5bdc9f8f7 1355 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "telemetry_port - Configura a port do servidor de telemetria\n\r" );
klauss 56:c64bcbaa621a 1356 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 56:c64bcbaa621a 1357
klauss 56:c64bcbaa621a 1358 else if( udp_request ){
klauss 56:c64bcbaa621a 1359 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 56:c64bcbaa621a 1360 }
klauss 56:c64bcbaa621a 1361 }
klauss 56:c64bcbaa621a 1362
klauss 45:c80574f24dc3 1363 pc.printf("showcb - lista os Cbx registrados na header\n\r");
klauss 45:c80574f24dc3 1364 if( from_eth ){
klauss 45:c80574f24dc3 1365 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "showcb - lista os Cbx registrados na header\n\r" );
klauss 45:c80574f24dc3 1366 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1367
klauss 45:c80574f24dc3 1368 else if( udp_request ){
klauss 45:c80574f24dc3 1369 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1370 }
klauss 45:c80574f24dc3 1371 }
klauss 63:0d95da692bb4 1372 /*
klauss 48:195c97f12e8e 1373 pc.printf("status - lista resumida de cbx registrados na header\n\r");
klauss 48:195c97f12e8e 1374 if( from_eth ){
klauss 48:195c97f12e8e 1375 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "showcb - lista resumida de cbx registrados na header\n\r" );
klauss 48:195c97f12e8e 1376 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 48:195c97f12e8e 1377
klauss 48:195c97f12e8e 1378 else if( udp_request ){
klauss 48:195c97f12e8e 1379 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 48:195c97f12e8e 1380 }
klauss 48:195c97f12e8e 1381 }
klauss 63:0d95da692bb4 1382 */
klauss 45:c80574f24dc3 1383 pc.printf("cks - exibe estatisticas de check sum\n\r");
klauss 45:c80574f24dc3 1384 if( from_eth ){
klauss 45:c80574f24dc3 1385 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "cks - exibe estatisticas de check sum\n\r" );
klauss 45:c80574f24dc3 1386 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1387
klauss 45:c80574f24dc3 1388 else if( udp_request ){
klauss 45:c80574f24dc3 1389 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1390 }
klauss 45:c80574f24dc3 1391 }
klauss 52:12930cef17c4 1392 pc.printf("reset_cks - reseta estatisticas de check sum\n\r");
klauss 52:12930cef17c4 1393 if( from_eth ){
klauss 52:12930cef17c4 1394 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "reset_cks - reseta estatisticas de check sum\n\r" );
klauss 52:12930cef17c4 1395 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 52:12930cef17c4 1396
klauss 52:12930cef17c4 1397 else if( udp_request ){
klauss 52:12930cef17c4 1398 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 52:12930cef17c4 1399 }
klauss 52:12930cef17c4 1400 }
klauss 52:12930cef17c4 1401
klauss 45:c80574f24dc3 1402 pc.printf(". - executa o comando anterior novamente\n\r");
klauss 45:c80574f24dc3 1403 if( from_eth ){
klauss 45:c80574f24dc3 1404 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, ". - executa o comando anterior novamente\n\r" );
klauss 45:c80574f24dc3 1405 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1406
klauss 45:c80574f24dc3 1407 else if( udp_request ){
klauss 45:c80574f24dc3 1408 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1409 }
klauss 45:c80574f24dc3 1410 }
klauss 45:c80574f24dc3 1411 pc.printf("debug [on|off|show] - seleciona debugs gerais | lista de debugs \n\r");
klauss 45:c80574f24dc3 1412 if( from_eth ){
klauss 45:c80574f24dc3 1413 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "debug [on|off|show] - seleciona debugs gerais | lista de debugs \n\r" );
klauss 45:c80574f24dc3 1414 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1415
klauss 45:c80574f24dc3 1416 else if( udp_request ){
klauss 45:c80574f24dc3 1417 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1418 }
klauss 45:c80574f24dc3 1419 }
klauss 62:07e5bdc9f8f7 1420 pc.printf("{ flood [ on | off ] | [+|-] } - simula envio de pacotes de audio\n\r");
klauss 45:c80574f24dc3 1421 if( from_eth ){
klauss 62:07e5bdc9f8f7 1422 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "{ flood [ on | off ] | [+|-] } - simula envio de pacotes de audio\n\r");
klauss 62:07e5bdc9f8f7 1423 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 62:07e5bdc9f8f7 1424
klauss 62:07e5bdc9f8f7 1425 else if( udp_request ){
klauss 62:07e5bdc9f8f7 1426 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 62:07e5bdc9f8f7 1427 }
klauss 62:07e5bdc9f8f7 1428 }
klauss 65:0b653cfe95db 1429
klauss 65:0b653cfe95db 1430 pc.printf("silence <start_ext end_ext> - envia comando de flood off para os ramais no intervalo end_ext - start_ext\n\r");
klauss 65:0b653cfe95db 1431 if( from_eth ){
klauss 65:0b653cfe95db 1432 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "silence <start_ext end_ext> - envia comando de flood off para os ramais no intervalo end_ext - start_ext\n\r");
klauss 65:0b653cfe95db 1433 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 65:0b653cfe95db 1434
klauss 65:0b653cfe95db 1435 else if( udp_request ){
klauss 65:0b653cfe95db 1436 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 65:0b653cfe95db 1437 }
klauss 65:0b653cfe95db 1438 }
klauss 65:0b653cfe95db 1439
klauss 62:07e5bdc9f8f7 1440 pc.printf("++ ext - Header flood on, ext flood on\n\r");
klauss 62:07e5bdc9f8f7 1441 if( from_eth ){
klauss 62:07e5bdc9f8f7 1442 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "++ ext - Header flood on, ext flood on\n\r");
klauss 45:c80574f24dc3 1443 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1444
klauss 45:c80574f24dc3 1445 else if( udp_request ){
klauss 45:c80574f24dc3 1446 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1447 }
klauss 45:c80574f24dc3 1448 }
klauss 66:3f1d22e69e7b 1449
klauss 66:3f1d22e69e7b 1450 pc.printf("-- ext - Header flood off, ext flood off\n\r");
klauss 66:3f1d22e69e7b 1451 if( from_eth ){
klauss 66:3f1d22e69e7b 1452 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "++ ext - Header flood on, ext flood on\n\r");
klauss 66:3f1d22e69e7b 1453 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 66:3f1d22e69e7b 1454
klauss 66:3f1d22e69e7b 1455 else if( udp_request ){
klauss 66:3f1d22e69e7b 1456 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 66:3f1d22e69e7b 1457 }
klauss 66:3f1d22e69e7b 1458 }
klauss 66:3f1d22e69e7b 1459
klauss 64:5b011d5707d2 1460 pc.printf("rx - Exibe ultimo pacote recebido dos CBx\n\r");
klauss 64:5b011d5707d2 1461 if( from_eth ){
klauss 64:5b011d5707d2 1462 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "rx - Exibe ultimo pacote recebido dos CBx\n\r");
klauss 64:5b011d5707d2 1463 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 64:5b011d5707d2 1464
klauss 64:5b011d5707d2 1465 else if( udp_request ){
klauss 64:5b011d5707d2 1466 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 64:5b011d5707d2 1467 }
klauss 64:5b011d5707d2 1468 }
klauss 64:5b011d5707d2 1469 pc.printf("tx - Exibe ultimo pacote enviado para os CBx\n\r");
klauss 64:5b011d5707d2 1470 if( from_eth ){
klauss 64:5b011d5707d2 1471 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "tx - Exibe ultimo pacote enviado para os CBx\n\r");
klauss 64:5b011d5707d2 1472 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 64:5b011d5707d2 1473
klauss 64:5b011d5707d2 1474 else if( udp_request ){
klauss 64:5b011d5707d2 1475 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 64:5b011d5707d2 1476 }
klauss 64:5b011d5707d2 1477 }
klauss 64:5b011d5707d2 1478 pc.printf("ls | status - Exibe uma lista ordenada por ext do CBx registrados na Header\n\r");
klauss 64:5b011d5707d2 1479 if( from_eth ){
klauss 64:5b011d5707d2 1480 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "ls | status - Exibe uma lista ordenada por ext do CBx registrados na Header\n\r");
klauss 64:5b011d5707d2 1481 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 64:5b011d5707d2 1482
klauss 64:5b011d5707d2 1483 else if( udp_request ){
klauss 64:5b011d5707d2 1484 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 64:5b011d5707d2 1485 }
klauss 64:5b011d5707d2 1486 }
klauss 64:5b011d5707d2 1487 pc.printf("types - Lista os types usados no protocolo de comunicacao Header -- CBx\n\r");
klauss 64:5b011d5707d2 1488 if( from_eth ){
klauss 64:5b011d5707d2 1489 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "types - Lista os types usados no protocolo de comunicacao Header -- CBx\n\r");
klauss 64:5b011d5707d2 1490 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 64:5b011d5707d2 1491
klauss 64:5b011d5707d2 1492 else if( udp_request ){
klauss 64:5b011d5707d2 1493 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 64:5b011d5707d2 1494 }
klauss 64:5b011d5707d2 1495 }
klauss 64:5b011d5707d2 1496 pc.printf("protocol - Exibe formato do pacote seguindo o protocolo de comunicacao Header -- CBx\n\r");
klauss 64:5b011d5707d2 1497 if( from_eth ){
klauss 64:5b011d5707d2 1498 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "protocol - Exibe formato do pacote seguindo o protocolo de comunicacao Header -- CBx\n\r");
klauss 64:5b011d5707d2 1499 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 64:5b011d5707d2 1500
klauss 64:5b011d5707d2 1501 else if( udp_request ){
klauss 64:5b011d5707d2 1502 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 64:5b011d5707d2 1503 }
klauss 64:5b011d5707d2 1504 }
klauss 64:5b011d5707d2 1505
klauss 45:c80574f24dc3 1506 pc.printf("PROMPT VERSION: V%d\n\r",PVERSION);
klauss 45:c80574f24dc3 1507 //Obs :: a ultima linha nao mandamos direto pro tcp porque ela eh enviada fora desse escopo
klauss 45:c80574f24dc3 1508 if( from_eth ) snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "PROMPT VERSION: V%d\n\r",PVERSION);
klauss 27:98f824719d1c 1509 }
klauss 54:448d57291be6 1510
klauss 58:af7e8788f106 1511 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "callme ", 7 )){
klauss 54:448d57291be6 1512 miss_match = false;
klauss 54:448d57291be6 1513 int ext,port;
klauss 54:448d57291be6 1514 char cmd[ 16 ];
klauss 54:448d57291be6 1515
klauss 54:448d57291be6 1516 ext = atoi( debug_buf + 7 );
klauss 54:448d57291be6 1517 port = convert_ext_to_port( ext );
klauss 54:448d57291be6 1518
klauss 67:cdedc64d9921 1519 strcpy( cmd, ( ext % 2 ) ? "call init B" : "call init A" );
klauss 67:cdedc64d9921 1520
klauss 67:cdedc64d9921 1521 if( ext % 2 ) ext--;
klauss 54:448d57291be6 1522
klauss 54:448d57291be6 1523 promptcb_last_ext = ext;
klauss 54:448d57291be6 1524 promptcb_last_port = port;
klauss 54:448d57291be6 1525
klauss 62:07e5bdc9f8f7 1526 int tmp = strlen( cmd );
klauss 62:07e5bdc9f8f7 1527 cmd[ tmp ] = 0x0D;
klauss 62:07e5bdc9f8f7 1528 cmd[ tmp + 1 ] = 0x00;
klauss 62:07e5bdc9f8f7 1529 strcpy( promptcb_last_cmd, cmd );
klauss 62:07e5bdc9f8f7 1530
klauss 54:448d57291be6 1531 pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n", ext, port, cmd );
klauss 67:cdedc64d9921 1532
klauss 67:cdedc64d9921 1533 pc.printf("\n\r--------------------------------------------------------\n\r");
klauss 67:cdedc64d9921 1534 for( uint16_t i = 0; i < strlen( cmd ) ; i++ ) pc.printf( "%02x ", cmd[ i ] );
klauss 67:cdedc64d9921 1535
klauss 74:81c47fff88a5 1536 send2callboxes( __build_cb_package__( ext, port, __PROMPT__, cmd, id_msg++, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
klauss 67:cdedc64d9921 1537 pc.printf("\n\r--------------------------------------------------------\n\r");
klauss 67:cdedc64d9921 1538 for( uint16_t i = 0; i < 300 ; i++ ){
klauss 67:cdedc64d9921 1539 pc.printf( "%02x ", write_buffer[ i ] );
klauss 67:cdedc64d9921 1540 if( i != 0 && !( ( i + 1 ) % 30 ) ) pc.printf("\n\r");
klauss 67:cdedc64d9921 1541 }
klauss 67:cdedc64d9921 1542
klauss 67:cdedc64d9921 1543
klauss 62:07e5bdc9f8f7 1544 pc.printf("\n\rComando enviado\n\r");
klauss 54:448d57291be6 1545
klauss 54:448d57291be6 1546 if( from_eth ){
klauss 62:07e5bdc9f8f7 1547 char eth_msg[ 512 ];
klauss 62:07e5bdc9f8f7 1548 snprintf( eth_msg, 512 - 1, "\r\next=%d port=%d\r\ncmd=%s\r\n\n\rComando enviado\n\r", ext, port, cmd );
klauss 62:07e5bdc9f8f7 1549 if( tcp_session ){
klauss 62:07e5bdc9f8f7 1550 tcp_client.send_all( eth_msg, strlen( eth_msg ) );
klauss 62:07e5bdc9f8f7 1551 }else if( udp_request ){
klauss 62:07e5bdc9f8f7 1552 udp_server.sendTo( udp_client, eth_msg, strlen( eth_msg ) );
klauss 62:07e5bdc9f8f7 1553 }
klauss 19:ab2088e0dec6 1554 }
klauss 54:448d57291be6 1555
klauss 54:448d57291be6 1556 bufptr = 0;
klauss 67:cdedc64d9921 1557 for( uint8_t i = 0; i < DEBUGBUFSIZE; i++ ) debug_buf[ i ] = 0;
klauss 45:c80574f24dc3 1558 }
klauss 45:c80574f24dc3 1559
klauss 45:c80574f24dc3 1560 if( miss_match ){
klauss 48:195c97f12e8e 1561 pc.printf("\n\r> %s: command not found\n\r", debug_buf );
klauss 45:c80574f24dc3 1562 if( from_eth ){
klauss 48:195c97f12e8e 1563 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "> %s: command not found\n ", debug_buf );
klauss 58:af7e8788f106 1564 //debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 1565 }
klauss 45:c80574f24dc3 1566 }
klauss 45:c80574f24dc3 1567 else{
klauss 58:af7e8788f106 1568 if( from_eth && strlen( debug_buf ) > 2 ) strcpy( last_cmd, tmp_cmd );
klauss 58:af7e8788f106 1569
klauss 58:af7e8788f106 1570 else if( strlen( debug_buf ) > 2 ) strcpy( last_cmd, tmp_cmd );
klauss 45:c80574f24dc3 1571 }
klauss 48:195c97f12e8e 1572 }
klauss 45:c80574f24dc3 1573 if( b == 0x0D || bufret == 1 || bufptr > DEBUGBUFSIZE ){
klauss 45:c80574f24dc3 1574 bufret = 0;
klauss 57:78f7191a8b69 1575 if( from_eth ){
klauss 57:78f7191a8b69 1576 from_eth = false;
klauss 57:78f7191a8b69 1577
klauss 48:195c97f12e8e 1578 if( debug_buf[ strlen( debug_buf ) - 1 ] == '\r' || debug_buf[ strlen( debug_buf ) - 1 ] == '\n' ) strcat( debug_buf, "> " );
klauss 48:195c97f12e8e 1579
klauss 48:195c97f12e8e 1580 else strcat( debug_buf, "\n\r> " );
klauss 48:195c97f12e8e 1581
klauss 57:78f7191a8b69 1582 if( tcp_session ){
klauss 57:78f7191a8b69 1583
klauss 57:78f7191a8b69 1584 tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 57:78f7191a8b69 1585
klauss 57:78f7191a8b69 1586 }else if( udp_request ){
klauss 48:195c97f12e8e 1587
klauss 57:78f7191a8b69 1588 int sent = udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 48:195c97f12e8e 1589
klauss 57:78f7191a8b69 1590 udp_request = false;
klauss 57:78f7191a8b69 1591 }
klauss 57:78f7191a8b69 1592 for( register uint16_t i = 0; i < __PROMPT_ETH_BUFFER_SIZE__; i++ ) eth_buffer[ i ] = 0;
klauss 57:78f7191a8b69 1593 debug_buf = __debug_buf__;
klauss 57:78f7191a8b69 1594 bufptr = last_bufptr;
klauss 45:c80574f24dc3 1595 }else{
klauss 42:480335bdde12 1596 bufptr = 0;
klauss 58:af7e8788f106 1597 for( uint8_t i = 0; i < DEBUGBUFSIZE; i++ ) debug_buf[ i ] = 0;
klauss 45:c80574f24dc3 1598 }
klauss 45:c80574f24dc3 1599 pc.putc(0x0A);
klauss 45:c80574f24dc3 1600 pc.putc(0x0D);
klauss 45:c80574f24dc3 1601 pc.printf("> ");
klauss 45:c80574f24dc3 1602 }
klauss 36:728498a78e1e 1603 return( NULL );
klauss 50:d9b6577a70f5 1604 }
klauss 54:448d57291be6 1605
klauss 55:2f5e7374af9d 1606 void set_ip( char * new_header_ip ){
klauss 54:448d57291be6 1607 fip = fopen("/qspi/myip.txt", "w");
klauss 55:2f5e7374af9d 1608 fprintf( fip, "%s\n\r", new_header_ip );
klauss 54:448d57291be6 1609 fclose( fip );
klauss 54:448d57291be6 1610 }
klauss 54:448d57291be6 1611
klauss 55:2f5e7374af9d 1612 void set_header_ext( int new_header_ext ){
klauss 54:448d57291be6 1613 fext = fopen( "/qspi/myext.txt", "w" );
klauss 55:2f5e7374af9d 1614 fprintf( fext, "%i\n\r", new_header_ext );
klauss 54:448d57291be6 1615 fclose( fext );
klauss 55:2f5e7374af9d 1616 }
klauss 55:2f5e7374af9d 1617
klauss 55:2f5e7374af9d 1618 void set_header_sip_port( int new_header_sip_port ){
klauss 55:2f5e7374af9d 1619 fport = fopen("/qspi/mysipport.txt", "w");
klauss 55:2f5e7374af9d 1620 fprintf( fport,"%i\n\r", new_header_sip_port );
klauss 55:2f5e7374af9d 1621 fclose( fport );
klauss 55:2f5e7374af9d 1622 }
klauss 55:2f5e7374af9d 1623
klauss 55:2f5e7374af9d 1624 void set_server_ip( char * new_server_ip ){
klauss 55:2f5e7374af9d 1625 fsip = fopen("/qspi/serverip.txt", "w");
klauss 55:2f5e7374af9d 1626 fprintf( fsip,"%s\n\r", new_server_ip );
klauss 55:2f5e7374af9d 1627 fclose( fsip );
klauss 55:2f5e7374af9d 1628 }
klauss 55:2f5e7374af9d 1629
klauss 55:2f5e7374af9d 1630 void set_server_ext( int new_server_ext ){
klauss 55:2f5e7374af9d 1631 fserext = fopen("/qspi/peerext.txt", "w");
klauss 55:2f5e7374af9d 1632 fprintf( fserext , "%i\n\r", new_server_ext );
klauss 55:2f5e7374af9d 1633 fclose( fserext );
klauss 55:2f5e7374af9d 1634 }
klauss 55:2f5e7374af9d 1635
klauss 55:2f5e7374af9d 1636 void set_server_port( int new_server_port ){
klauss 55:2f5e7374af9d 1637 fsport = fopen("/qspi/serverport.txt", "w");
klauss 55:2f5e7374af9d 1638 fprintf(fsport,"%i\n\r", new_server_port );
klauss 55:2f5e7374af9d 1639 fclose( fsport );
klauss 55:2f5e7374af9d 1640 }
klauss 55:2f5e7374af9d 1641
klauss 55:2f5e7374af9d 1642 void set_mask( char * new_mask ){
klauss 55:2f5e7374af9d 1643 fmask = fopen("/qspi/mymask.txt", "w");
klauss 55:2f5e7374af9d 1644 fprintf(fmask,"%s\n\r",new_mask );
klauss 55:2f5e7374af9d 1645 fclose( fmask );
klauss 55:2f5e7374af9d 1646 }
klauss 55:2f5e7374af9d 1647
klauss 55:2f5e7374af9d 1648 void set_gateway( char * new_gateway ){
klauss 55:2f5e7374af9d 1649 fgate = fopen("/qspi/mygate.txt", "w");
klauss 55:2f5e7374af9d 1650 fprintf(fgate,"%s\n\r", new_gateway );
klauss 55:2f5e7374af9d 1651 fclose( fgate );
klauss 56:c64bcbaa621a 1652 }
klauss 56:c64bcbaa621a 1653
klauss 56:c64bcbaa621a 1654 void set_udp_port_listener( int new_udp_port_listener ){
klauss 56:c64bcbaa621a 1655 fudpport = fopen( "/qspi/udpport.txt", "w" );
klauss 56:c64bcbaa621a 1656 fprintf( fudpport, "%i\n\r",new_udp_port_listener );
klauss 56:c64bcbaa621a 1657 fclose( fudpport );
klauss 56:c64bcbaa621a 1658 }
klauss 56:c64bcbaa621a 1659
klauss 56:c64bcbaa621a 1660 void set_tcp_port_listener( int new_tcp_port_listener ){
klauss 56:c64bcbaa621a 1661 ftcpport = fopen( "/qspi/tcpport.txt", "w" );
klauss 56:c64bcbaa621a 1662 fprintf( ftcpport, "%i\n\r",new_tcp_port_listener );
klauss 56:c64bcbaa621a 1663 fclose( ftcpport );
klauss 56:c64bcbaa621a 1664 }
klauss 56:c64bcbaa621a 1665
klauss 56:c64bcbaa621a 1666 void set_telemetry_ip( char * new_telemetry_ip ){
klauss 56:c64bcbaa621a 1667 ftip = fopen("/qspi/telemetry_ip.txt", "w" );
klauss 56:c64bcbaa621a 1668 fprintf(ftip,"%s\n\r", new_telemetry_ip );
klauss 56:c64bcbaa621a 1669 fclose( ftip );
klauss 56:c64bcbaa621a 1670 }
klauss 56:c64bcbaa621a 1671
klauss 56:c64bcbaa621a 1672 void set_telemetry_port( int new_telemetry_port ){
klauss 56:c64bcbaa621a 1673 ftport = fopen("/qspi/telemetry_port.txt", "w" );
klauss 56:c64bcbaa621a 1674 fprintf(ftport,"%i\n\r", new_telemetry_port );
klauss 56:c64bcbaa621a 1675 fclose( ftport );
klauss 54:448d57291be6 1676 }