Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Committer:
klauss
Date:
Mon Oct 20 19:44:16 2014 +0000
Revision:
52:12930cef17c4
Parent:
51:5fc3a8f02fdf
Child:
53:bb492a8f115a
reset_cks implementado

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