Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Committer:
klauss
Date:
Tue Oct 07 18:38:30 2014 +0000
Revision:
46:a670f187a704
Parent:
45:c80574f24dc3
Child:
48:195c97f12e8e
ajuste de bugs no uso do sistema de arquivos

Who changed what in which revision?

UserRevisionLine numberNew contents of line
klauss 44:cc4996469404 1 #include "prompt.h"
Cola 24:270b436a1bb0 2
klauss 45:c80574f24dc3 3 TCPSocketServer tcp_server;
klauss 45:c80574f24dc3 4 TCPSocketConnection tcp_client;
klauss 41:69bf7091c2ca 5 Timer tcp_timer;
klauss 45:c80574f24dc3 6
klauss 45:c80574f24dc3 7 UDPSocket udp_server;
klauss 45:c80574f24dc3 8 Endpoint udp_client;
klauss 41:69bf7091c2ca 9
klauss 28:94aec56c6329 10 uint8_t debug_alive = 0;
klauss 28:94aec56c6329 11 uint8_t debug_sip = 0;
klauss 29:7246460b73f8 12 uint8_t debug_vector = 0;
klauss 29:7246460b73f8 13 uint8_t debug_cb = 0;
klauss 30:8dfb6d8de53d 14 uint8_t debug_main = 0;
klauss 31:bb5fb28a77df 15 uint8_t debug_cks = 0;
Cola 22:d2a4b5939115 16 uint8_t pcks_s = 0;
Cola 24:270b436a1bb0 17 uint8_t pshowcb = 0;
klauss 31:bb5fb28a77df 18 uint8_t debug_cb_rx = 0;
klauss 31:bb5fb28a77df 19 uint8_t debug_cb_tx = 0;
klauss 31:bb5fb28a77df 20 uint8_t debug_eth_rx = 0;
klauss 31:bb5fb28a77df 21 uint8_t debug_eth_tx = 0;
klauss 43:455522f98de5 22 uint8_t debug_prompt_eth = 0;
klauss 31:bb5fb28a77df 23 uint8_t debug_file = 0;
klauss 38:af5ecd6997ab 24 bool from_eth = false;
klauss 42:480335bdde12 25 bool udp_request = false;
klauss 42:480335bdde12 26 bool tcp_session = false;
klauss 28:94aec56c6329 27
klauss 29:7246460b73f8 28 uint8_t test_debug = 1;
klauss 45:c80574f24dc3 29 #define PVERSION 4 // Sempre atualizar a versao do prompt
klauss 19:ab2088e0dec6 30
Cola 21:0bd688722e81 31 #define DEBUGBUFSIZE 50
klauss 35:96885a7931f0 32 char __debug_buf__[DEBUGBUFSIZE];
klauss 35:96885a7931f0 33 char * debug_buf = __debug_buf__;
klauss 30:8dfb6d8de53d 34 char last_debug_buf[ DEBUGBUFSIZE ] = "help";
klauss 45:c80574f24dc3 35 FILE *fip, *fmask, *fgate, *fport, *fsip, *fsport, *fext, *fserext, *fudpport, *ftcpport;
klauss 19:ab2088e0dec6 36 uint8_t debug_prompt = 0;
klauss 19:ab2088e0dec6 37 uint8_t bufptr = 0;
klauss 35:96885a7931f0 38 uint8_t last_bufptr = 0;
klauss 19:ab2088e0dec6 39
klauss 19:ab2088e0dec6 40 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 41 while (size--) {
klauss 19:ab2088e0dec6 42 if (*s1++ != *s2++) return 0; /* does not match */
klauss 19:ab2088e0dec6 43 }
klauss 19:ab2088e0dec6 44 return 1; /* matches */
klauss 19:ab2088e0dec6 45 }
klauss 19:ab2088e0dec6 46
klauss 19:ab2088e0dec6 47 uint8_t xstrmatch(const uint8_t * s1, const uint8_t * s2) { // presente na lib.h pode retirar da versao final
klauss 19:ab2088e0dec6 48 while (*s1) {
klauss 19:ab2088e0dec6 49 if (*s1++ != *s2++) return 0; /* does not match */
klauss 19:ab2088e0dec6 50 }
klauss 19:ab2088e0dec6 51 if ( *s2 == 0 )
klauss 19:ab2088e0dec6 52 return 1; /* matches */
klauss 19:ab2088e0dec6 53 else
klauss 19:ab2088e0dec6 54 return 0; /* does not match */
klauss 19:ab2088e0dec6 55 }
klauss 19:ab2088e0dec6 56
klauss 19:ab2088e0dec6 57 void xmemcpy(uint8_t * dest, const uint8_t * src, uint16_t size) { // presente na lib.h pode retirar da versao final
klauss 19:ab2088e0dec6 58 while (size--) *dest++ = *src++;
klauss 19:ab2088e0dec6 59 }
klauss 19:ab2088e0dec6 60
Cola 21:0bd688722e81 61 int str2uint (char * s, unsigned int * val) {
Cola 21:0bd688722e81 62 int i = 0;
Cola 21:0bd688722e81 63 unsigned int ret = 0;
Cola 21:0bd688722e81 64 for (;;) {
Cola 21:0bd688722e81 65 if (s[i] < '0') {
Cola 21:0bd688722e81 66 *val = ret;
Cola 21:0bd688722e81 67 return i;
Cola 21:0bd688722e81 68 }
Cola 21:0bd688722e81 69 ret *= 10;
Cola 21:0bd688722e81 70 ret += s[i] - '0';
Cola 21:0bd688722e81 71 i++;
Cola 21:0bd688722e81 72 }
Cola 21:0bd688722e81 73 }
klauss 19:ab2088e0dec6 74
klauss 38:af5ecd6997ab 75 // Print the content of a given file
klauss 38:af5ecd6997ab 76 void cat(const char* fname){
klauss 19:ab2088e0dec6 77 char buff[513];
klauss 19:ab2088e0dec6 78 int num;
klauss 19:ab2088e0dec6 79
klauss 19:ab2088e0dec6 80 FILE *fp = fopen(fname, "r");
klauss 19:ab2088e0dec6 81 if (fp == NULL) {
klauss 42:480335bdde12 82 if( debug_file ) pc.printf( "Failed to open %s", fname);
klauss 19:ab2088e0dec6 83 return;
klauss 19:ab2088e0dec6 84 }
klauss 19:ab2088e0dec6 85
klauss 42:480335bdde12 86 while( ( num = fread( buff, 1, 512, fp ) ) > 0 ){
klauss 42:480335bdde12 87 buff[ num ] = '\0';
klauss 42:480335bdde12 88 pc.printf( buff );
klauss 42:480335bdde12 89 if( from_eth ){
klauss 45:c80574f24dc3 90 if( tcp_session ) tcp_client.send_all( buff, strlen( buff ) );
klauss 45:c80574f24dc3 91
klauss 45:c80574f24dc3 92 else if( udp_request ){
klauss 45:c80574f24dc3 93 udp_server.sendTo( udp_client, buff, strlen( buff ) );
klauss 45:c80574f24dc3 94 }
klauss 42:480335bdde12 95 }
klauss 19:ab2088e0dec6 96 }
klauss 19:ab2088e0dec6 97 fclose(fp);
klauss 19:ab2088e0dec6 98 }
klauss 19:ab2088e0dec6 99
klauss 28:94aec56c6329 100 // operantion with the system config files
klauss 42:480335bdde12 101 void files( const char type ){
klauss 42:480335bdde12 102 // show files
klauss 42:480335bdde12 103 if (type == 's' ){
klauss 42:480335bdde12 104 pc.printf("\n\rHeader IP " );
klauss 42:480335bdde12 105 if( from_eth ){
klauss 42:480335bdde12 106 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rHeader IP " );
klauss 45:c80574f24dc3 107 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 108
klauss 45:c80574f24dc3 109 else if( udp_request ){
klauss 45:c80574f24dc3 110 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 111 }
klauss 42:480335bdde12 112 }
klauss 19:ab2088e0dec6 113 cat("/qspi/myip.txt");
klauss 42:480335bdde12 114
klauss 28:94aec56c6329 115 pc.printf("\n\rHeader ext ");
klauss 42:480335bdde12 116 if( from_eth ){
klauss 42:480335bdde12 117 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rHeader ext " );
klauss 45:c80574f24dc3 118 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 119
klauss 45:c80574f24dc3 120 else if( udp_request ){
klauss 45:c80574f24dc3 121 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 122 }
klauss 42:480335bdde12 123 }
klauss 28:94aec56c6329 124 cat("/qspi/myext.txt");
klauss 42:480335bdde12 125
klauss 28:94aec56c6329 126 pc.printf("\n\rHeader port ");
klauss 42:480335bdde12 127 if( from_eth ){
klauss 42:480335bdde12 128 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rHeader port " );
klauss 45:c80574f24dc3 129 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 130
klauss 45:c80574f24dc3 131 else if( udp_request ){
klauss 45:c80574f24dc3 132 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 133 }
klauss 42:480335bdde12 134 }
klauss 28:94aec56c6329 135 cat("/qspi/mysipport.txt");
klauss 28:94aec56c6329 136
klauss 42:480335bdde12 137 pc.printf("\n\rServer IP ");
klauss 42:480335bdde12 138 if( from_eth ){
klauss 42:480335bdde12 139 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rServer IP " );
klauss 45:c80574f24dc3 140 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 141
klauss 45:c80574f24dc3 142 else if( udp_request ){
klauss 45:c80574f24dc3 143 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 144 }
klauss 42:480335bdde12 145 }
klauss 28:94aec56c6329 146 cat("/qspi/serverip.txt");
klauss 42:480335bdde12 147
klauss 28:94aec56c6329 148 pc.printf("\n\rServer ext ");
klauss 42:480335bdde12 149 if( from_eth ){
klauss 42:480335bdde12 150 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rServer ext " );
klauss 45:c80574f24dc3 151 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 152
klauss 45:c80574f24dc3 153 else if( udp_request ){
klauss 45:c80574f24dc3 154 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 155 }
klauss 42:480335bdde12 156 }
klauss 28:94aec56c6329 157 cat("/qspi/peerext.txt");
klauss 42:480335bdde12 158
klauss 28:94aec56c6329 159 pc.printf("\n\rServer port ");
klauss 42:480335bdde12 160 if( from_eth ){
klauss 42:480335bdde12 161 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rServer port " );
klauss 45:c80574f24dc3 162 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 163
klauss 45:c80574f24dc3 164 else if( udp_request ){
klauss 45:c80574f24dc3 165 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 166 }
klauss 42:480335bdde12 167 }
klauss 28:94aec56c6329 168 cat("/qspi/serverport.txt");
klauss 28:94aec56c6329 169
klauss 28:94aec56c6329 170 pc.printf("\n\rMascara de rede ");
klauss 42:480335bdde12 171 if( from_eth ){
klauss 42:480335bdde12 172 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rMascara de rede " );
klauss 45:c80574f24dc3 173 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 174
klauss 45:c80574f24dc3 175 else if( udp_request ){
klauss 45:c80574f24dc3 176 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 177 }
klauss 42:480335bdde12 178 }
klauss 19:ab2088e0dec6 179 cat("/qspi/mymask.txt");
klauss 42:480335bdde12 180
klauss 28:94aec56c6329 181 pc.printf("\n\rGateway IP ");
klauss 42:480335bdde12 182 if( from_eth ){
klauss 42:480335bdde12 183 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rGateway IP " );
klauss 45:c80574f24dc3 184 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 185
klauss 45:c80574f24dc3 186 else if( udp_request ){
klauss 45:c80574f24dc3 187 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 188 }
klauss 42:480335bdde12 189 }
klauss 19:ab2088e0dec6 190 cat("/qspi/mygate.txt");
klauss 43:455522f98de5 191
klauss 45:c80574f24dc3 192 pc.printf("\n\rUDP Port ");
klauss 45:c80574f24dc3 193 if( from_eth ){
klauss 45:c80574f24dc3 194 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rUDP Port " );
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 45:c80574f24dc3 200 }
klauss 45:c80574f24dc3 201 cat("/qspi/udpport.txt");
klauss 45:c80574f24dc3 202
klauss 45:c80574f24dc3 203 pc.printf("\n\rTCP Port ");
klauss 45:c80574f24dc3 204 if( from_eth ){
klauss 45:c80574f24dc3 205 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rTCP Port " );
klauss 45:c80574f24dc3 206 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 207
klauss 45:c80574f24dc3 208 else if( udp_request ){
klauss 45:c80574f24dc3 209 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 210 }
klauss 45:c80574f24dc3 211 }
klauss 45:c80574f24dc3 212 cat("/qspi/tcpport.txt");
klauss 45:c80574f24dc3 213
klauss 43:455522f98de5 214 debug_buf[ 0 ] = 0;
klauss 43:455522f98de5 215 bufptr = 0;
klauss 19:ab2088e0dec6 216 }
klauss 19:ab2088e0dec6 217
klauss 19:ab2088e0dec6 218 if (type == 'c' ){ // close all files
klauss 28:94aec56c6329 219 fclose( fip );
klauss 28:94aec56c6329 220 fclose( fmask );
klauss 28:94aec56c6329 221 fclose( fgate );
klauss 28:94aec56c6329 222 fclose( fport );
klauss 28:94aec56c6329 223 fclose( fsip );
klauss 28:94aec56c6329 224 fclose( fsport );
klauss 28:94aec56c6329 225 fclose( fext );
klauss 28:94aec56c6329 226 fclose( fserext );
klauss 45:c80574f24dc3 227 fclose( fudpport );
klauss 45:c80574f24dc3 228 fclose( ftcpport );
klauss 19:ab2088e0dec6 229 }
klauss 19:ab2088e0dec6 230
klauss 19:ab2088e0dec6 231 if (type == 'i' ){ // Check if files exist, if not create the files
klauss 33:735fd60e96d8 232 bool exists = true;
klauss 19:ab2088e0dec6 233 fip = fopen("/qspi/myip.txt", "r");
klauss 19:ab2088e0dec6 234 if (fip == NULL){
klauss 19:ab2088e0dec6 235 fip = fopen("/qspi/myip.txt", "w");
klauss 29:7246460b73f8 236 //fprintf(fip, "%s\n\r",__MY_IP__); //myip
klauss 46:a670f187a704 237 fprintf(fip, "%s\n\r",__MY_IP__); //myip
klauss 33:735fd60e96d8 238 exists = false;
klauss 19:ab2088e0dec6 239 }
klauss 28:94aec56c6329 240
klauss 28:94aec56c6329 241 fserext = fopen("/qspi/myext.txt", "r");
klauss 28:94aec56c6329 242 if ( fserext == NULL ){
klauss 28:94aec56c6329 243 fserext = fopen("/qspi/myext.txt", "w");
klauss 38:af5ecd6997ab 244 fprintf( fserext, "%i\n\r" ,__MY_EXT__ ); //asterisk ext
klauss 33:735fd60e96d8 245 exists = false;
klauss 28:94aec56c6329 246 }
klauss 28:94aec56c6329 247 fport = fopen("/qspi/mysipport.txt", "r");
klauss 28:94aec56c6329 248 if (fport == NULL){
klauss 28:94aec56c6329 249 fport = fopen("/qspi/mysipport.txt", "w");
klauss 38:af5ecd6997ab 250 fprintf(fport, "%i\n\r",__MY_PORT__); //mysipport
klauss 33:735fd60e96d8 251 exists = false;
klauss 28:94aec56c6329 252 }
klauss 28:94aec56c6329 253 fsip = fopen("/qspi/serverip.txt", "r");
klauss 28:94aec56c6329 254 if (fsip == NULL){
klauss 28:94aec56c6329 255 fsip = fopen("/qspi/serverip.txt", "w");
klauss 29:7246460b73f8 256 //fprintf(fsip, "%s\n\r",__SERVER_IP__ ); //asterisk ip
klauss 46:a670f187a704 257 fprintf(fsip, "%s\n\r",__SERVER_IP__ ); //asterisk ip
klauss 33:735fd60e96d8 258 exists = false;
klauss 28:94aec56c6329 259 }
klauss 28:94aec56c6329 260
klauss 28:94aec56c6329 261 fext = fopen("/qspi/peerext.txt", "r");
klauss 28:94aec56c6329 262 if ( fext == NULL ){
klauss 28:94aec56c6329 263 fext = fopen("/qspi/peerext.txt", "w");
klauss 38:af5ecd6997ab 264 fprintf( fext, "%i\n\r",__PEER_EXT__ ); //asterisk ip
klauss 33:735fd60e96d8 265 exists = false;
klauss 28:94aec56c6329 266 }
klauss 28:94aec56c6329 267 fsport = fopen("/qspi/serverport.txt", "r");
klauss 28:94aec56c6329 268 if (fsport == NULL){
klauss 28:94aec56c6329 269 fsport = fopen("/qspi/serverport.txt", "w");
klauss 38:af5ecd6997ab 270 fprintf(fsport, "%i\n\r",__SERVER_PORT__ ); //asterisk port
klauss 33:735fd60e96d8 271 exists = false;
klauss 28:94aec56c6329 272 }
klauss 28:94aec56c6329 273
klauss 19:ab2088e0dec6 274 fmask = fopen("/qspi/mymask.txt", "r");
klauss 19:ab2088e0dec6 275 if (fmask == NULL){
klauss 19:ab2088e0dec6 276 fmask = fopen("/qspi/mymask.txt", "w");
klauss 46:a670f187a704 277 fprintf(fmask, "%s\n\r",__MY_MSK__); //mymask
klauss 33:735fd60e96d8 278 exists = false;
klauss 19:ab2088e0dec6 279 }
klauss 19:ab2088e0dec6 280 fgate = fopen("/qspi/mygateway.txt", "r");
klauss 19:ab2088e0dec6 281 if (fgate == NULL){
klauss 19:ab2088e0dec6 282 fgate = fopen("/qspi/mygate.txt", "w");
klauss 46:a670f187a704 283 fprintf(fgate, "%s\n\r",__MY_GTW__); //mygateway
klauss 45:c80574f24dc3 284 exists = false;
klauss 45:c80574f24dc3 285 }
klauss 45:c80574f24dc3 286 fudpport = fopen("/qspi/udpport.txt", "r" );
klauss 45:c80574f24dc3 287 if( fudpport == NULL ){
klauss 45:c80574f24dc3 288 fudpport = fopen("/qspi/udpport.txt", "w");
klauss 45:c80574f24dc3 289 fprintf( fudpport, "%i\n\r",UDP_PORT_LISTENER );
klauss 45:c80574f24dc3 290 exists = false;
klauss 45:c80574f24dc3 291 }
klauss 45:c80574f24dc3 292 ftcpport = fopen("/qspi/tcpport.txt", "r" );
klauss 45:c80574f24dc3 293 if( ftcpport == NULL ){
klauss 45:c80574f24dc3 294 ftcpport = fopen("/qspi/tcpport.txt", "w");
klauss 45:c80574f24dc3 295 fprintf( ftcpport, "%i\n\r", TCP_PORT_LISTENER );
klauss 33:735fd60e96d8 296 exists = false;
klauss 19:ab2088e0dec6 297 }
klauss 44:cc4996469404 298 if( !exists ){
klauss 44:cc4996469404 299 pc.printf("\n\rDefault configurations set!\n\r");
klauss 44:cc4996469404 300 if( from_eth ){
klauss 44:cc4996469404 301 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Default configurations set!\n\r");
klauss 44:cc4996469404 302 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 44:cc4996469404 303 if( tcp_session ){
klauss 45:c80574f24dc3 304 tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 44:cc4996469404 305 debug_buf[ 0 ] = 0;
klauss 44:cc4996469404 306 bufptr = 0;
klauss 44:cc4996469404 307 }
klauss 44:cc4996469404 308 }
klauss 44:cc4996469404 309 }
klauss 19:ab2088e0dec6 310 }
klauss 19:ab2088e0dec6 311
klauss 19:ab2088e0dec6 312 if (type == 'r' ){ // Just open for read
klauss 19:ab2088e0dec6 313 fip = fopen("/qspi/myip.txt", "r");
klauss 19:ab2088e0dec6 314 fmask = fopen("/qspi/mymask.txt", "r");
klauss 19:ab2088e0dec6 315 fgate = fopen("/qspi/mygateway.txt", "r");
klauss 19:ab2088e0dec6 316 fport = fopen("/qspi/mysipport.txt", "r");
klauss 19:ab2088e0dec6 317 fsip = fopen("/qspi/serverip.txt", "r");
klauss 19:ab2088e0dec6 318 fsport = fopen("/qspi/serverport.txt", "r");
klauss 28:94aec56c6329 319 fext = fopen( "/qspi/myext.txt", "r" );
klauss 28:94aec56c6329 320 fserext = fopen( "/qspi/peerext.txt", "r" );
klauss 45:c80574f24dc3 321 fudpport = fopen( "/qspi/udpport.txt", "r" );
klauss 45:c80574f24dc3 322 ftcpport = fopen( "/qspi/tcpport.txt", "r" );
klauss 19:ab2088e0dec6 323 }
klauss 19:ab2088e0dec6 324
klauss 19:ab2088e0dec6 325 if (type == 'w'){ // Create and write the default configs
klauss 19:ab2088e0dec6 326 fip = fopen("/qspi/myip.txt", "w");
klauss 19:ab2088e0dec6 327 fmask = fopen("/qspi/mymask.txt", "w");
klauss 19:ab2088e0dec6 328 fgate = fopen("/qspi/mygateway.txt", "w");
klauss 19:ab2088e0dec6 329 fport = fopen("/qspi/mysipport.txt", "w");
klauss 19:ab2088e0dec6 330 fsip = fopen("/qspi/serverip.txt", "w");
klauss 19:ab2088e0dec6 331 fsport = fopen("/qspi/serverport.txt", "w");
klauss 28:94aec56c6329 332 fext = fopen( "/qspi/myext.txt", "w" );
klauss 28:94aec56c6329 333 fserext = fopen( "/qspi/peerext.txt", "w" );
klauss 45:c80574f24dc3 334 fudpport = fopen( "/qspi/udpport.txt", "w" );
klauss 45:c80574f24dc3 335 ftcpport = fopen( "/qspi/tcpport.txt", "w" );
klauss 19:ab2088e0dec6 336
klauss 46:a670f187a704 337 fprintf( fip, "%s\n\r", __MY_IP__ ); //myip
klauss 45:c80574f24dc3 338 fprintf( fport, "%i\n\r", __MY_PORT__ ); //mysipport // isso pode dar pala
klauss 38:af5ecd6997ab 339 fprintf( fext, "%i\n\r", __MY_EXT__ ); //myext
klauss 28:94aec56c6329 340
klauss 46:a670f187a704 341 fprintf( fsip, "%s\n\r", __SERVER_IP__ ); //asterisk ip
klauss 38:af5ecd6997ab 342 fprintf( fserext, "%i\n\r",__PEER_EXT__ ); //asterisk port
klauss 38:af5ecd6997ab 343 fprintf( fsport, "%i\n\r",__SERVER_PORT__ ); //asterisk port
klauss 28:94aec56c6329 344
klauss 46:a670f187a704 345 fprintf( fmask, "%s\n\r",__MY_MSK__ ); //mymask
klauss 44:cc4996469404 346 fprintf( fgate, "%s\n\r", __MY_GTW__ ); //mygateway
klauss 19:ab2088e0dec6 347
klauss 45:c80574f24dc3 348 fprintf( fudpport, "%i\n\r",UDP_PORT_LISTENER );
klauss 45:c80574f24dc3 349 fprintf( ftcpport, "%i\n\r",TCP_PORT_LISTENER );
klauss 45:c80574f24dc3 350
klauss 19:ab2088e0dec6 351 files('c');
klauss 19:ab2088e0dec6 352
klauss 44:cc4996469404 353 pc.printf("\n\rDefault configurations set!\n\r");
klauss 44:cc4996469404 354 if( from_eth ){
klauss 44:cc4996469404 355 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rDefault configurations set!\n\r");
klauss 44:cc4996469404 356 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 44:cc4996469404 357 if( tcp_session ){
klauss 45:c80574f24dc3 358 tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 359 }else if( udp_request ){
klauss 45:c80574f24dc3 360 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 44:cc4996469404 361 }
klauss 45:c80574f24dc3 362 debug_buf[ 0 ] = 0;
klauss 45:c80574f24dc3 363 bufptr = 0;
klauss 44:cc4996469404 364 }
klauss 19:ab2088e0dec6 365 }
klauss 19:ab2088e0dec6 366 }
klauss 26:725cbbedadd5 367 void init_fsystem(){
klauss 26:725cbbedadd5 368 // init file system and check if files exist
klauss 26:725cbbedadd5 369 if (!qspifs.isformatted()) {
klauss 26:725cbbedadd5 370 qspifs.format();
klauss 44:cc4996469404 371 pc.printf("\n\rFile system configured!!\n\r");
klauss 26:725cbbedadd5 372 }
klauss 26:725cbbedadd5 373 files('i'); // check if the files are created
klauss 26:725cbbedadd5 374 files('c');
klauss 44:cc4996469404 375 pc.printf("\n\r*******File System Ready*******\n\r");
klauss 43:455522f98de5 376 }
klauss 43:455522f98de5 377
klauss 43:455522f98de5 378 void init_prompt(){
klauss 45:c80574f24dc3 379 tcp_server.bind( TCP_PORT_LISTENER );
klauss 45:c80574f24dc3 380 tcp_server.listen();
klauss 41:69bf7091c2ca 381 tcp_timer.start();
klauss 45:c80574f24dc3 382 tcp_server.set_blocking( false, 1 );
klauss 45:c80574f24dc3 383
klauss 45:c80574f24dc3 384 udp_server.set_blocking( false, 2 );
klauss 45:c80574f24dc3 385 udp_server.bind( UDP_PORT_LISTENER );
klauss 45:c80574f24dc3 386
klauss 43:455522f98de5 387 pc.printf("*******Prompt eth Ready*******\n\r");
klauss 19:ab2088e0dec6 388 }
klauss 19:ab2088e0dec6 389
klauss 28:94aec56c6329 390 // main prompt process
klauss 41:69bf7091c2ca 391 char * prompt_process( char * msg_to_eth ){
klauss 28:94aec56c6329 392 //FIXME dar flush na serial
klauss 19:ab2088e0dec6 393 volatile char b = 0;
klauss 19:ab2088e0dec6 394 static uint8_t bufret = 0;
klauss 30:8dfb6d8de53d 395 static Timer flood_timeout;
klauss 36:728498a78e1e 396 bool miss_match = true;
klauss 41:69bf7091c2ca 397 char buffer[ 1024 ];
klauss 45:c80574f24dc3 398 if( flood_timeout.read() > 60 ){
klauss 45:c80574f24dc3 399 pflood = 0;
klauss 45:c80574f24dc3 400 flood_timeout.stop();
klauss 45:c80574f24dc3 401 flood_timeout.reset();
klauss 45:c80574f24dc3 402 }
klauss 45:c80574f24dc3 403 if( tcp_timer.read() > 3 || tcp_session ){
klauss 45:c80574f24dc3 404 wdt.kick();
klauss 45:c80574f24dc3 405 tcp_timer.reset();
klauss 45:c80574f24dc3 406 if( tcp_session ){
klauss 45:c80574f24dc3 407 tcp_client.set_blocking( false, 1 );
klauss 45:c80574f24dc3 408 int n = tcp_client.receive( buffer, sizeof( buffer ) );
klauss 45:c80574f24dc3 409 if( n > 0 ){
klauss 45:c80574f24dc3 410 wdt.kick();
klauss 45:c80574f24dc3 411 tcp_timer.reset();
klauss 45:c80574f24dc3 412 buffer[ n - 2 ] = 0;
klauss 45:c80574f24dc3 413 bufptr = n - 2;
klauss 45:c80574f24dc3 414 if( !( strcmp( buffer, "quit" ) ) ){
klauss 45:c80574f24dc3 415 if( debug_prompt_eth ) pc.printf( "\n\rquit request\n\r" );
klauss 45:c80574f24dc3 416 debug_buf = __debug_buf__;
klauss 45:c80574f24dc3 417 bufptr = last_bufptr;
klauss 45:c80574f24dc3 418 from_eth = false;
klauss 45:c80574f24dc3 419 tcp_session = false;
klauss 45:c80574f24dc3 420 tcp_client.close();
klauss 45:c80574f24dc3 421 bufret = 0;
klauss 45:c80574f24dc3 422 return( NULL );
klauss 42:480335bdde12 423 }
klauss 42:480335bdde12 424 from_eth = true;
klauss 42:480335bdde12 425 bufret = 1;
klauss 45:c80574f24dc3 426 //break;
klauss 45:c80574f24dc3 427 }
klauss 45:c80574f24dc3 428 }else{
klauss 45:c80574f24dc3 429 if( !tcp_server.accept( tcp_client ) ){
klauss 45:c80574f24dc3 430 tcp_session = true;
klauss 45:c80574f24dc3 431 from_eth = true;
klauss 45:c80574f24dc3 432 last_bufptr = bufptr;
klauss 45:c80574f24dc3 433 buffer[ 0 ] = '\0';
klauss 45:c80574f24dc3 434 debug_buf = buffer;
klauss 45:c80574f24dc3 435 bufptr = 0;
klauss 45:c80574f24dc3 436 bufret = 0;
klauss 19:ab2088e0dec6 437 }
klauss 19:ab2088e0dec6 438 }
klauss 45:c80574f24dc3 439 if( tcp_timer.read() >= TCP_IDLE_MAX_TIME ){
klauss 45:c80574f24dc3 440 tcp_timer.reset();
klauss 45:c80574f24dc3 441 tcp_session = false;
klauss 45:c80574f24dc3 442 debug_buf = __debug_buf__;
klauss 45:c80574f24dc3 443 bufptr = last_bufptr;
klauss 45:c80574f24dc3 444 bufret = 0;
klauss 45:c80574f24dc3 445 from_eth = false;
klauss 45:c80574f24dc3 446 tcp_session = false;
klauss 45:c80574f24dc3 447 tcp_client.close();
klauss 45:c80574f24dc3 448 return( NULL );
klauss 45:c80574f24dc3 449 }
klauss 45:c80574f24dc3 450 }else if( !tcp_session ){
klauss 45:c80574f24dc3 451 int length;
klauss 45:c80574f24dc3 452 length = udp_server.receiveFrom( udp_client, buffer, __PROMPT_ETH_BUFFER_SIZE__ );
klauss 45:c80574f24dc3 453 if( length > 0){
klauss 45:c80574f24dc3 454 //pc.printf("\n\r%s:%d\n\r", __FILE__, __LINE__ );
klauss 45:c80574f24dc3 455 buffer[ length ] = '\0';
klauss 45:c80574f24dc3 456 buffer[ strlen( buffer ) - 1 ] = '\0';
klauss 45:c80574f24dc3 457 last_bufptr = bufptr;
klauss 45:c80574f24dc3 458 bufptr = strlen( buffer );
klauss 45:c80574f24dc3 459 debug_buf = buffer;
klauss 45:c80574f24dc3 460 from_eth = true;
klauss 45:c80574f24dc3 461 udp_request = true;
klauss 45:c80574f24dc3 462 bufret = 1;
klauss 45:c80574f24dc3 463 }else{
klauss 45:c80574f24dc3 464 if ( pc.readable() ){
klauss 45:c80574f24dc3 465 // imput do teclado
klauss 45:c80574f24dc3 466 b = pc.getc();
klauss 45:c80574f24dc3 467
klauss 45:c80574f24dc3 468 if( b == 0x0D ){ // enter
klauss 45:c80574f24dc3 469 bufret = 1;
klauss 45:c80574f24dc3 470 }else{
klauss 45:c80574f24dc3 471 pc.putc( b );
klauss 45:c80574f24dc3 472 if( b == 0x08 || b == 0x7F ){ // BS | DEL
klauss 45:c80574f24dc3 473 if( bufptr > 0 ) debug_buf[ --bufptr ] = 0;
klauss 45:c80574f24dc3 474 }else if( b == 0x09 ){
klauss 45:c80574f24dc3 475 // ignore tab
klauss 45:c80574f24dc3 476 }else{
klauss 45:c80574f24dc3 477 debug_buf[bufptr] = b;
klauss 45:c80574f24dc3 478 bufptr++;
klauss 42:480335bdde12 479 }
klauss 42:480335bdde12 480 }
klauss 31:bb5fb28a77df 481 }
klauss 45:c80574f24dc3 482 }
klauss 45:c80574f24dc3 483 }
klauss 45:c80574f24dc3 484
klauss 45:c80574f24dc3 485 // Prompt commands here
klauss 45:c80574f24dc3 486 if ( bufret == 1 ) {
klauss 45:c80574f24dc3 487 static unsigned int promptcb_last_ext = 0;
klauss 45:c80574f24dc3 488 static unsigned int promptcb_last_port = 0;
klauss 45:c80574f24dc3 489 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) ".",1 )) {
klauss 45:c80574f24dc3 490 miss_match = false;
klauss 45:c80574f24dc3 491 strcpy( debug_buf, last_debug_buf );
klauss 45:c80574f24dc3 492 }
klauss 45:c80574f24dc3 493
klauss 45:c80574f24dc3 494 if( !bufptr ){
klauss 45:c80574f24dc3 495 miss_match = false;
klauss 45:c80574f24dc3 496 }
klauss 45:c80574f24dc3 497 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "ifconfig" ) ){
klauss 45:c80574f24dc3 498 miss_match = false;
klauss 45:c80574f24dc3 499 pc.printf("\n\r");
klauss 45:c80574f24dc3 500 files('s');
klauss 45:c80574f24dc3 501 }
klauss 45:c80574f24dc3 502 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "format" ) ){
klauss 45:c80574f24dc3 503 miss_match = false;
klauss 45:c80574f24dc3 504 pc.printf("\n Formatando o sistema de arquivos... espere o sistema reiniciar \n\r");
klauss 45:c80574f24dc3 505 if( from_eth ){
klauss 45:c80574f24dc3 506 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Formatando o sistema de arquivos... espere o sistema reiniciar\n\r");
klauss 45:c80574f24dc3 507 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 508 if( tcp_session ){
klauss 45:c80574f24dc3 509 tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 510 tcp_client.close();
klauss 45:c80574f24dc3 511 }else if( udp_request ){
klauss 45:c80574f24dc3 512 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 513 }
klauss 42:480335bdde12 514 }
klauss 45:c80574f24dc3 515 files('w');
klauss 45:c80574f24dc3 516 NVIC_SystemReset();
klauss 45:c80574f24dc3 517 }
klauss 45:c80574f24dc3 518
klauss 45:c80574f24dc3 519 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "ipset ", 6 )) {
klauss 45:c80574f24dc3 520 miss_match = false;
klauss 45:c80574f24dc3 521 fip = fopen("/qspi/myip.txt", "w");
klauss 46:a670f187a704 522 fprintf(fip,"%s\n\r",(debug_buf+6));
klauss 45:c80574f24dc3 523 fclose(fip);
klauss 45:c80574f24dc3 524 pc.printf("\n\r");
klauss 45:c80574f24dc3 525 files('s');
klauss 45:c80574f24dc3 526 }
klauss 45:c80574f24dc3 527
klauss 45:c80574f24dc3 528 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "extset ", 7 ) ){
klauss 45:c80574f24dc3 529 miss_match = false;
klauss 45:c80574f24dc3 530 fip = fopen("/qspi/myext.txt", "w");
klauss 46:a670f187a704 531 fprintf(fip, "%i\n\r" , ( debug_buf + 7) );
klauss 45:c80574f24dc3 532 fclose(fip);
klauss 45:c80574f24dc3 533 pc.printf("\n\r");
klauss 45:c80574f24dc3 534 files('s');
klauss 45:c80574f24dc3 535 }
klauss 45:c80574f24dc3 536
klauss 45:c80574f24dc3 537 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "serextset ", 10 ) ){
klauss 45:c80574f24dc3 538 miss_match = false;
klauss 45:c80574f24dc3 539 fip = fopen("/qspi/peerext.txt", "w");
klauss 45:c80574f24dc3 540 fprintf(fip, "%i\n\r" , ( debug_buf + 10 ) );
klauss 45:c80574f24dc3 541 fclose(fip);
klauss 45:c80574f24dc3 542 pc.printf("\n\r");
klauss 45:c80574f24dc3 543 files('s');
klauss 45:c80574f24dc3 544 }
klauss 45:c80574f24dc3 545
klauss 45:c80574f24dc3 546 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "maskset ",8 ) ){
klauss 45:c80574f24dc3 547 miss_match = false;
klauss 45:c80574f24dc3 548 fmask = fopen("/qspi/mymask.txt", "w");
klauss 46:a670f187a704 549 fprintf(fmask,"%s\n\r",(debug_buf+8));
klauss 45:c80574f24dc3 550 fclose(fmask);
klauss 45:c80574f24dc3 551 pc.printf("\n\r");
klauss 45:c80574f24dc3 552 files('s');
klauss 45:c80574f24dc3 553 }
klauss 45:c80574f24dc3 554
klauss 45:c80574f24dc3 555 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "gatewayset ",11 ) ){
klauss 45:c80574f24dc3 556 miss_match = false;
klauss 45:c80574f24dc3 557 fgate = fopen("/qspi/mygate.txt", "w");
klauss 46:a670f187a704 558 fprintf(fgate,"%s\n\r",(debug_buf+11));
klauss 45:c80574f24dc3 559 fclose(fgate);
klauss 45:c80574f24dc3 560 pc.printf("\n\r");
klauss 45:c80574f24dc3 561 files('s');
klauss 45:c80574f24dc3 562 }
klauss 45:c80574f24dc3 563
klauss 45:c80574f24dc3 564 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "msipport ",9 ) ){
klauss 45:c80574f24dc3 565 miss_match = false;
klauss 45:c80574f24dc3 566 fport = fopen("/qspi/mysipport.txt", "w");
klauss 45:c80574f24dc3 567 fprintf(fport,"%i\n\r",(debug_buf+9));
klauss 45:c80574f24dc3 568 fclose(fport);
klauss 45:c80574f24dc3 569 pc.printf("\n\r");
klauss 45:c80574f24dc3 570 files('s');
klauss 45:c80574f24dc3 571 }
klauss 45:c80574f24dc3 572
klauss 45:c80574f24dc3 573 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "serverip ",9 ) ){
klauss 45:c80574f24dc3 574 miss_match = false;
klauss 45:c80574f24dc3 575 fsip = fopen("/qspi/serverip.txt", "w");
klauss 46:a670f187a704 576 fprintf(fsip,"%s\n\r",(debug_buf+9));
klauss 45:c80574f24dc3 577 fclose(fsip);
klauss 45:c80574f24dc3 578 pc.printf("\n\r");
klauss 45:c80574f24dc3 579 files('s');
klauss 45:c80574f24dc3 580 }
klauss 45:c80574f24dc3 581
klauss 45:c80574f24dc3 582 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "ssport ",7 ) ){
klauss 45:c80574f24dc3 583 miss_match = false;
klauss 45:c80574f24dc3 584 fsport = fopen("/qspi/serverport.txt", "w");
klauss 45:c80574f24dc3 585 fprintf(fsport,"%i\n\r",(debug_buf+7));
klauss 45:c80574f24dc3 586 fclose(fsport);
klauss 45:c80574f24dc3 587 pc.printf("\n\r");
klauss 45:c80574f24dc3 588 files('s');
klauss 45:c80574f24dc3 589 }
klauss 45:c80574f24dc3 590
klauss 45:c80574f24dc3 591
klauss 45:c80574f24dc3 592 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "dconfig" ) ){
klauss 45:c80574f24dc3 593 miss_match = false;
klauss 45:c80574f24dc3 594 files('w');
klauss 45:c80574f24dc3 595 files('s');
klauss 45:c80574f24dc3 596 }
klauss 45:c80574f24dc3 597
klauss 45:c80574f24dc3 598 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "reset" ) ){
klauss 45:c80574f24dc3 599 miss_match = false;
klauss 45:c80574f24dc3 600 pc.printf("\n\rJob is done\n\r");
klauss 45:c80574f24dc3 601 if( from_eth ){
klauss 45:c80574f24dc3 602 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Job is done\n\r");
klauss 45:c80574f24dc3 603 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 604 if( tcp_session ){
klauss 45:c80574f24dc3 605 tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 606 tcp_client.close();
klauss 45:c80574f24dc3 607 }else if( udp_request ){
klauss 45:c80574f24dc3 608 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 609 }
klauss 45:c80574f24dc3 610 }
klauss 45:c80574f24dc3 611 NVIC_SystemReset();
klauss 45:c80574f24dc3 612 }
klauss 45:c80574f24dc3 613
klauss 45:c80574f24dc3 614 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "dog" ) ){
klauss 45:c80574f24dc3 615 miss_match = false;
klauss 45:c80574f24dc3 616 pc.printf("\n\r MUUUUUUUuuuuUUUUUU - I'm not a dog!!!! \n\r");
klauss 45:c80574f24dc3 617 if( from_eth ){
klauss 45:c80574f24dc3 618 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "MUUUUUUUuuuuUUUUUU - I'm not a dog!!!!\n\r");
klauss 45:c80574f24dc3 619 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 620 }
klauss 45:c80574f24dc3 621 }
klauss 45:c80574f24dc3 622
klauss 45:c80574f24dc3 623 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "flood ",6 ) ){
klauss 45:c80574f24dc3 624 if (xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "on",2 ) ){
klauss 45:c80574f24dc3 625 miss_match = false;
klauss 46:a670f187a704 626 pc.printf("\n\rFlood ON\n\r");
klauss 42:480335bdde12 627 if( from_eth ){
klauss 45:c80574f24dc3 628 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Flood On\n\r" );
klauss 45:c80574f24dc3 629 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 630 }
klauss 45:c80574f24dc3 631 tflood.start();
klauss 45:c80574f24dc3 632 tflood.reset();
klauss 45:c80574f24dc3 633 floodcount =0;
klauss 45:c80574f24dc3 634 pflood = 1;
klauss 45:c80574f24dc3 635 flood_timeout.start();
klauss 45:c80574f24dc3 636 }
klauss 45:c80574f24dc3 637 if (xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 638 miss_match = false;
klauss 46:a670f187a704 639 pc.printf("\n\rFlood OFF\n\r");
klauss 42:480335bdde12 640 if( from_eth ){
klauss 45:c80574f24dc3 641 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Flood Off\n\r" );
klauss 45:c80574f24dc3 642 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 643 }
klauss 45:c80574f24dc3 644 pflood = 0;
klauss 45:c80574f24dc3 645 tflood.stop();
klauss 45:c80574f24dc3 646 flood_timeout.reset();
klauss 31:bb5fb28a77df 647 }
klauss 45:c80574f24dc3 648 }
klauss 45:c80574f24dc3 649
klauss 45:c80574f24dc3 650 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug ",6 )) {
klauss 45:c80574f24dc3 651 if( xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "on",2 )) {
klauss 45:c80574f24dc3 652 miss_match = false;
klauss 46:a670f187a704 653 pc.printf("\n\rDebug ON\n\r");
klauss 45:c80574f24dc3 654 if( from_eth ){
klauss 45:c80574f24dc3 655 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug On\n\r" );
klauss 45:c80574f24dc3 656 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 657 }
klauss 45:c80574f24dc3 658 debug_alive = 1;
klauss 45:c80574f24dc3 659 }
klauss 45:c80574f24dc3 660 if( xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 661 miss_match = false;
klauss 46:a670f187a704 662 pc.printf("\n\rDebug OFF\n\r");
klauss 45:c80574f24dc3 663 if( from_eth ){
klauss 45:c80574f24dc3 664 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Off\n\r" );
klauss 45:c80574f24dc3 665 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 666 }
klauss 45:c80574f24dc3 667 debug_alive = 0;
klauss 31:bb5fb28a77df 668 }
klauss 45:c80574f24dc3 669 if( xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "show",4 ) ){
klauss 45:c80574f24dc3 670 miss_match = false;
klauss 45:c80574f24dc3 671 pc.printf("\n\rdebug_sip");
klauss 45:c80574f24dc3 672 pc.printf("\n\rdebug_alive");
klauss 45:c80574f24dc3 673 pc.printf("\n\rdebug_prompt");
klauss 45:c80574f24dc3 674 pc.printf("\n\rdebug_vector");
klauss 45:c80574f24dc3 675 pc.printf("\n\rdebug_cb");
klauss 45:c80574f24dc3 676 pc.printf("\n\rdebug_main");
klauss 45:c80574f24dc3 677 pc.printf("\n\rdebug_cks");
klauss 45:c80574f24dc3 678 pc.printf("\n\rdebug_cb_rx");
klauss 45:c80574f24dc3 679 pc.printf("\n\rdebug_cb_tx*");
klauss 45:c80574f24dc3 680 pc.printf("\n\rdebug_eth_rx*");
klauss 45:c80574f24dc3 681 pc.printf("\n\rdebug_eth_tx*");
klauss 45:c80574f24dc3 682 pc.printf("\n\rdebug_file");
klauss 45:c80574f24dc3 683
klauss 42:480335bdde12 684 if( from_eth ){
klauss 45:c80574f24dc3 685 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rdebug_sip \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 686 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 687 }
klauss 42:480335bdde12 688 }
klauss 45:c80574f24dc3 689 }
klauss 45:c80574f24dc3 690
klauss 45:c80574f24dc3 691 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_sip ", 10 ) ){
klauss 45:c80574f24dc3 692 if (xmemmatch( (uint8_t*)(debug_buf + 10 ), (uint8_t*) "on",2 ) ){
klauss 45:c80574f24dc3 693 miss_match = false;
klauss 45:c80574f24dc3 694 pc.printf( "\n\rSip Debug ON\n\r" );
klauss 45:c80574f24dc3 695 if( from_eth ){
klauss 45:c80574f24dc3 696 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Sip Debug On\n\r" );
klauss 45:c80574f24dc3 697 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 698 }
klauss 45:c80574f24dc3 699 debug_sip = 1;
klauss 45:c80574f24dc3 700 }
klauss 45:c80574f24dc3 701 if (xmemmatch( (uint8_t*)(debug_buf + 10 ), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 702 miss_match = false;
klauss 45:c80574f24dc3 703 pc.printf( "\n\rSip Debug OFF\n\r" );
klauss 45:c80574f24dc3 704 if( from_eth ){
klauss 45:c80574f24dc3 705 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Sip Debug Off\n\r" );
klauss 45:c80574f24dc3 706 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 707 }
klauss 45:c80574f24dc3 708 debug_sip = 0;
klauss 45:c80574f24dc3 709 }
klauss 45:c80574f24dc3 710 }
klauss 45:c80574f24dc3 711
klauss 45:c80574f24dc3 712 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_cks ", 10 )) {
klauss 45:c80574f24dc3 713 if (xmemmatch( (uint8_t*)(debug_buf + 10 ), (uint8_t*) "on",2 )) {
klauss 45:c80574f24dc3 714 miss_match = false;
klauss 45:c80574f24dc3 715 pc.printf( "\n\rCKS Debug ON\n\r" );
klauss 45:c80574f24dc3 716 if( from_eth ){
klauss 45:c80574f24dc3 717 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "CKS Debug On\n\r" );
klauss 45:c80574f24dc3 718 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 719 }
klauss 45:c80574f24dc3 720 debug_cks = 1;
klauss 45:c80574f24dc3 721 }
klauss 45:c80574f24dc3 722 if (xmemmatch( (uint8_t*)(debug_buf + 10 ), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 723 miss_match = false;
klauss 45:c80574f24dc3 724 pc.printf( "\n\rCKS Debug OFF\n\r" );
klauss 45:c80574f24dc3 725 if( from_eth ){
klauss 45:c80574f24dc3 726 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "CKS Debug Off\n\r" );
klauss 45:c80574f24dc3 727 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 728 }
klauss 45:c80574f24dc3 729 debug_cks = 0;
klauss 45:c80574f24dc3 730 }
klauss 45:c80574f24dc3 731 }
klauss 45:c80574f24dc3 732
klauss 45:c80574f24dc3 733 //promptcb ramal porta comando
klauss 45:c80574f24dc3 734 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "promptcb ", 9)) {
klauss 45:c80574f24dc3 735 miss_match = false;
klauss 45:c80574f24dc3 736 static int id_msg = 0x10;
klauss 45:c80574f24dc3 737 uint8_t write_buffer[300];
klauss 45:c80574f24dc3 738 unsigned int ext,port;
klauss 45:c80574f24dc3 739 int ant1,ant2;
klauss 45:c80574f24dc3 740
klauss 45:c80574f24dc3 741 debug_buf[bufptr++] = 0x0D;
klauss 45:c80574f24dc3 742 debug_buf[bufptr++] = 0x00;
klauss 45:c80574f24dc3 743
klauss 45:c80574f24dc3 744 ant1 = str2uint( (debug_buf+9), &ext);
klauss 45:c80574f24dc3 745 ant2 = str2uint( ((debug_buf+9)+ant1+1), &port);
klauss 45:c80574f24dc3 746
klauss 45:c80574f24dc3 747 promptcb_last_ext = ext;
klauss 45:c80574f24dc3 748 promptcb_last_port = port;
klauss 45:c80574f24dc3 749 pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n",ext, port, debug_buf+9+ant1+2+ant2);
klauss 45:c80574f24dc3 750 promptcb_last_ext = ext;
klauss 45:c80574f24dc3 751 __send_to_cb__( __build_cb_package__( ext, port, __PROMPT__, debug_buf+9+ant1+2+ant2, id_msg++, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
klauss 45:c80574f24dc3 752 pc.printf("\n\rComando enviado\n\r");
klauss 45:c80574f24dc3 753 }
klauss 45:c80574f24dc3 754 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "pcb ",4 )) {
klauss 45:c80574f24dc3 755 miss_match = false;
klauss 45:c80574f24dc3 756 static int id_msg = 0x30;
klauss 45:c80574f24dc3 757 uint8_t write_buffer[300];
klauss 45:c80574f24dc3 758 debug_buf[bufptr++] = 0x0D;
klauss 45:c80574f24dc3 759 debug_buf[bufptr++] = 0x00;
klauss 45:c80574f24dc3 760
klauss 45:c80574f24dc3 761 pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n",promptcb_last_ext, promptcb_last_port, debug_buf+4);
klauss 45:c80574f24dc3 762
klauss 45:c80574f24dc3 763 __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 764 pc.printf("\n\rComando enviado\n\r");
klauss 45:c80574f24dc3 765 }
klauss 45:c80574f24dc3 766
klauss 45:c80574f24dc3 767 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "cks",3 )) {
klauss 45:c80574f24dc3 768 miss_match = false;
klauss 45:c80574f24dc3 769 pcks_s = 1;
klauss 45:c80574f24dc3 770 }
klauss 45:c80574f24dc3 771
klauss 45:c80574f24dc3 772 if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "showcb",6 )) {
klauss 45:c80574f24dc3 773 miss_match = false;
klauss 45:c80574f24dc3 774 pshowcb = 1;
klauss 45:c80574f24dc3 775 }
klauss 45:c80574f24dc3 776
klauss 45:c80574f24dc3 777 if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_main ", 11 )) {
klauss 45:c80574f24dc3 778 if (xmemmatch( (uint8_t*)( debug_buf + 11 ), (uint8_t*) "on",2 )) {
klauss 45:c80574f24dc3 779 miss_match = false;
klauss 45:c80574f24dc3 780 pc.printf("\r\nDebug Main ON");
klauss 45:c80574f24dc3 781 if( from_eth ){
klauss 45:c80574f24dc3 782 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Main On\n\r" );
klauss 45:c80574f24dc3 783 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 784 }
klauss 45:c80574f24dc3 785 debug_main = 1;
klauss 45:c80574f24dc3 786 }
klauss 45:c80574f24dc3 787 if (xmemmatch( (uint8_t*)( debug_buf + 11 ), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 788 miss_match = false;
klauss 45:c80574f24dc3 789 pc.printf("\r\nDebug Main OFF");
klauss 45:c80574f24dc3 790 if( from_eth ){
klauss 45:c80574f24dc3 791 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Main Off\n\r" );
klauss 45:c80574f24dc3 792 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 793 }
klauss 45:c80574f24dc3 794 debug_main = 0;
klauss 45:c80574f24dc3 795 }
klauss 45:c80574f24dc3 796 }
klauss 45:c80574f24dc3 797
klauss 45:c80574f24dc3 798 if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_cb_rx ", 12 )) {
klauss 45:c80574f24dc3 799 if (xmemmatch( (uint8_t*)( debug_buf + 12 ), (uint8_t*) "on",2 )) {
klauss 45:c80574f24dc3 800 miss_match = false;
klauss 45:c80574f24dc3 801 pc.printf("\tDebug Cbx Rx ON");
klauss 45:c80574f24dc3 802 if( from_eth ){
klauss 45:c80574f24dc3 803 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Cbx On Rx on\n\r" );
klauss 45:c80574f24dc3 804 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 805 }
klauss 45:c80574f24dc3 806 debug_cb_rx = 1;
klauss 45:c80574f24dc3 807 }
klauss 45:c80574f24dc3 808 if (xmemmatch( (uint8_t*)( debug_buf + 12 ), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 809 miss_match = false;
klauss 45:c80574f24dc3 810 pc.printf("Debug Cbx Rx OFF");
klauss 45:c80574f24dc3 811 if( from_eth ){
klauss 45:c80574f24dc3 812 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Cbx Rx Off\n\r" );
klauss 45:c80574f24dc3 813 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 814 }
klauss 45:c80574f24dc3 815 debug_cb_rx = 0;
klauss 45:c80574f24dc3 816 }
klauss 45:c80574f24dc3 817 }
klauss 45:c80574f24dc3 818
klauss 45:c80574f24dc3 819 if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_file ", 11 )) {
klauss 45:c80574f24dc3 820 if (xmemmatch( (uint8_t*)( debug_buf + 11 ), (uint8_t*) "on",2 )) {
klauss 45:c80574f24dc3 821 miss_match = false;
klauss 45:c80574f24dc3 822 pc.printf("\tDebug File ON");
klauss 45:c80574f24dc3 823 if( from_eth ){
klauss 45:c80574f24dc3 824 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug File On\n\r" );
klauss 45:c80574f24dc3 825 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 826 }
klauss 45:c80574f24dc3 827 debug_cb_rx = 1;
klauss 45:c80574f24dc3 828 }
klauss 45:c80574f24dc3 829 if (xmemmatch( (uint8_t*)( debug_buf + 11 ), (uint8_t*) "off",3 )) {
klauss 45:c80574f24dc3 830 miss_match = false;
klauss 45:c80574f24dc3 831 pc.printf("Debug File OFF");
klauss 45:c80574f24dc3 832 if( from_eth ){
klauss 45:c80574f24dc3 833 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug File Off\n\r" );
klauss 45:c80574f24dc3 834 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 835 }
klauss 45:c80574f24dc3 836 debug_cb_rx = 0;
klauss 45:c80574f24dc3 837 }
klauss 45:c80574f24dc3 838 }
klauss 45:c80574f24dc3 839
klauss 45:c80574f24dc3 840 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "help" )) {
klauss 45:c80574f24dc3 841 miss_match = false;
klauss 45:c80574f24dc3 842 pc.printf("\n\r****************************PROMPT HELP******************\n\r");
klauss 45:c80574f24dc3 843 if( from_eth ){
klauss 45:c80574f24dc3 844 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "\n\r****************************PROMPT HELP******************\n\r" );
klauss 45:c80574f24dc3 845 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 846
klauss 45:c80574f24dc3 847 else if( udp_request ){
klauss 45:c80574f24dc3 848 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 849 }
klauss 44:cc4996469404 850 }
klauss 45:c80574f24dc3 851 pc.printf("ifconfig - mostra o arquivo de configuracao do sistema\n\r");
klauss 45:c80574f24dc3 852 if( from_eth ){
klauss 45:c80574f24dc3 853 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "ifconfig - mostra o arquivo de configuracao do sistema\n\r" );
klauss 45:c80574f24dc3 854 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 855
klauss 45:c80574f24dc3 856 else if( udp_request ){
klauss 45:c80574f24dc3 857 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 858 }
klauss 45:c80574f24dc3 859 }
klauss 45:c80574f24dc3 860 pc.printf("dconfig - volta as configuracoes do sistema para o padrao de fabrica\n\r");
klauss 45:c80574f24dc3 861 if( from_eth ){
klauss 45:c80574f24dc3 862 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "dconfig - volta as configuracoes do sistema para o padrao de fabrica\n\r" );
klauss 45:c80574f24dc3 863 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 864
klauss 45:c80574f24dc3 865 else if( udp_request ){
klauss 45:c80574f24dc3 866 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 867 }
klauss 45:c80574f24dc3 868 }
klauss 45:c80574f24dc3 869 pc.printf("callme [ramal porta] - envia o pedido de ligacao para o callbox com o ramal e porta indicada\n\r");
klauss 45:c80574f24dc3 870 if( from_eth ){
klauss 45:c80574f24dc3 871 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 872 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 873
klauss 45:c80574f24dc3 874 else if( udp_request ){
klauss 45:c80574f24dc3 875 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 876 }
klauss 45:c80574f24dc3 877 }
klauss 45:c80574f24dc3 878 pc.printf("promptcb ramal porta comando - envia o <comando> para o cbx <ramal> e <porta> executar\n\r");
klauss 45:c80574f24dc3 879 if( from_eth ){
klauss 45:c80574f24dc3 880 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 881 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 882
klauss 45:c80574f24dc3 883 else if( udp_request ){
klauss 45:c80574f24dc3 884 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 885 }
klauss 45:c80574f24dc3 886 }
klauss 45:c80574f24dc3 887 pc.printf("format - formata o sistema de arquivos\n\r");
klauss 45:c80574f24dc3 888 if( from_eth ){
klauss 45:c80574f24dc3 889 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "format - formata o sistema de arquivos\n\r" );
klauss 45:c80574f24dc3 890 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 891
klauss 45:c80574f24dc3 892 else if( udp_request ){
klauss 45:c80574f24dc3 893 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 894 }
klauss 45:c80574f24dc3 895 }
klauss 45:c80574f24dc3 896 pc.printf("reset - resta o sistema\n\r");
klauss 45:c80574f24dc3 897 if( from_eth ){
klauss 45:c80574f24dc3 898 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "reset - resta o sistema\n\r" );
klauss 45:c80574f24dc3 899 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 900
klauss 45:c80574f24dc3 901 else if( udp_request ){
klauss 45:c80574f24dc3 902 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 903 }
klauss 45:c80574f24dc3 904 }
klauss 45:c80574f24dc3 905 pc.printf("ipset [ip] - Configura o IP da cabeceira\n\r");
klauss 45:c80574f24dc3 906 if( from_eth ){
klauss 45:c80574f24dc3 907 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "ipset [ip] - Configura o IP da cabeceira\n\r" );
klauss 45:c80574f24dc3 908 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 909
klauss 45:c80574f24dc3 910 else if( udp_request ){
klauss 45:c80574f24dc3 911 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 912 }
klauss 45:c80574f24dc3 913 }
klauss 45:c80574f24dc3 914 pc.printf("extset [ext] - Configura a ext da cabeceira\n\r");
klauss 45:c80574f24dc3 915 if( from_eth ){
klauss 45:c80574f24dc3 916 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "extset [ext] - Configura a ext da cabeceira\n\r" );
klauss 45:c80574f24dc3 917 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 918
klauss 45:c80574f24dc3 919 else if( udp_request ){
klauss 45:c80574f24dc3 920 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 921 }
klauss 45:c80574f24dc3 922 }
klauss 45:c80574f24dc3 923 pc.printf("msipport [port] - Configura a porta SIP da cabeceira\n\r");
klauss 45:c80574f24dc3 924 if( from_eth ){
klauss 45:c80574f24dc3 925 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "msipport [port] - Configura a porta SIP da cabeceira\n\r" );
klauss 45:c80574f24dc3 926 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 927
klauss 45:c80574f24dc3 928 else if( udp_request ){
klauss 45:c80574f24dc3 929 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 930 }
klauss 45:c80574f24dc3 931 }
klauss 45:c80574f24dc3 932 pc.printf("serverip [ip] - Configura o ip do servidor asterisk\n\r");
klauss 45:c80574f24dc3 933 if( from_eth ){
klauss 45:c80574f24dc3 934 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "serverip [ip] - Configura o ip do servidor asterisk\n\r" );
klauss 45:c80574f24dc3 935 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 936
klauss 45:c80574f24dc3 937 else if( udp_request ){
klauss 45:c80574f24dc3 938 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 939 }
klauss 45:c80574f24dc3 940 }
klauss 45:c80574f24dc3 941 pc.printf("serextset [ext] - Configura a server ext da cabeceira\n\r");
klauss 45:c80574f24dc3 942 if( from_eth ){
klauss 45:c80574f24dc3 943 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "serextset [ext] - Configura a server ext da cabeceira\n\r" );
klauss 45:c80574f24dc3 944 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 945
klauss 45:c80574f24dc3 946 else if( udp_request ){
klauss 45:c80574f24dc3 947 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 948 }
klauss 45:c80574f24dc3 949 }
klauss 45:c80574f24dc3 950 pc.printf("ssport [port] - Configura a porta SIP do servidor asterisk\n\r");
klauss 45:c80574f24dc3 951 if( from_eth ){
klauss 45:c80574f24dc3 952 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "ssport [port] - Configura a porta SIP do servidor asterisk\n\r" );
klauss 45:c80574f24dc3 953 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 954
klauss 45:c80574f24dc3 955 else if( udp_request ){
klauss 45:c80574f24dc3 956 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 957 }
klauss 45:c80574f24dc3 958 }
klauss 45:c80574f24dc3 959 pc.printf("maskset [mask] - Configura a mascara da cabeceira\n\r");
klauss 45:c80574f24dc3 960 if( from_eth ){
klauss 45:c80574f24dc3 961 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "maskset [mask] - Configura a mascara da cabeceira\n\r" );
klauss 45:c80574f24dc3 962 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 963
klauss 45:c80574f24dc3 964 else if( udp_request ){
klauss 45:c80574f24dc3 965 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 966 }
klauss 45:c80574f24dc3 967 }
klauss 45:c80574f24dc3 968 pc.printf("gatewayset [gateway] - Configura o gateway da cabeceira\n\r");
klauss 45:c80574f24dc3 969 if( from_eth ){
klauss 45:c80574f24dc3 970 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "gatewayset [gateway] - Configura o gateway da cabeceira\n\r" );
klauss 45:c80574f24dc3 971 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 972
klauss 45:c80574f24dc3 973 else if( udp_request ){
klauss 45:c80574f24dc3 974 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 975 }
klauss 45:c80574f24dc3 976 }
klauss 45:c80574f24dc3 977 pc.printf("showcb - lista os Cbx registrados na header\n\r");
klauss 45:c80574f24dc3 978 if( from_eth ){
klauss 45:c80574f24dc3 979 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "showcb - lista os Cbx registrados na header\n\r" );
klauss 45:c80574f24dc3 980 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 981
klauss 45:c80574f24dc3 982 else if( udp_request ){
klauss 45:c80574f24dc3 983 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 984 }
klauss 45:c80574f24dc3 985 }
klauss 45:c80574f24dc3 986 pc.printf("cks - exibe estatisticas de check sum\n\r");
klauss 45:c80574f24dc3 987 if( from_eth ){
klauss 45:c80574f24dc3 988 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "cks - exibe estatisticas de check sum\n\r" );
klauss 45:c80574f24dc3 989 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 990
klauss 45:c80574f24dc3 991 else if( udp_request ){
klauss 45:c80574f24dc3 992 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 993 }
klauss 45:c80574f24dc3 994 }
klauss 45:c80574f24dc3 995 pc.printf(". - executa o comando anterior novamente\n\r");
klauss 45:c80574f24dc3 996 if( from_eth ){
klauss 45:c80574f24dc3 997 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, ". - executa o comando anterior novamente\n\r" );
klauss 45:c80574f24dc3 998 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 999
klauss 45:c80574f24dc3 1000 else if( udp_request ){
klauss 45:c80574f24dc3 1001 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1002 }
klauss 45:c80574f24dc3 1003 }
klauss 45:c80574f24dc3 1004 pc.printf("debug [on|off|show] - seleciona debugs gerais | lista de debugs \n\r");
klauss 45:c80574f24dc3 1005 if( from_eth ){
klauss 45:c80574f24dc3 1006 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "debug [on|off|show] - seleciona debugs gerais | lista de debugs \n\r" );
klauss 45:c80574f24dc3 1007 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1008
klauss 45:c80574f24dc3 1009 else if( udp_request ){
klauss 45:c80574f24dc3 1010 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1011 }
klauss 45:c80574f24dc3 1012 }
klauss 45:c80574f24dc3 1013 pc.printf("flood [on|off] - simula envio de pacotes de audio\n\r");
klauss 45:c80574f24dc3 1014 if( from_eth ){
klauss 45:c80574f24dc3 1015 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "flood [on|off] - simula envio de pacotes de audio\n\r");
klauss 45:c80574f24dc3 1016 if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1017
klauss 45:c80574f24dc3 1018 else if( udp_request ){
klauss 45:c80574f24dc3 1019 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1020 }
klauss 45:c80574f24dc3 1021 }
klauss 45:c80574f24dc3 1022 pc.printf("PROMPT VERSION: V%d\n\r",PVERSION);
klauss 45:c80574f24dc3 1023 //Obs :: a ultima linha nao mandamos direto pro tcp porque ela eh enviada fora desse escopo
klauss 45:c80574f24dc3 1024 if( from_eth ) snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "PROMPT VERSION: V%d\n\r",PVERSION);
klauss 27:98f824719d1c 1025 }
klauss 27:98f824719d1c 1026 /*
klauss 45:c80574f24dc3 1027 if ( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "callme ", 7 )) {
klauss 45:c80574f24dc3 1028 if ( debug_buf[16] != 0 && debug_buf[11] != 0x20 )
klauss 45:c80574f24dc3 1029 pc.printf("\n\r Error: formato errado! ramal=xxxx porta=xxxx \n\r");
klauss 45:c80574f24dc3 1030 else {
klauss 45:c80574f24dc3 1031 uint8_t data[300];
klauss 45:c80574f24dc3 1032 uint16_t cks=0;
klauss 45:c80574f24dc3 1033
klauss 45:c80574f24dc3 1034 //data[0] = (uint8_t)( (debug_buf[7]&0xf0)<<4 + (debug_buf[8]&0x0f) ) ;
klauss 45:c80574f24dc3 1035 //data[1] = (uint8_t)( (debug_buf[9]&0xf0)<<4 + (debug_buf[10]&0x0f) ) ;
klauss 45:c80574f24dc3 1036 //data[2] = (uint8_t)( (debug_buf[12]&0xf0)<<4 + (debug_buf[13]&0x0f) ) ;
klauss 45:c80574f24dc3 1037 /data[3] = (uint8_t)( (debug_buf[14]&0xf0)<<4 + (debug_buf[15]&0x0f) ) ;
klauss 45:c80574f24dc3 1038
klauss 45:c80574f24dc3 1039 data[0] = (uint8_t)( debug_buf[ 7 ] & 0xFF00 >> 8 );
klauss 45:c80574f24dc3 1040 data[1] = (uint8_t)( debug_buf[ 9 ] & 0x00FF );
klauss 45:c80574f24dc3 1041 data[2] = (uint8_t)( debug_buf[ 12 ] & 0xFF00 >> 8 );
klauss 45:c80574f24dc3 1042 data[3] = (uint8_t)( debug_buf[ 14 ] & 0x00FF );
klauss 45:c80574f24dc3 1043
klauss 45:c80574f24dc3 1044 data[6] = 0x04;
klauss 45:c80574f24dc3 1045 for (int i = 7; i < 300; i++) data[i] = 0x00;
klauss 45:c80574f24dc3 1046 cks = __checksum__(data,300);
klauss 45:c80574f24dc3 1047 data[4] = cks>>8;
klauss 45:c80574f24dc3 1048 data[5] = cks&0xff;
klauss 45:c80574f24dc3 1049
klauss 45:c80574f24dc3 1050 pc.printf("\n\r");
klauss 45:c80574f24dc3 1051 for( int i = 0; i < 300; i++ )
klauss 45:c80574f24dc3 1052 pc.printf("%x ", data[ i ] );
klauss 45:c80574f24dc3 1053 pc.printf("\n\r");
klauss 45:c80574f24dc3 1054
klauss 45:c80574f24dc3 1055 xmemcpy(TXBuffer,data,300);
klauss 45:c80574f24dc3 1056
klauss 45:c80574f24dc3 1057 pc.printf("\n\r");
klauss 45:c80574f24dc3 1058 for( int i = 0; i < 300; i++ )
klauss 45:c80574f24dc3 1059 pc.printf("%x ", data[ i ] );
klauss 45:c80574f24dc3 1060 pc.printf("\n\r");
klauss 45:c80574f24dc3 1061
klauss 45:c80574f24dc3 1062 send2callboxes();
klauss 45:c80574f24dc3 1063
klauss 45:c80574f24dc3 1064 pc.printf("\n\r calling callbox %s \n\r",debug_buf+7);
klauss 19:ab2088e0dec6 1065 }
klauss 45:c80574f24dc3 1066
klauss 45:c80574f24dc3 1067 }
klauss 45:c80574f24dc3 1068 */
klauss 45:c80574f24dc3 1069
klauss 45:c80574f24dc3 1070 if( miss_match ){
klauss 45:c80574f24dc3 1071 pc.printf("\n\r%s: command not found\n\r", debug_buf );
klauss 45:c80574f24dc3 1072 if( from_eth ){
klauss 45:c80574f24dc3 1073 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "%s: command not found\n", debug_buf );
klauss 45:c80574f24dc3 1074 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 45:c80574f24dc3 1075 }
klauss 45:c80574f24dc3 1076 }
klauss 45:c80574f24dc3 1077
klauss 45:c80574f24dc3 1078 else{
klauss 45:c80574f24dc3 1079 if( debug_buf[ 0 ] != 0x0D ) strcpy( last_debug_buf, debug_buf );
klauss 45:c80574f24dc3 1080 }
klauss 45:c80574f24dc3 1081 }
klauss 45:c80574f24dc3 1082 /*
klauss 45:c80574f24dc3 1083 if( from_eth ){
klauss 45:c80574f24dc3 1084 if( tcp_session ){
klauss 45:c80574f24dc3 1085 tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1086 tcp_timer.reset();
klauss 45:c80574f24dc3 1087 bufret = 0;
klauss 45:c80574f24dc3 1088 from_eth = false;
klauss 45:c80574f24dc3 1089 }else{
klauss 45:c80574f24dc3 1090 msg_to_eth = debug_buf;
klauss 45:c80574f24dc3 1091 debug_buf = __debug_buf__;
klauss 45:c80574f24dc3 1092 bufptr = last_bufptr;
klauss 45:c80574f24dc3 1093 bufret = 0;
klauss 45:c80574f24dc3 1094 from_eth = false;
klauss 45:c80574f24dc3 1095
klauss 45:c80574f24dc3 1096 if( miss_match ) return( NULL );
klauss 45:c80574f24dc3 1097
klauss 45:c80574f24dc3 1098 else return( msg_to_eth );
klauss 45:c80574f24dc3 1099 }
klauss 45:c80574f24dc3 1100 }*/
klauss 45:c80574f24dc3 1101
klauss 45:c80574f24dc3 1102 if( b == 0x0D || bufret == 1 || bufptr > DEBUGBUFSIZE ){
klauss 45:c80574f24dc3 1103 bufret = 0;
klauss 45:c80574f24dc3 1104 if( tcp_session ){
klauss 45:c80574f24dc3 1105 strcat( debug_buf, "\n\r> " );
klauss 45:c80574f24dc3 1106 tcp_client.send_all( debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1107 tcp_timer.reset();
klauss 45:c80574f24dc3 1108 }else if( udp_request ){
klauss 45:c80574f24dc3 1109 int sent = udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
klauss 45:c80574f24dc3 1110 debug_buf = __debug_buf__;
klauss 45:c80574f24dc3 1111 bufptr = last_bufptr;
klauss 45:c80574f24dc3 1112 from_eth = false;
klauss 45:c80574f24dc3 1113 udp_request = false;
klauss 45:c80574f24dc3 1114 }else{
klauss 42:480335bdde12 1115 bufptr = 0;
klauss 42:480335bdde12 1116 for (uint8_t i =0; i < DEBUGBUFSIZE; i++) {
klauss 42:480335bdde12 1117 debug_buf[i] = 0;
klauss 42:480335bdde12 1118 }
klauss 45:c80574f24dc3 1119 }
klauss 45:c80574f24dc3 1120 pc.putc(0x0A);
klauss 45:c80574f24dc3 1121 pc.putc(0x0D);
klauss 45:c80574f24dc3 1122 pc.printf("> ");
klauss 45:c80574f24dc3 1123 }
klauss 36:728498a78e1e 1124 return( NULL );
klauss 42:480335bdde12 1125 }