Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Committer:
klauss
Date:
Wed Oct 22 22:32:26 2014 +0000
Revision:
55:2f5e7374af9d
Parent:
54:448d57291be6
Child:
56:c64bcbaa621a
validando set/get via prompt

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