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 19:58:09 2014 +0000
Revision:
58:af7e8788f106
Parent:
57:78f7191a8b69
Child:
59:e1e300880d2d
implemantacao do cmd [ . ] -- Repete o ultimo comando digitado via prompt, precisa ser validado via eth

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 45:c80574f24dc3 614 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) ".",1 )) {
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 45:c80574f24dc3 618 }
klauss 45:c80574f24dc3 619
klauss 48:195c97f12e8e 620 //tratamento dos enters
klauss 45:c80574f24dc3 621 if( !bufptr ){
klauss 45:c80574f24dc3 622 miss_match = false;
klauss 48:195c97f12e8e 623 }else if( bufptr == 1 ) {
klauss 48:195c97f12e8e 624 if( debug_buf[ 0 ] == 0x0D || debug_buf[ 0 ] == 0x0D ) miss_match = false;
klauss 48:195c97f12e8e 625 }
klauss 48:195c97f12e8e 626
klauss 45:c80574f24dc3 627 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "ifconfig" ) ){
klauss 45:c80574f24dc3 628 miss_match = false;
klauss 45:c80574f24dc3 629 pc.printf("\n\r");
klauss 45:c80574f24dc3 630 files('s');
klauss 45:c80574f24dc3 631 }
klauss 45:c80574f24dc3 632 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "format" ) ){
klauss 45:c80574f24dc3 633 miss_match = false;
klauss 50:d9b6577a70f5 634 pc.printf("\n\rFormatando o sistema de arquivos... espere o sistema reiniciar\n\r");
klauss 45:c80574f24dc3 635 if( from_eth ){
klauss 45:c80574f24dc3 636 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Formatando o sistema de arquivos... espere o sistema reiniciar\n\r");
klauss 45:c80574f24dc3 637 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 638 if( tcp_session ){
klauss 45:c80574f24dc3 639 tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 640 tcp_client.close();
klauss 45:c80574f24dc3 641 }else if( udp_request ){
klauss 45:c80574f24dc3 642 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 643 }
klauss 42:480335bdde12 644 }
klauss 50:d9b6577a70f5 645 files('e');
klauss 45:c80574f24dc3 646 files('w');
klauss 48:195c97f12e8e 647 __disable_irq();
klauss 45:c80574f24dc3 648 NVIC_SystemReset();
klauss 45:c80574f24dc3 649 }
klauss 45:c80574f24dc3 650
klauss 45:c80574f24dc3 651 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "ipset ", 6 )) {
klauss 45:c80574f24dc3 652 miss_match = false;
klauss 54:448d57291be6 653 //fip = fopen("/qspi/myip.txt", "w");
klauss 54:448d57291be6 654 //fprintf(fip,"%s\n\r",(debug_buf+6));
klauss 54:448d57291be6 655 //fclose(fip);
klauss 54:448d57291be6 656 //pc.printf("\n\r");
klauss 54:448d57291be6 657 set_ip( debug_buf + 6 );
klauss 45:c80574f24dc3 658 files('s');
klauss 45:c80574f24dc3 659 }
klauss 45:c80574f24dc3 660
klauss 45:c80574f24dc3 661 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "extset ", 7 ) ){
klauss 45:c80574f24dc3 662 miss_match = false;
klauss 55:2f5e7374af9d 663 /*
klauss 55:2f5e7374af9d 664 fip = fopen("/qspi/myext.txt", "w");
klauss 55:2f5e7374af9d 665 fprintf(fip, "%s\n\r" , ( debug_buf + 7) );
klauss 55:2f5e7374af9d 666 fclose(fip);
klauss 55:2f5e7374af9d 667 pc.printf("\n\r");
klauss 55:2f5e7374af9d 668 */
klauss 55:2f5e7374af9d 669 set_header_ext( atoi( debug_buf + 7 ) );
klauss 45:c80574f24dc3 670 files('s');
klauss 45:c80574f24dc3 671 }
klauss 45:c80574f24dc3 672
klauss 45:c80574f24dc3 673 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "serextset ", 10 ) ){
klauss 45:c80574f24dc3 674 miss_match = false;
klauss 55:2f5e7374af9d 675 /*
klauss 45:c80574f24dc3 676 fip = fopen("/qspi/peerext.txt", "w");
klauss 45:c80574f24dc3 677 fprintf(fip, "%i\n\r" , ( debug_buf + 10 ) );
klauss 45:c80574f24dc3 678 fclose(fip);
klauss 45:c80574f24dc3 679 pc.printf("\n\r");
klauss 55:2f5e7374af9d 680 */
klauss 55:2f5e7374af9d 681 set_server_ext( atoi( debug_buf + 10 ) );
klauss 45:c80574f24dc3 682 files('s');
klauss 45:c80574f24dc3 683 }
klauss 45:c80574f24dc3 684
klauss 45:c80574f24dc3 685 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "maskset ",8 ) ){
klauss 45:c80574f24dc3 686 miss_match = false;
klauss 55:2f5e7374af9d 687 /*
klauss 45:c80574f24dc3 688 fmask = fopen("/qspi/mymask.txt", "w");
klauss 46:a670f187a704 689 fprintf(fmask,"%s\n\r",(debug_buf+8));
klauss 45:c80574f24dc3 690 fclose(fmask);
klauss 45:c80574f24dc3 691 pc.printf("\n\r");
klauss 55:2f5e7374af9d 692 */
klauss 55:2f5e7374af9d 693 set_mask( debug_buf + 8 );
klauss 45:c80574f24dc3 694 files('s');
klauss 45:c80574f24dc3 695 }
klauss 45:c80574f24dc3 696
klauss 45:c80574f24dc3 697 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "gatewayset ",11 ) ){
klauss 45:c80574f24dc3 698 miss_match = false;
klauss 55:2f5e7374af9d 699 /*
klauss 45:c80574f24dc3 700 fgate = fopen("/qspi/mygate.txt", "w");
klauss 46:a670f187a704 701 fprintf(fgate,"%s\n\r",(debug_buf+11));
klauss 45:c80574f24dc3 702 fclose(fgate);
klauss 45:c80574f24dc3 703 pc.printf("\n\r");
klauss 55:2f5e7374af9d 704 */
klauss 55:2f5e7374af9d 705 set_gateway( debug_buf + 11 );
klauss 45:c80574f24dc3 706 files('s');
klauss 45:c80574f24dc3 707 }
klauss 45:c80574f24dc3 708
klauss 45:c80574f24dc3 709 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "msipport ",9 ) ){
klauss 45:c80574f24dc3 710 miss_match = false;
klauss 55:2f5e7374af9d 711 /*
klauss 45:c80574f24dc3 712 fport = fopen("/qspi/mysipport.txt", "w");
klauss 45:c80574f24dc3 713 fprintf(fport,"%i\n\r",(debug_buf+9));
klauss 45:c80574f24dc3 714 fclose(fport);
klauss 45:c80574f24dc3 715 pc.printf("\n\r");
klauss 55:2f5e7374af9d 716 */
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 45:c80574f24dc3 721 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "serverip ",9 ) ){
klauss 45:c80574f24dc3 722 miss_match = false;
klauss 55:2f5e7374af9d 723 /*
klauss 45:c80574f24dc3 724 fsip = fopen("/qspi/serverip.txt", "w");
klauss 46:a670f187a704 725 fprintf(fsip,"%s\n\r",(debug_buf+9));
klauss 45:c80574f24dc3 726 fclose(fsip);
klauss 45:c80574f24dc3 727 pc.printf("\n\r");
klauss 55:2f5e7374af9d 728 */
klauss 55:2f5e7374af9d 729 set_server_ip( debug_buf + 9 );
klauss 45:c80574f24dc3 730 files('s');
klauss 45:c80574f24dc3 731 }
klauss 45:c80574f24dc3 732
klauss 45:c80574f24dc3 733 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "ssport ",7 ) ){
klauss 45:c80574f24dc3 734 miss_match = false;
klauss 55:2f5e7374af9d 735 /*
klauss 45:c80574f24dc3 736 fsport = fopen("/qspi/serverport.txt", "w");
klauss 45:c80574f24dc3 737 fprintf(fsport,"%i\n\r",(debug_buf+7));
klauss 45:c80574f24dc3 738 fclose(fsport);
klauss 45:c80574f24dc3 739 pc.printf("\n\r");
klauss 55:2f5e7374af9d 740 */
klauss 55:2f5e7374af9d 741 set_server_port( atoi( debug_buf + 7 ) );
klauss 45:c80574f24dc3 742 files('s');
klauss 45:c80574f24dc3 743 }
klauss 45:c80574f24dc3 744
klauss 56:c64bcbaa621a 745 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "telemetry_ip ", 13 ) ){
klauss 56:c64bcbaa621a 746 miss_match = false;
klauss 56:c64bcbaa621a 747 set_telemetry_ip( debug_buf + 13 );
klauss 56:c64bcbaa621a 748 files('s');
klauss 56:c64bcbaa621a 749 }
klauss 56:c64bcbaa621a 750
klauss 56:c64bcbaa621a 751 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "telemetry_port ", 15 ) ){
klauss 56:c64bcbaa621a 752 miss_match = false;
klauss 56:c64bcbaa621a 753 set_telemetry_port( atoi( debug_buf + 15 ) );
klauss 56:c64bcbaa621a 754 files('s');
klauss 56:c64bcbaa621a 755 }
klauss 45:c80574f24dc3 756
klauss 45:c80574f24dc3 757 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "dconfig" ) ){
klauss 45:c80574f24dc3 758 miss_match = false;
klauss 50:d9b6577a70f5 759 files('e');
klauss 45:c80574f24dc3 760 files('w');
klauss 45:c80574f24dc3 761 files('s');
klauss 45:c80574f24dc3 762 }
klauss 45:c80574f24dc3 763
klauss 45:c80574f24dc3 764 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "reset" ) ){
klauss 45:c80574f24dc3 765 miss_match = false;
klauss 45:c80574f24dc3 766 pc.printf("\n\rJob is done\n\r");
klauss 45:c80574f24dc3 767 if( from_eth ){
klauss 45:c80574f24dc3 768 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Job is done\n\r");
klauss 45:c80574f24dc3 769 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 770 if( tcp_session ){
klauss 45:c80574f24dc3 771 tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 772 tcp_client.close();
klauss 45:c80574f24dc3 773 }else if( udp_request ){
klauss 45:c80574f24dc3 774 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 775 }
klauss 45:c80574f24dc3 776 }
klauss 48:195c97f12e8e 777 __disable_irq();
klauss 45:c80574f24dc3 778 NVIC_SystemReset();
klauss 45:c80574f24dc3 779 }
klauss 45:c80574f24dc3 780
klauss 45:c80574f24dc3 781 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "dog" ) ){
klauss 45:c80574f24dc3 782 miss_match = false;
klauss 45:c80574f24dc3 783 pc.printf("\n\r MUUUUUUUuuuuUUUUUU - I'm not a dog!!!! \n\r");
klauss 45:c80574f24dc3 784 if( from_eth ){
klauss 45:c80574f24dc3 785 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "MUUUUUUUuuuuUUUUUU - I'm not a dog!!!!\n\r");
klauss 45:c80574f24dc3 786 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 787 }
klauss 45:c80574f24dc3 788 }
klauss 48:195c97f12e8e 789
klauss 53:bb492a8f115a 790 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "tt" ) ){
klauss 53:bb492a8f115a 791 miss_match = false;
klauss 54:448d57291be6 792 main_test = true;
klauss 53:bb492a8f115a 793 }
klauss 53:bb492a8f115a 794
klauss 53:bb492a8f115a 795
klauss 52:12930cef17c4 796 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "reset_cks" ) ){
klauss 52:12930cef17c4 797 miss_match = false;
klauss 52:12930cef17c4 798 reset_cks = true;
klauss 52:12930cef17c4 799 }
klauss 52:12930cef17c4 800
klauss 52:12930cef17c4 801
klauss 52:12930cef17c4 802
klauss 48:195c97f12e8e 803 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "status" ) ){
klauss 48:195c97f12e8e 804 miss_match = false;
klauss 48:195c97f12e8e 805 cb_status = true;
klauss 48:195c97f12e8e 806 }
klauss 45:c80574f24dc3 807
klauss 45:c80574f24dc3 808 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "flood ",6 ) ){
klauss 45:c80574f24dc3 809 if (xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "on",2 ) ){
klauss 45:c80574f24dc3 810 miss_match = false;
klauss 46:a670f187a704 811 pc.printf("\n\rFlood ON\n\r");
klauss 42:480335bdde12 812 if( from_eth ){
klauss 45:c80574f24dc3 813 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Flood On\n\r" );
klauss 45:c80574f24dc3 814 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 815 }
klauss 45:c80574f24dc3 816 tflood.start();
klauss 45:c80574f24dc3 817 tflood.reset();
klauss 45:c80574f24dc3 818 floodcount =0;
klauss 45:c80574f24dc3 819 pflood = 1;
klauss 45:c80574f24dc3 820 flood_timeout.start();
klauss 45:c80574f24dc3 821 }
klauss 45:c80574f24dc3 822 if (xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 823 miss_match = false;
klauss 46:a670f187a704 824 pc.printf("\n\rFlood OFF\n\r");
klauss 42:480335bdde12 825 if( from_eth ){
klauss 45:c80574f24dc3 826 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Flood Off\n\r" );
klauss 45:c80574f24dc3 827 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 828 }
klauss 45:c80574f24dc3 829 pflood = 0;
klauss 45:c80574f24dc3 830 tflood.stop();
klauss 45:c80574f24dc3 831 flood_timeout.reset();
klauss 31:bb5fb28a77df 832 }
klauss 48:195c97f12e8e 833 if (xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "disable",3 )) {
klauss 48:195c97f12e8e 834 miss_match = false;
klauss 48:195c97f12e8e 835 // implementar uma logica que recebe start ext e end ext e manda flood off pra eles
klauss 48:195c97f12e8e 836 pc.printf("\n\rFlood OFF\n\r");
klauss 48:195c97f12e8e 837 if( from_eth ){
klauss 48:195c97f12e8e 838 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Flood Off\n\r" );
klauss 48:195c97f12e8e 839 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 48:195c97f12e8e 840 }
klauss 48:195c97f12e8e 841 pflood = 0;
klauss 48:195c97f12e8e 842 tflood.stop();
klauss 48:195c97f12e8e 843 flood_timeout.reset();
klauss 48:195c97f12e8e 844 }
klauss 45:c80574f24dc3 845 }
klauss 45:c80574f24dc3 846
klauss 45:c80574f24dc3 847 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug ",6 )) {
klauss 45:c80574f24dc3 848 if( xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "on",2 )) {
klauss 45:c80574f24dc3 849 miss_match = false;
klauss 46:a670f187a704 850 pc.printf("\n\rDebug ON\n\r");
klauss 45:c80574f24dc3 851 if( from_eth ){
klauss 45:c80574f24dc3 852 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug On\n\r" );
klauss 45:c80574f24dc3 853 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 854 }
klauss 45:c80574f24dc3 855 debug_alive = 1;
klauss 45:c80574f24dc3 856 }
klauss 45:c80574f24dc3 857 if( xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 858 miss_match = false;
klauss 46:a670f187a704 859 pc.printf("\n\rDebug OFF\n\r");
klauss 45:c80574f24dc3 860 if( from_eth ){
klauss 45:c80574f24dc3 861 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Off\n\r" );
klauss 45:c80574f24dc3 862 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 863 }
klauss 45:c80574f24dc3 864 debug_alive = 0;
klauss 31:bb5fb28a77df 865 }
klauss 45:c80574f24dc3 866 if( xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "show",4 ) ){
klauss 45:c80574f24dc3 867 miss_match = false;
klauss 50:d9b6577a70f5 868 pc.printf("\n\rdsip");
klauss 45:c80574f24dc3 869 pc.printf("\n\rdebug_alive");
klauss 45:c80574f24dc3 870 pc.printf("\n\rdebug_prompt");
klauss 45:c80574f24dc3 871 pc.printf("\n\rdebug_vector");
klauss 45:c80574f24dc3 872 pc.printf("\n\rdebug_cb");
klauss 45:c80574f24dc3 873 pc.printf("\n\rdebug_main");
klauss 45:c80574f24dc3 874 pc.printf("\n\rdebug_cks");
klauss 45:c80574f24dc3 875 pc.printf("\n\rdebug_cb_rx");
klauss 45:c80574f24dc3 876 pc.printf("\n\rdebug_cb_tx*");
klauss 45:c80574f24dc3 877 pc.printf("\n\rdebug_eth_rx*");
klauss 45:c80574f24dc3 878 pc.printf("\n\rdebug_eth_tx*");
klauss 45:c80574f24dc3 879 pc.printf("\n\rdebug_file");
klauss 45:c80574f24dc3 880
klauss 42:480335bdde12 881 if( from_eth ){
klauss 50:d9b6577a70f5 882 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 883 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 884 }
klauss 42:480335bdde12 885 }
klauss 45:c80574f24dc3 886 }
klauss 45:c80574f24dc3 887
klauss 50:d9b6577a70f5 888 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dsip ",5 ) ){
klauss 50:d9b6577a70f5 889 if (xmemmatch( (uint8_t*)(debug_buf + 5 ), (uint8_t*) "on",2 ) ){
klauss 45:c80574f24dc3 890 miss_match = false;
klauss 45:c80574f24dc3 891 pc.printf( "\n\rSip Debug ON\n\r" );
klauss 45:c80574f24dc3 892 if( from_eth ){
klauss 45:c80574f24dc3 893 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Sip Debug On\n\r" );
klauss 45:c80574f24dc3 894 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 895 }
klauss 45:c80574f24dc3 896 debug_sip = 1;
klauss 45:c80574f24dc3 897 }
klauss 50:d9b6577a70f5 898 if (xmemmatch( (uint8_t*)(debug_buf + 5 ), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 899 miss_match = false;
klauss 45:c80574f24dc3 900 pc.printf( "\n\rSip Debug OFF\n\r" );
klauss 45:c80574f24dc3 901 if( from_eth ){
klauss 45:c80574f24dc3 902 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Sip Debug Off\n\r" );
klauss 45:c80574f24dc3 903 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 904 }
klauss 45:c80574f24dc3 905 debug_sip = 0;
klauss 45:c80574f24dc3 906 }
klauss 45:c80574f24dc3 907 }
klauss 45:c80574f24dc3 908
klauss 53:bb492a8f115a 909 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dtelemetry ", 11 ) ){
klauss 53:bb492a8f115a 910 if (xmemmatch( (uint8_t*)(debug_buf + 11 ), (uint8_t*) "on",2 ) ){
klauss 53:bb492a8f115a 911 miss_match = false;
klauss 53:bb492a8f115a 912 pc.printf( "\n\rTelemetry Debug ON\n\r" );
klauss 53:bb492a8f115a 913 if( from_eth ){
klauss 53:bb492a8f115a 914 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "rTelemetry Debug On\n\r" );
klauss 53:bb492a8f115a 915 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 53:bb492a8f115a 916 }
klauss 53:bb492a8f115a 917 debug_telemetry = true;
klauss 53:bb492a8f115a 918 }
klauss 53:bb492a8f115a 919 if (xmemmatch( (uint8_t*)(debug_buf + 11 ), (uint8_t*) "off",3 )) {
klauss 53:bb492a8f115a 920 miss_match = false;
klauss 53:bb492a8f115a 921 pc.printf( "\n\rrTelemetry Debug OFF\n\r" );
klauss 53:bb492a8f115a 922 if( from_eth ){
klauss 53:bb492a8f115a 923 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "rTelemetry Debug Off\n\r" );
klauss 53:bb492a8f115a 924 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 53:bb492a8f115a 925 }
klauss 53:bb492a8f115a 926 debug_telemetry = false;
klauss 53:bb492a8f115a 927 }
klauss 53:bb492a8f115a 928 }
klauss 53:bb492a8f115a 929
klauss 45:c80574f24dc3 930 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_cks ", 10 )) {
klauss 50:d9b6577a70f5 931 if (xmemmatch( (uint8_t*)(debug_buf + 5 ), (uint8_t*) "on",2 )) {
klauss 45:c80574f24dc3 932 miss_match = false;
klauss 45:c80574f24dc3 933 pc.printf( "\n\rCKS Debug ON\n\r" );
klauss 45:c80574f24dc3 934 if( from_eth ){
klauss 45:c80574f24dc3 935 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "CKS Debug On\n\r" );
klauss 45:c80574f24dc3 936 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 937 }
klauss 45:c80574f24dc3 938 debug_cks = 1;
klauss 45:c80574f24dc3 939 }
klauss 50:d9b6577a70f5 940 if (xmemmatch( (uint8_t*)(debug_buf + 5 ), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 941 miss_match = false;
klauss 45:c80574f24dc3 942 pc.printf( "\n\rCKS Debug OFF\n\r" );
klauss 45:c80574f24dc3 943 if( from_eth ){
klauss 45:c80574f24dc3 944 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "CKS Debug Off\n\r" );
klauss 45:c80574f24dc3 945 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 946 }
klauss 45:c80574f24dc3 947 debug_cks = 0;
klauss 45:c80574f24dc3 948 }
klauss 45:c80574f24dc3 949 }
klauss 45:c80574f24dc3 950
klauss 45:c80574f24dc3 951 //promptcb ramal porta comando
klauss 50:d9b6577a70f5 952 //FIXME colocar a parte eth de novo
klauss 48:195c97f12e8e 953 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "pcb ", 4 )) {
klauss 45:c80574f24dc3 954 miss_match = false;
klauss 48:195c97f12e8e 955 static uint8_t id_msg = 0x10;
klauss 48:195c97f12e8e 956 uint8_t write_buffer[ 300 ];
klauss 48:195c97f12e8e 957 int ext,port;
klauss 54:448d57291be6 958 char *split, *ref, *cmd;
klauss 48:195c97f12e8e 959
klauss 48:195c97f12e8e 960 ref = debug_buf;
klauss 48:195c97f12e8e 961 debug_buf[ bufptr++ ] = 0x0D;
klauss 48:195c97f12e8e 962 debug_buf[ bufptr++ ] = 0x00;
klauss 48:195c97f12e8e 963
klauss 48:195c97f12e8e 964 split = strtok( debug_buf + 4, " " );
klauss 48:195c97f12e8e 965 ext = atoi( split );
klauss 50:d9b6577a70f5 966
klauss 50:d9b6577a70f5 967 port = convert_ext_to_port( ext );
klauss 48:195c97f12e8e 968 split += strlen( split ) + 1;
klauss 54:448d57291be6 969 cmd = split;
klauss 48:195c97f12e8e 970
klauss 48:195c97f12e8e 971 promptcb_last_ext = ext;
klauss 48:195c97f12e8e 972 promptcb_last_port = port;
klauss 55:2f5e7374af9d 973 strcpy( promptcb_last_cmd, cmd );
klauss 48:195c97f12e8e 974
klauss 54:448d57291be6 975 pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n", ext, port, cmd );
klauss 54:448d57291be6 976 __send_to_cb__( __build_cb_package__( ext, port, __PROMPT__, cmd, id_msg++, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
klauss 48:195c97f12e8e 977 pc.printf("\n\rComando enviado\n\r");
klauss 48:195c97f12e8e 978
klauss 48:195c97f12e8e 979 for( register int i = 0; i < 32; i++ )
klauss 48:195c97f12e8e 980 pc.printf("%0x ", write_buffer[ i ] );
klauss 48:195c97f12e8e 981 pc.printf("\n\r");
klauss 48:195c97f12e8e 982
klauss 54:448d57291be6 983 if( from_eth ){
klauss 54:448d57291be6 984 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 985 //debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 54:448d57291be6 986 }
klauss 54:448d57291be6 987
klauss 48:195c97f12e8e 988 debug_buf = ref;
klauss 58:af7e8788f106 989 //bufptr = 0;
klauss 58:af7e8788f106 990 //debug_buf[ 0 ] = 0;
klauss 48:195c97f12e8e 991
klauss 48:195c97f12e8e 992 /*
klauss 48:195c97f12e8e 993
klauss 45:c80574f24dc3 994 unsigned int ext,port;
klauss 45:c80574f24dc3 995 int ant1,ant2;
klauss 45:c80574f24dc3 996
klauss 48:195c97f12e8e 997 debug_buf[ bufptr++ ] = 0x0D;
klauss 48:195c97f12e8e 998 debug_buf[ bufptr++ ] = 0x00;
klauss 48:195c97f12e8e 999
klauss 48:195c97f12e8e 1000 ant1 = str2uint( ( debug_buf + 4 ), &ext );
klauss 48:195c97f12e8e 1001 ant2 = str2uint( ( ( debug_buf + 4 ) + ant1 + 1 ), &port );
klauss 45:c80574f24dc3 1002
klauss 45:c80574f24dc3 1003 promptcb_last_ext = ext;
klauss 45:c80574f24dc3 1004 promptcb_last_port = port;
klauss 48:195c97f12e8e 1005
klauss 48:195c97f12e8e 1006 pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n", ext, port, debug_buf + 4 + ant1 + 2 + ant2 );
klauss 48:195c97f12e8e 1007 __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 1008 pc.printf("\n\rComando enviado\n\r");
klauss 48:195c97f12e8e 1009
klauss 48:195c97f12e8e 1010 for( register int i = 0; i < 300; i++ ){
klauss 48:195c97f12e8e 1011 pc.printf("%x ", write_buffer[ i ] );
klauss 48:195c97f12e8e 1012 if( i % 23 == 0 ) pc.printf("\n\r");
klauss 48:195c97f12e8e 1013 }
klauss 48:195c97f12e8e 1014 pc.printf("\n\r");
klauss 48:195c97f12e8e 1015 */
klauss 45:c80574f24dc3 1016 }
klauss 48:195c97f12e8e 1017
klauss 48:195c97f12e8e 1018 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "_pcb",4 )) {
klauss 45:c80574f24dc3 1019 miss_match = false;
klauss 45:c80574f24dc3 1020 static int id_msg = 0x30;
klauss 48:195c97f12e8e 1021 uint8_t write_buffer[ 300 ];
klauss 48:195c97f12e8e 1022 debug_buf[ bufptr++ ] = 0x0D;
klauss 48:195c97f12e8e 1023 debug_buf[ bufptr++ ] = 0x00;
klauss 45:c80574f24dc3 1024
klauss 48:195c97f12e8e 1025 pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n",promptcb_last_ext, promptcb_last_port, debug_buf + 4 );
klauss 48:195c97f12e8e 1026 __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 1027 pc.printf("\n\rComando enviado\n\r");
klauss 45:c80574f24dc3 1028 }
klauss 48:195c97f12e8e 1029 /*
klauss 48:195c97f12e8e 1030 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "flood kill ", 11 ) ){
klauss 48:195c97f12e8e 1031 miss_match = false;
klauss 48:195c97f12e8e 1032
klauss 48:195c97f12e8e 1033 split = strtok( debug_buf + 11, " " );
klauss 48:195c97f12e8e 1034 int ext_init = atoi( split );
klauss 48:195c97f12e8e 1035 split = strtok( NULL, " " );
klauss 48:195c97f12e8e 1036 int ext_end = atoi( split );
klauss 48:195c97f12e8e 1037 pc.printf("\n\r MUUUUUUUuuuuUUUUUU - I'm not a dog!!!! \n\r");
klauss 48:195c97f12e8e 1038 if( from_eth ){
klauss 48:195c97f12e8e 1039 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "MUUUUUUUuuuuUUUUUU - I'm not a dog!!!!\n\r");
klauss 48:195c97f12e8e 1040 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 48:195c97f12e8e 1041 }
klauss 48:195c97f12e8e 1042 }
klauss 48:195c97f12e8e 1043 */
klauss 58:af7e8788f106 1044 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "cks",3 )) {
klauss 45:c80574f24dc3 1045 miss_match = false;
klauss 45:c80574f24dc3 1046 pcks_s = 1;
klauss 45:c80574f24dc3 1047 }
klauss 45:c80574f24dc3 1048
klauss 58:af7e8788f106 1049 else if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "showcb",6 )) {
klauss 45:c80574f24dc3 1050 miss_match = false;
klauss 45:c80574f24dc3 1051 pshowcb = 1;
klauss 45:c80574f24dc3 1052 }
klauss 45:c80574f24dc3 1053
klauss 58:af7e8788f106 1054 else if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_main ", 11 )) {
klauss 45:c80574f24dc3 1055 if (xmemmatch( (uint8_t*)( debug_buf + 11 ), (uint8_t*) "on",2 )) {
klauss 45:c80574f24dc3 1056 miss_match = false;
klauss 45:c80574f24dc3 1057 pc.printf("\r\nDebug Main ON");
klauss 45:c80574f24dc3 1058 if( from_eth ){
klauss 45:c80574f24dc3 1059 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Main On\n\r" );
klauss 45:c80574f24dc3 1060 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 1061 }
klauss 45:c80574f24dc3 1062 debug_main = 1;
klauss 45:c80574f24dc3 1063 }
klauss 45:c80574f24dc3 1064 if (xmemmatch( (uint8_t*)( debug_buf + 11 ), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 1065 miss_match = false;
klauss 45:c80574f24dc3 1066 pc.printf("\r\nDebug Main OFF");
klauss 45:c80574f24dc3 1067 if( from_eth ){
klauss 45:c80574f24dc3 1068 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Main Off\n\r" );
klauss 45:c80574f24dc3 1069 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 1070 }
klauss 45:c80574f24dc3 1071 debug_main = 0;
klauss 45:c80574f24dc3 1072 }
klauss 45:c80574f24dc3 1073 }
klauss 45:c80574f24dc3 1074
klauss 58:af7e8788f106 1075 else if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_cb_rx ", 12 )) {
klauss 45:c80574f24dc3 1076 if (xmemmatch( (uint8_t*)( debug_buf + 12 ), (uint8_t*) "on",2 )) {
klauss 45:c80574f24dc3 1077 miss_match = false;
klauss 45:c80574f24dc3 1078 pc.printf("\tDebug Cbx Rx ON");
klauss 45:c80574f24dc3 1079 if( from_eth ){
klauss 45:c80574f24dc3 1080 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Cbx On Rx on\n\r" );
klauss 45:c80574f24dc3 1081 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 1082 }
klauss 45:c80574f24dc3 1083 debug_cb_rx = 1;
klauss 45:c80574f24dc3 1084 }
klauss 45:c80574f24dc3 1085 if (xmemmatch( (uint8_t*)( debug_buf + 12 ), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 1086 miss_match = false;
klauss 45:c80574f24dc3 1087 pc.printf("Debug Cbx Rx OFF");
klauss 45:c80574f24dc3 1088 if( from_eth ){
klauss 45:c80574f24dc3 1089 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Cbx Rx Off\n\r" );
klauss 45:c80574f24dc3 1090 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 1091 }
klauss 45:c80574f24dc3 1092 debug_cb_rx = 0;
klauss 45:c80574f24dc3 1093 }
klauss 45:c80574f24dc3 1094 }
klauss 45:c80574f24dc3 1095
klauss 58:af7e8788f106 1096 else if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_file ", 11 )) {
klauss 45:c80574f24dc3 1097 if (xmemmatch( (uint8_t*)( debug_buf + 11 ), (uint8_t*) "on",2 )) {
klauss 45:c80574f24dc3 1098 miss_match = false;
klauss 45:c80574f24dc3 1099 pc.printf("\tDebug File ON");
klauss 45:c80574f24dc3 1100 if( from_eth ){
klauss 45:c80574f24dc3 1101 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug File On\n\r" );
klauss 45:c80574f24dc3 1102 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 1103 }
klauss 45:c80574f24dc3 1104 debug_cb_rx = 1;
klauss 45:c80574f24dc3 1105 }
klauss 45:c80574f24dc3 1106 if (xmemmatch( (uint8_t*)( debug_buf + 11 ), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 1107 miss_match = false;
klauss 45:c80574f24dc3 1108 pc.printf("Debug File OFF");
klauss 45:c80574f24dc3 1109 if( from_eth ){
klauss 45:c80574f24dc3 1110 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug File Off\n\r" );
klauss 45:c80574f24dc3 1111 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 1112 }
klauss 45:c80574f24dc3 1113 debug_cb_rx = 0;
klauss 45:c80574f24dc3 1114 }
klauss 45:c80574f24dc3 1115 }
klauss 45:c80574f24dc3 1116
klauss 58:af7e8788f106 1117 else if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "help" )) {
klauss 45:c80574f24dc3 1118 miss_match = false;
klauss 45:c80574f24dc3 1119 pc.printf("\n\r****************************PROMPT HELP******************\n\r");
klauss 45:c80574f24dc3 1120 if( from_eth ){
klauss 45:c80574f24dc3 1121 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "\n\r****************************PROMPT HELP******************\n\r" );
klauss 45:c80574f24dc3 1122 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1123
klauss 45:c80574f24dc3 1124 else if( udp_request ){
klauss 45:c80574f24dc3 1125 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1126 }
klauss 44:cc4996469404 1127 }
klauss 52:12930cef17c4 1128
klauss 45:c80574f24dc3 1129 pc.printf("ifconfig - mostra o arquivo de configuracao do sistema\n\r");
klauss 45:c80574f24dc3 1130 if( from_eth ){
klauss 45:c80574f24dc3 1131 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "ifconfig - mostra o arquivo de configuracao do sistema\n\r" );
klauss 45:c80574f24dc3 1132 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1133
klauss 45:c80574f24dc3 1134 else if( udp_request ){
klauss 45:c80574f24dc3 1135 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1136 }
klauss 45:c80574f24dc3 1137 }
klauss 45:c80574f24dc3 1138 pc.printf("dconfig - volta as configuracoes do sistema para o padrao de fabrica\n\r");
klauss 45:c80574f24dc3 1139 if( from_eth ){
klauss 45:c80574f24dc3 1140 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "dconfig - volta as configuracoes do sistema para o padrao de fabrica\n\r" );
klauss 45:c80574f24dc3 1141 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1142
klauss 45:c80574f24dc3 1143 else if( udp_request ){
klauss 45:c80574f24dc3 1144 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1145 }
klauss 45:c80574f24dc3 1146 }
klauss 45:c80574f24dc3 1147 pc.printf("callme [ramal porta] - envia o pedido de ligacao para o callbox com o ramal e porta indicada\n\r");
klauss 45:c80574f24dc3 1148 if( from_eth ){
klauss 45:c80574f24dc3 1149 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 1150 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1151
klauss 45:c80574f24dc3 1152 else if( udp_request ){
klauss 45:c80574f24dc3 1153 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1154 }
klauss 45:c80574f24dc3 1155 }
klauss 48:195c97f12e8e 1156 pc.printf("pcb porta comando - envia o <comando> para o cbx <ramal> e <porta> executar\n\r");
klauss 45:c80574f24dc3 1157 if( from_eth ){
klauss 45:c80574f24dc3 1158 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 1159 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1160
klauss 45:c80574f24dc3 1161 else if( udp_request ){
klauss 45:c80574f24dc3 1162 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1163 }
klauss 45:c80574f24dc3 1164 }
klauss 45:c80574f24dc3 1165 pc.printf("format - formata o sistema de arquivos\n\r");
klauss 45:c80574f24dc3 1166 if( from_eth ){
klauss 45:c80574f24dc3 1167 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "format - formata o sistema de arquivos\n\r" );
klauss 45:c80574f24dc3 1168 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1169
klauss 45:c80574f24dc3 1170 else if( udp_request ){
klauss 45:c80574f24dc3 1171 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1172 }
klauss 45:c80574f24dc3 1173 }
klauss 45:c80574f24dc3 1174 pc.printf("reset - resta o sistema\n\r");
klauss 45:c80574f24dc3 1175 if( from_eth ){
klauss 45:c80574f24dc3 1176 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "reset - resta o sistema\n\r" );
klauss 45:c80574f24dc3 1177 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1178
klauss 45:c80574f24dc3 1179 else if( udp_request ){
klauss 45:c80574f24dc3 1180 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1181 }
klauss 45:c80574f24dc3 1182 }
klauss 45:c80574f24dc3 1183 pc.printf("ipset [ip] - Configura o IP da cabeceira\n\r");
klauss 45:c80574f24dc3 1184 if( from_eth ){
klauss 45:c80574f24dc3 1185 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "ipset [ip] - Configura o IP da cabeceira\n\r" );
klauss 45:c80574f24dc3 1186 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1187
klauss 45:c80574f24dc3 1188 else if( udp_request ){
klauss 45:c80574f24dc3 1189 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1190 }
klauss 45:c80574f24dc3 1191 }
klauss 45:c80574f24dc3 1192 pc.printf("extset [ext] - Configura a ext da cabeceira\n\r");
klauss 45:c80574f24dc3 1193 if( from_eth ){
klauss 45:c80574f24dc3 1194 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "extset [ext] - Configura a ext da cabeceira\n\r" );
klauss 45:c80574f24dc3 1195 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1196
klauss 45:c80574f24dc3 1197 else if( udp_request ){
klauss 45:c80574f24dc3 1198 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1199 }
klauss 45:c80574f24dc3 1200 }
klauss 45:c80574f24dc3 1201 pc.printf("msipport [port] - Configura a porta SIP da cabeceira\n\r");
klauss 45:c80574f24dc3 1202 if( from_eth ){
klauss 45:c80574f24dc3 1203 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "msipport [port] - Configura a porta SIP da cabeceira\n\r" );
klauss 45:c80574f24dc3 1204 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1205
klauss 45:c80574f24dc3 1206 else if( udp_request ){
klauss 45:c80574f24dc3 1207 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1208 }
klauss 45:c80574f24dc3 1209 }
klauss 45:c80574f24dc3 1210 pc.printf("serverip [ip] - Configura o ip do servidor asterisk\n\r");
klauss 45:c80574f24dc3 1211 if( from_eth ){
klauss 45:c80574f24dc3 1212 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "serverip [ip] - Configura o ip do servidor asterisk\n\r" );
klauss 45:c80574f24dc3 1213 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1214
klauss 45:c80574f24dc3 1215 else if( udp_request ){
klauss 45:c80574f24dc3 1216 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1217 }
klauss 45:c80574f24dc3 1218 }
klauss 45:c80574f24dc3 1219 pc.printf("serextset [ext] - Configura a server ext da cabeceira\n\r");
klauss 45:c80574f24dc3 1220 if( from_eth ){
klauss 45:c80574f24dc3 1221 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "serextset [ext] - Configura a server ext da cabeceira\n\r" );
klauss 45:c80574f24dc3 1222 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1223
klauss 45:c80574f24dc3 1224 else if( udp_request ){
klauss 45:c80574f24dc3 1225 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1226 }
klauss 45:c80574f24dc3 1227 }
klauss 45:c80574f24dc3 1228 pc.printf("ssport [port] - Configura a porta SIP do servidor asterisk\n\r");
klauss 45:c80574f24dc3 1229 if( from_eth ){
klauss 45:c80574f24dc3 1230 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "ssport [port] - Configura a porta SIP do servidor asterisk\n\r" );
klauss 45:c80574f24dc3 1231 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1232
klauss 45:c80574f24dc3 1233 else if( udp_request ){
klauss 45:c80574f24dc3 1234 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1235 }
klauss 45:c80574f24dc3 1236 }
klauss 45:c80574f24dc3 1237 pc.printf("maskset [mask] - Configura a mascara da cabeceira\n\r");
klauss 45:c80574f24dc3 1238 if( from_eth ){
klauss 45:c80574f24dc3 1239 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "maskset [mask] - Configura a mascara da cabeceira\n\r" );
klauss 45:c80574f24dc3 1240 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1241
klauss 45:c80574f24dc3 1242 else if( udp_request ){
klauss 45:c80574f24dc3 1243 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1244 }
klauss 45:c80574f24dc3 1245 }
klauss 45:c80574f24dc3 1246 pc.printf("gatewayset [gateway] - Configura o gateway da cabeceira\n\r");
klauss 45:c80574f24dc3 1247 if( from_eth ){
klauss 45:c80574f24dc3 1248 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "gatewayset [gateway] - Configura o gateway da cabeceira\n\r" );
klauss 45:c80574f24dc3 1249 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1250
klauss 45:c80574f24dc3 1251 else if( udp_request ){
klauss 45:c80574f24dc3 1252 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1253 }
klauss 45:c80574f24dc3 1254 }
klauss 56:c64bcbaa621a 1255 pc.printf("telemetry_ip - Configura o IP do servidor de telemetria\n\r");
klauss 56:c64bcbaa621a 1256 if( from_eth ){
klauss 56:c64bcbaa621a 1257 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "telemetry_ip - Configura o IP do servidor de telemetria\n\r" );
klauss 56:c64bcbaa621a 1258 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 56:c64bcbaa621a 1259
klauss 56:c64bcbaa621a 1260 else if( udp_request ){
klauss 56:c64bcbaa621a 1261 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 56:c64bcbaa621a 1262 }
klauss 56:c64bcbaa621a 1263 }
klauss 56:c64bcbaa621a 1264 pc.printf("telemetry_iport - Configura a port do servidor de telemetria\n\r");
klauss 56:c64bcbaa621a 1265 if( from_eth ){
klauss 56:c64bcbaa621a 1266 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "telemetry_iport - Configura a port do servidor de telemetria\n\r" );
klauss 56:c64bcbaa621a 1267 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 56:c64bcbaa621a 1268
klauss 56:c64bcbaa621a 1269 else if( udp_request ){
klauss 56:c64bcbaa621a 1270 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 56:c64bcbaa621a 1271 }
klauss 56:c64bcbaa621a 1272 }
klauss 56:c64bcbaa621a 1273
klauss 45:c80574f24dc3 1274 pc.printf("showcb - lista os Cbx registrados na header\n\r");
klauss 45:c80574f24dc3 1275 if( from_eth ){
klauss 45:c80574f24dc3 1276 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "showcb - lista os Cbx registrados na header\n\r" );
klauss 45:c80574f24dc3 1277 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1278
klauss 45:c80574f24dc3 1279 else if( udp_request ){
klauss 45:c80574f24dc3 1280 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1281 }
klauss 45:c80574f24dc3 1282 }
klauss 48:195c97f12e8e 1283 pc.printf("status - lista resumida de cbx registrados na header\n\r");
klauss 48:195c97f12e8e 1284 if( from_eth ){
klauss 48:195c97f12e8e 1285 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "showcb - lista resumida de cbx registrados na header\n\r" );
klauss 48:195c97f12e8e 1286 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 48:195c97f12e8e 1287
klauss 48:195c97f12e8e 1288 else if( udp_request ){
klauss 48:195c97f12e8e 1289 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 48:195c97f12e8e 1290 }
klauss 48:195c97f12e8e 1291 }
klauss 45:c80574f24dc3 1292 pc.printf("cks - exibe estatisticas de check sum\n\r");
klauss 45:c80574f24dc3 1293 if( from_eth ){
klauss 45:c80574f24dc3 1294 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "cks - exibe estatisticas de check sum\n\r" );
klauss 45:c80574f24dc3 1295 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1296
klauss 45:c80574f24dc3 1297 else if( udp_request ){
klauss 45:c80574f24dc3 1298 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1299 }
klauss 45:c80574f24dc3 1300 }
klauss 52:12930cef17c4 1301 pc.printf("reset_cks - reseta estatisticas de check sum\n\r");
klauss 52:12930cef17c4 1302 if( from_eth ){
klauss 52:12930cef17c4 1303 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "reset_cks - reseta estatisticas de check sum\n\r" );
klauss 52:12930cef17c4 1304 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 52:12930cef17c4 1305
klauss 52:12930cef17c4 1306 else if( udp_request ){
klauss 52:12930cef17c4 1307 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 52:12930cef17c4 1308 }
klauss 52:12930cef17c4 1309 }
klauss 52:12930cef17c4 1310
klauss 52:12930cef17c4 1311
klauss 45:c80574f24dc3 1312 pc.printf(". - executa o comando anterior novamente\n\r");
klauss 45:c80574f24dc3 1313 if( from_eth ){
klauss 45:c80574f24dc3 1314 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, ". - executa o comando anterior novamente\n\r" );
klauss 45:c80574f24dc3 1315 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1316
klauss 45:c80574f24dc3 1317 else if( udp_request ){
klauss 45:c80574f24dc3 1318 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1319 }
klauss 45:c80574f24dc3 1320 }
klauss 45:c80574f24dc3 1321 pc.printf("debug [on|off|show] - seleciona debugs gerais | lista de debugs \n\r");
klauss 45:c80574f24dc3 1322 if( from_eth ){
klauss 45:c80574f24dc3 1323 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "debug [on|off|show] - seleciona debugs gerais | lista de debugs \n\r" );
klauss 45:c80574f24dc3 1324 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1325
klauss 45:c80574f24dc3 1326 else if( udp_request ){
klauss 45:c80574f24dc3 1327 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1328 }
klauss 45:c80574f24dc3 1329 }
klauss 45:c80574f24dc3 1330 pc.printf("flood [on|off] - simula envio de pacotes de audio\n\r");
klauss 45:c80574f24dc3 1331 if( from_eth ){
klauss 45:c80574f24dc3 1332 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "flood [on|off] - simula envio de pacotes de audio\n\r");
klauss 45:c80574f24dc3 1333 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1334
klauss 45:c80574f24dc3 1335 else if( udp_request ){
klauss 45:c80574f24dc3 1336 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1337 }
klauss 45:c80574f24dc3 1338 }
klauss 45:c80574f24dc3 1339 pc.printf("PROMPT VERSION: V%d\n\r",PVERSION);
klauss 45:c80574f24dc3 1340 //Obs :: a ultima linha nao mandamos direto pro tcp porque ela eh enviada fora desse escopo
klauss 45:c80574f24dc3 1341 if( from_eth ) snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "PROMPT VERSION: V%d\n\r",PVERSION);
klauss 27:98f824719d1c 1342 }
klauss 54:448d57291be6 1343
klauss 58:af7e8788f106 1344 else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "callme ", 7 )){
klauss 54:448d57291be6 1345 miss_match = false;
klauss 54:448d57291be6 1346 static uint8_t id_msg = 0x10;
klauss 54:448d57291be6 1347 uint8_t write_buffer[ 300 ];
klauss 54:448d57291be6 1348 int ext,port;
klauss 54:448d57291be6 1349 char cmd[ 16 ];
klauss 54:448d57291be6 1350 strcpy( cmd, "call init " );
klauss 54:448d57291be6 1351
klauss 54:448d57291be6 1352 debug_buf[ bufptr++ ] = 0x0D;
klauss 54:448d57291be6 1353 debug_buf[ bufptr++ ] = 0x00;
klauss 54:448d57291be6 1354
klauss 54:448d57291be6 1355 ext = atoi( debug_buf + 7 );
klauss 54:448d57291be6 1356 port = convert_ext_to_port( ext );
klauss 54:448d57291be6 1357
klauss 55:2f5e7374af9d 1358 strcat( cmd, ( ext % 2 ) ? "B\n\r" : "A\n\r" );
klauss 54:448d57291be6 1359
klauss 54:448d57291be6 1360 promptcb_last_ext = ext;
klauss 54:448d57291be6 1361 promptcb_last_port = port;
klauss 54:448d57291be6 1362
klauss 54:448d57291be6 1363 pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n", ext, port, cmd );
klauss 54:448d57291be6 1364 __send_to_cb__( __build_cb_package__( ext, port, __PROMPT__, cmd, id_msg++, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
klauss 58:af7e8788f106 1365 pc.printf("Comando enviado\n\r");
klauss 54:448d57291be6 1366
klauss 54:448d57291be6 1367 if( from_eth ){
klauss 54:448d57291be6 1368 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 1369 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 19:ab2088e0dec6 1370 }
klauss 54:448d57291be6 1371
klauss 54:448d57291be6 1372 bufptr = 0;
klauss 54:448d57291be6 1373 debug_buf[ 0 ] = 0;
klauss 45:c80574f24dc3 1374 }
klauss 45:c80574f24dc3 1375
klauss 45:c80574f24dc3 1376 if( miss_match ){
klauss 48:195c97f12e8e 1377 pc.printf("\n\r> %s: command not found\n\r", debug_buf );
klauss 45:c80574f24dc3 1378 if( from_eth ){
klauss 48:195c97f12e8e 1379 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "> %s: command not found\n ", debug_buf );
klauss 58:af7e8788f106 1380 //debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 1381 }
klauss 45:c80574f24dc3 1382 }
klauss 45:c80574f24dc3 1383 else{
klauss 58:af7e8788f106 1384 if( from_eth && strlen( debug_buf ) > 2 ) strcpy( last_cmd, tmp_cmd );
klauss 58:af7e8788f106 1385
klauss 58:af7e8788f106 1386 else if( strlen( debug_buf ) > 2 ) strcpy( last_cmd, tmp_cmd );
klauss 45:c80574f24dc3 1387 }
klauss 48:195c97f12e8e 1388 }
klauss 45:c80574f24dc3 1389 if( b == 0x0D || bufret == 1 || bufptr > DEBUGBUFSIZE ){
klauss 45:c80574f24dc3 1390 bufret = 0;
klauss 57:78f7191a8b69 1391 if( from_eth ){
klauss 57:78f7191a8b69 1392 from_eth = false;
klauss 57:78f7191a8b69 1393
klauss 48:195c97f12e8e 1394 if( debug_buf[ strlen( debug_buf ) - 1 ] == '\r' || debug_buf[ strlen( debug_buf ) - 1 ] == '\n' ) strcat( debug_buf, "> " );
klauss 48:195c97f12e8e 1395
klauss 48:195c97f12e8e 1396 else strcat( debug_buf, "\n\r> " );
klauss 48:195c97f12e8e 1397
klauss 57:78f7191a8b69 1398 if( tcp_session ){
klauss 57:78f7191a8b69 1399
klauss 57:78f7191a8b69 1400 tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 57:78f7191a8b69 1401
klauss 57:78f7191a8b69 1402 }else if( udp_request ){
klauss 48:195c97f12e8e 1403
klauss 57:78f7191a8b69 1404 int sent = udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 48:195c97f12e8e 1405
klauss 57:78f7191a8b69 1406 udp_request = false;
klauss 57:78f7191a8b69 1407 }
klauss 57:78f7191a8b69 1408 for( register uint16_t i = 0; i < __PROMPT_ETH_BUFFER_SIZE__; i++ ) eth_buffer[ i ] = 0;
klauss 57:78f7191a8b69 1409 debug_buf = __debug_buf__;
klauss 57:78f7191a8b69 1410 bufptr = last_bufptr;
klauss 45:c80574f24dc3 1411 }else{
klauss 42:480335bdde12 1412 bufptr = 0;
klauss 58:af7e8788f106 1413 for( uint8_t i = 0; i < DEBUGBUFSIZE; i++ ) debug_buf[ i ] = 0;
klauss 45:c80574f24dc3 1414 }
klauss 45:c80574f24dc3 1415 pc.putc(0x0A);
klauss 45:c80574f24dc3 1416 pc.putc(0x0D);
klauss 45:c80574f24dc3 1417 pc.printf("> ");
klauss 45:c80574f24dc3 1418 }
klauss 36:728498a78e1e 1419 return( NULL );
klauss 50:d9b6577a70f5 1420 }
klauss 50:d9b6577a70f5 1421
klauss 51:5fc3a8f02fdf 1422 int convert_ext_to_port( int ext ){
klauss 51:5fc3a8f02fdf 1423 if( ext < 1000 ) return ext;
klauss 51:5fc3a8f02fdf 1424
klauss 51:5fc3a8f02fdf 1425 else{
klauss 51:5fc3a8f02fdf 1426 int aux = 0;
klauss 51:5fc3a8f02fdf 1427 aux = ( ext / 1000 ) * 1000;
klauss 51:5fc3a8f02fdf 1428 ext -= aux;
klauss 51:5fc3a8f02fdf 1429 aux += ext % 100;
klauss 51:5fc3a8f02fdf 1430 return( aux );
klauss 51:5fc3a8f02fdf 1431 }
klauss 50:d9b6577a70f5 1432 }
klauss 54:448d57291be6 1433
klauss 55:2f5e7374af9d 1434 void set_ip( char * new_header_ip ){
klauss 54:448d57291be6 1435 fip = fopen("/qspi/myip.txt", "w");
klauss 55:2f5e7374af9d 1436 fprintf( fip, "%s\n\r", new_header_ip );
klauss 54:448d57291be6 1437 fclose( fip );
klauss 54:448d57291be6 1438 }
klauss 54:448d57291be6 1439
klauss 55:2f5e7374af9d 1440 void set_header_ext( int new_header_ext ){
klauss 54:448d57291be6 1441 fext = fopen( "/qspi/myext.txt", "w" );
klauss 55:2f5e7374af9d 1442 fprintf( fext, "%i\n\r", new_header_ext );
klauss 54:448d57291be6 1443 fclose( fext );
klauss 55:2f5e7374af9d 1444 }
klauss 55:2f5e7374af9d 1445
klauss 55:2f5e7374af9d 1446 void set_header_sip_port( int new_header_sip_port ){
klauss 55:2f5e7374af9d 1447 fport = fopen("/qspi/mysipport.txt", "w");
klauss 55:2f5e7374af9d 1448 fprintf( fport,"%i\n\r", new_header_sip_port );
klauss 55:2f5e7374af9d 1449 fclose( fport );
klauss 55:2f5e7374af9d 1450 }
klauss 55:2f5e7374af9d 1451
klauss 55:2f5e7374af9d 1452 void set_server_ip( char * new_server_ip ){
klauss 55:2f5e7374af9d 1453 fsip = fopen("/qspi/serverip.txt", "w");
klauss 55:2f5e7374af9d 1454 fprintf( fsip,"%s\n\r", new_server_ip );
klauss 55:2f5e7374af9d 1455 fclose( fsip );
klauss 55:2f5e7374af9d 1456 }
klauss 55:2f5e7374af9d 1457
klauss 55:2f5e7374af9d 1458 void set_server_ext( int new_server_ext ){
klauss 55:2f5e7374af9d 1459 fserext = fopen("/qspi/peerext.txt", "w");
klauss 55:2f5e7374af9d 1460 fprintf( fserext , "%i\n\r", new_server_ext );
klauss 55:2f5e7374af9d 1461 fclose( fserext );
klauss 55:2f5e7374af9d 1462 }
klauss 55:2f5e7374af9d 1463
klauss 55:2f5e7374af9d 1464 void set_server_port( int new_server_port ){
klauss 55:2f5e7374af9d 1465 fsport = fopen("/qspi/serverport.txt", "w");
klauss 55:2f5e7374af9d 1466 fprintf(fsport,"%i\n\r", new_server_port );
klauss 55:2f5e7374af9d 1467 fclose( fsport );
klauss 55:2f5e7374af9d 1468 }
klauss 55:2f5e7374af9d 1469
klauss 55:2f5e7374af9d 1470 void set_mask( char * new_mask ){
klauss 55:2f5e7374af9d 1471 fmask = fopen("/qspi/mymask.txt", "w");
klauss 55:2f5e7374af9d 1472 fprintf(fmask,"%s\n\r",new_mask );
klauss 55:2f5e7374af9d 1473 fclose( fmask );
klauss 55:2f5e7374af9d 1474 }
klauss 55:2f5e7374af9d 1475
klauss 55:2f5e7374af9d 1476 void set_gateway( char * new_gateway ){
klauss 55:2f5e7374af9d 1477 fgate = fopen("/qspi/mygate.txt", "w");
klauss 55:2f5e7374af9d 1478 fprintf(fgate,"%s\n\r", new_gateway );
klauss 55:2f5e7374af9d 1479 fclose( fgate );
klauss 56:c64bcbaa621a 1480 }
klauss 56:c64bcbaa621a 1481
klauss 56:c64bcbaa621a 1482 void set_udp_port_listener( int new_udp_port_listener ){
klauss 56:c64bcbaa621a 1483 fudpport = fopen( "/qspi/udpport.txt", "w" );
klauss 56:c64bcbaa621a 1484 fprintf( fudpport, "%i\n\r",new_udp_port_listener );
klauss 56:c64bcbaa621a 1485 fclose( fudpport );
klauss 56:c64bcbaa621a 1486 }
klauss 56:c64bcbaa621a 1487
klauss 56:c64bcbaa621a 1488 void set_tcp_port_listener( int new_tcp_port_listener ){
klauss 56:c64bcbaa621a 1489 ftcpport = fopen( "/qspi/tcpport.txt", "w" );
klauss 56:c64bcbaa621a 1490 fprintf( ftcpport, "%i\n\r",new_tcp_port_listener );
klauss 56:c64bcbaa621a 1491 fclose( ftcpport );
klauss 56:c64bcbaa621a 1492 }
klauss 56:c64bcbaa621a 1493
klauss 56:c64bcbaa621a 1494 void set_telemetry_ip( char * new_telemetry_ip ){
klauss 56:c64bcbaa621a 1495 ftip = fopen("/qspi/telemetry_ip.txt", "w" );
klauss 56:c64bcbaa621a 1496 fprintf(ftip,"%s\n\r", new_telemetry_ip );
klauss 56:c64bcbaa621a 1497 fclose( ftip );
klauss 56:c64bcbaa621a 1498 }
klauss 56:c64bcbaa621a 1499
klauss 56:c64bcbaa621a 1500 void set_telemetry_port( int new_telemetry_port ){
klauss 56:c64bcbaa621a 1501 ftport = fopen("/qspi/telemetry_port.txt", "w" );
klauss 56:c64bcbaa621a 1502 fprintf(ftport,"%i\n\r", new_telemetry_port );
klauss 56:c64bcbaa621a 1503 fclose( ftport );
klauss 54:448d57291be6 1504 }