Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Committer:
klauss
Date:
Thu Oct 23 21:12:22 2014 +0000
Revision:
59:e1e300880d2d
Parent:
58:af7e8788f106
Child:
60:b4ec6beb3be3
comando + ( header flood on ); comando - ( header flood off ); comando ++ ext ( header flood on, ext flood on ); comando -- ext ( header flood off, ext flood off  )

Who changed what in which revision?

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