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 17:18:58 2014 +0000
Revision:
57:78f7191a8b69
Parent:
56:c64bcbaa621a
Child:
58:af7e8788f106
prompt telnet sendo validado

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