Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Committer:
klauss
Date:
Fri Oct 03 20:14:59 2014 +0000
Revision:
42:480335bdde12
Parent:
41:69bf7091c2ca
Child:
43:455522f98de5
tcp em andamento

Who changed what in which revision?

UserRevisionLine numberNew contents of line
klauss 19:ab2088e0dec6 1 #include "mbed.h"
klauss 19:ab2088e0dec6 2 #include "stdint.h"
klauss 19:ab2088e0dec6 3 #include "configs.h"
klauss 19:ab2088e0dec6 4 #include "vz_protocol.h"
klauss 19:ab2088e0dec6 5 #include "parallelcpld.h"
Cola 21:0bd688722e81 6 #include "flood.h"
klauss 28:94aec56c6329 7 #include "debug.h"
Cola 24:270b436a1bb0 8
klauss 41:69bf7091c2ca 9 TCPSocketServer server;
klauss 41:69bf7091c2ca 10 TCPSocketConnection client;
klauss 41:69bf7091c2ca 11 Timer tcp_timer;
klauss 41:69bf7091c2ca 12
klauss 28:94aec56c6329 13 uint8_t debug_alive = 0;
klauss 28:94aec56c6329 14 uint8_t debug_sip = 0;
klauss 29:7246460b73f8 15 uint8_t debug_vector = 0;
klauss 29:7246460b73f8 16 uint8_t debug_cb = 0;
klauss 30:8dfb6d8de53d 17 uint8_t debug_main = 0;
klauss 31:bb5fb28a77df 18 uint8_t debug_cks = 0;
Cola 22:d2a4b5939115 19 uint8_t pcks_s = 0;
Cola 24:270b436a1bb0 20 uint8_t pshowcb = 0;
klauss 31:bb5fb28a77df 21 uint8_t debug_cb_rx = 0;
klauss 31:bb5fb28a77df 22 uint8_t debug_cb_tx = 0;
klauss 31:bb5fb28a77df 23 uint8_t debug_eth_rx = 0;
klauss 31:bb5fb28a77df 24 uint8_t debug_eth_tx = 0;
klauss 31:bb5fb28a77df 25 uint8_t debug_file = 0;
klauss 38:af5ecd6997ab 26 bool from_eth = false;
klauss 42:480335bdde12 27 bool udp_request = false;
klauss 42:480335bdde12 28 bool tcp_session = false;
klauss 41:69bf7091c2ca 29 bool udp_pkg;
klauss 28:94aec56c6329 30
klauss 29:7246460b73f8 31 uint8_t test_debug = 1;
klauss 42:480335bdde12 32 #define PVERSION 3 // Sempre atualizar a versao do prompt
klauss 19:ab2088e0dec6 33
Cola 21:0bd688722e81 34 #define DEBUGBUFSIZE 50
klauss 35:96885a7931f0 35 char __debug_buf__[DEBUGBUFSIZE];
klauss 35:96885a7931f0 36 char * debug_buf = __debug_buf__;
klauss 30:8dfb6d8de53d 37 char last_debug_buf[ DEBUGBUFSIZE ] = "help";
klauss 28:94aec56c6329 38 FILE *fip, *fmask, *fgate, *fport, *fsip, *fsport, *fext, *fserext;
klauss 42:480335bdde12 39 //uint8_t dog = 1;
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
Cola 21:0bd688722e81 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 42:480335bdde12 94 if( tcp_session ) client.send_all( buff, strlen( buff ) );
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 42:480335bdde12 107 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 108 }
klauss 19:ab2088e0dec6 109 cat("/qspi/myip.txt");
klauss 42:480335bdde12 110
klauss 28:94aec56c6329 111 pc.printf("\n\rHeader ext ");
klauss 42:480335bdde12 112 if( from_eth ){
klauss 42:480335bdde12 113 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rHeader ext " );
klauss 42:480335bdde12 114 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 115 }
klauss 28:94aec56c6329 116 cat("/qspi/myext.txt");
klauss 42:480335bdde12 117
klauss 28:94aec56c6329 118 pc.printf("\n\rHeader port ");
klauss 42:480335bdde12 119 if( from_eth ){
klauss 42:480335bdde12 120 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rHeader port " );
klauss 42:480335bdde12 121 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 122 }
klauss 28:94aec56c6329 123 cat("/qspi/mysipport.txt");
klauss 28:94aec56c6329 124
klauss 42:480335bdde12 125 pc.printf("\n\rServer IP ");
klauss 42:480335bdde12 126 if( from_eth ){
klauss 42:480335bdde12 127 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rServer IP " );
klauss 42:480335bdde12 128 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 129 }
klauss 28:94aec56c6329 130 cat("/qspi/serverip.txt");
klauss 42:480335bdde12 131
klauss 28:94aec56c6329 132 pc.printf("\n\rServer ext ");
klauss 42:480335bdde12 133 if( from_eth ){
klauss 42:480335bdde12 134 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rServer ext " );
klauss 42:480335bdde12 135 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 136 }
klauss 28:94aec56c6329 137 cat("/qspi/peerext.txt");
klauss 42:480335bdde12 138
klauss 28:94aec56c6329 139 pc.printf("\n\rServer port ");
klauss 42:480335bdde12 140 if( from_eth ){
klauss 42:480335bdde12 141 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rServer port " );
klauss 42:480335bdde12 142 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 143 }
klauss 28:94aec56c6329 144 cat("/qspi/serverport.txt");
klauss 28:94aec56c6329 145
klauss 28:94aec56c6329 146 pc.printf("\n\rMascara de rede ");
klauss 42:480335bdde12 147 if( from_eth ){
klauss 42:480335bdde12 148 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rMascara de rede " );
klauss 42:480335bdde12 149 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 150 }
klauss 19:ab2088e0dec6 151 cat("/qspi/mymask.txt");
klauss 42:480335bdde12 152
klauss 28:94aec56c6329 153 pc.printf("\n\rGateway IP ");
klauss 42:480335bdde12 154 if( from_eth ){
klauss 42:480335bdde12 155 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rGateway IP " );
klauss 42:480335bdde12 156 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 157 }
klauss 19:ab2088e0dec6 158 cat("/qspi/mygate.txt");
klauss 19:ab2088e0dec6 159 }
klauss 19:ab2088e0dec6 160
klauss 19:ab2088e0dec6 161 if (type == 'c' ){ // close all files
klauss 28:94aec56c6329 162 fclose( fip );
klauss 28:94aec56c6329 163 fclose( fmask );
klauss 28:94aec56c6329 164 fclose( fgate );
klauss 28:94aec56c6329 165 fclose( fport );
klauss 28:94aec56c6329 166 fclose( fsip );
klauss 28:94aec56c6329 167 fclose( fsport );
klauss 28:94aec56c6329 168 fclose( fext );
klauss 28:94aec56c6329 169 fclose( fserext );
klauss 19:ab2088e0dec6 170 }
klauss 19:ab2088e0dec6 171
klauss 19:ab2088e0dec6 172 if (type == 'i' ){ // Check if files exist, if not create the files
klauss 33:735fd60e96d8 173 bool exists = true;
klauss 19:ab2088e0dec6 174 fip = fopen("/qspi/myip.txt", "r");
klauss 19:ab2088e0dec6 175 if (fip == NULL){
klauss 19:ab2088e0dec6 176 fip = fopen("/qspi/myip.txt", "w");
klauss 29:7246460b73f8 177 //fprintf(fip, "%s\n\r",__MY_IP__); //myip
klauss 29:7246460b73f8 178 fprintf(fip, "%s",__MY_IP__); //myip
klauss 33:735fd60e96d8 179 exists = false;
klauss 19:ab2088e0dec6 180 }
klauss 28:94aec56c6329 181
klauss 28:94aec56c6329 182 fserext = fopen("/qspi/myext.txt", "r");
klauss 28:94aec56c6329 183 if ( fserext == NULL ){
klauss 28:94aec56c6329 184 fserext = fopen("/qspi/myext.txt", "w");
klauss 38:af5ecd6997ab 185 fprintf( fserext, "%i\n\r" ,__MY_EXT__ ); //asterisk ext
klauss 33:735fd60e96d8 186 exists = false;
klauss 28:94aec56c6329 187 }
klauss 28:94aec56c6329 188 fport = fopen("/qspi/mysipport.txt", "r");
klauss 28:94aec56c6329 189 if (fport == NULL){
klauss 28:94aec56c6329 190 fport = fopen("/qspi/mysipport.txt", "w");
klauss 38:af5ecd6997ab 191 fprintf(fport, "%i\n\r",__MY_PORT__); //mysipport
klauss 33:735fd60e96d8 192 exists = false;
klauss 28:94aec56c6329 193 }
klauss 28:94aec56c6329 194 fsip = fopen("/qspi/serverip.txt", "r");
klauss 28:94aec56c6329 195 if (fsip == NULL){
klauss 28:94aec56c6329 196 fsip = fopen("/qspi/serverip.txt", "w");
klauss 29:7246460b73f8 197 //fprintf(fsip, "%s\n\r",__SERVER_IP__ ); //asterisk ip
klauss 29:7246460b73f8 198 fprintf(fsip, "%s",__SERVER_IP__ ); //asterisk ip
klauss 33:735fd60e96d8 199 exists = false;
klauss 28:94aec56c6329 200 }
klauss 28:94aec56c6329 201
klauss 28:94aec56c6329 202 fext = fopen("/qspi/peerext.txt", "r");
klauss 28:94aec56c6329 203 if ( fext == NULL ){
klauss 28:94aec56c6329 204 fext = fopen("/qspi/peerext.txt", "w");
klauss 38:af5ecd6997ab 205 fprintf( fext, "%i\n\r",__PEER_EXT__ ); //asterisk ip
klauss 33:735fd60e96d8 206 exists = false;
klauss 28:94aec56c6329 207 }
klauss 28:94aec56c6329 208 fsport = fopen("/qspi/serverport.txt", "r");
klauss 28:94aec56c6329 209 if (fsport == NULL){
klauss 28:94aec56c6329 210 fsport = fopen("/qspi/serverport.txt", "w");
klauss 38:af5ecd6997ab 211 fprintf(fsport, "%i\n\r",__SERVER_PORT__ ); //asterisk port
klauss 33:735fd60e96d8 212 exists = false;
klauss 28:94aec56c6329 213 }
klauss 28:94aec56c6329 214
klauss 19:ab2088e0dec6 215 fmask = fopen("/qspi/mymask.txt", "r");
klauss 19:ab2088e0dec6 216 if (fmask == NULL){
klauss 19:ab2088e0dec6 217 fmask = fopen("/qspi/mymask.txt", "w");
klauss 31:bb5fb28a77df 218 fprintf(fmask, "%s",__MY_MSK__); //mymask
klauss 33:735fd60e96d8 219 exists = false;
klauss 19:ab2088e0dec6 220 }
klauss 19:ab2088e0dec6 221 fgate = fopen("/qspi/mygateway.txt", "r");
klauss 19:ab2088e0dec6 222 if (fgate == NULL){
klauss 19:ab2088e0dec6 223 fgate = fopen("/qspi/mygate.txt", "w");
klauss 31:bb5fb28a77df 224 fprintf(fgate, "%s",__MY_GTW__); //mygateway
klauss 33:735fd60e96d8 225 exists = false;
klauss 19:ab2088e0dec6 226 }
klauss 33:735fd60e96d8 227 if( !exists ) pc.printf("\n\r Default configurations set! \n\r");
klauss 19:ab2088e0dec6 228 }
klauss 19:ab2088e0dec6 229
klauss 19:ab2088e0dec6 230 if (type == 'r' ){ // Just open for read
klauss 19:ab2088e0dec6 231 fip = fopen("/qspi/myip.txt", "r");
klauss 19:ab2088e0dec6 232 fmask = fopen("/qspi/mymask.txt", "r");
klauss 19:ab2088e0dec6 233 fgate = fopen("/qspi/mygateway.txt", "r");
klauss 19:ab2088e0dec6 234 fport = fopen("/qspi/mysipport.txt", "r");
klauss 19:ab2088e0dec6 235 fsip = fopen("/qspi/serverip.txt", "r");
klauss 19:ab2088e0dec6 236 fsport = fopen("/qspi/serverport.txt", "r");
klauss 28:94aec56c6329 237 fext = fopen( "/qspi/myext.txt", "r" );
klauss 28:94aec56c6329 238 fserext = fopen( "/qspi/peerext.txt", "r" );
klauss 19:ab2088e0dec6 239 }
klauss 19:ab2088e0dec6 240
klauss 19:ab2088e0dec6 241 if (type == 'w'){ // Create and write the default configs
klauss 19:ab2088e0dec6 242 fip = fopen("/qspi/myip.txt", "w");
klauss 19:ab2088e0dec6 243 fmask = fopen("/qspi/mymask.txt", "w");
klauss 19:ab2088e0dec6 244 fgate = fopen("/qspi/mygateway.txt", "w");
klauss 19:ab2088e0dec6 245 fport = fopen("/qspi/mysipport.txt", "w");
klauss 19:ab2088e0dec6 246 fsip = fopen("/qspi/serverip.txt", "w");
klauss 19:ab2088e0dec6 247 fsport = fopen("/qspi/serverport.txt", "w");
klauss 28:94aec56c6329 248 fext = fopen( "/qspi/myext.txt", "w" );
klauss 28:94aec56c6329 249 fserext = fopen( "/qspi/peerext.txt", "w" );
klauss 19:ab2088e0dec6 250
klauss 29:7246460b73f8 251 //fprintf( fip, "%s\n\r", __MY_IP__ ); //myip
klauss 29:7246460b73f8 252 fprintf( fip, "%s", __MY_IP__ ); //myip
klauss 38:af5ecd6997ab 253 fprintf( fport, "%i\n\r", __MY_PORT__ ); //mysipport
klauss 38:af5ecd6997ab 254 fprintf( fext, "%i\n\r", __MY_EXT__ ); //myext
klauss 28:94aec56c6329 255
klauss 29:7246460b73f8 256 //fprintf( fsip, "%s\n\r", __SERVER_IP__ ); //asterisk ip
klauss 29:7246460b73f8 257 fprintf( fsip, "%s", __SERVER_IP__ ); //asterisk ip
klauss 38:af5ecd6997ab 258 fprintf( fserext, "%i\n\r",__PEER_EXT__ ); //asterisk port
klauss 38:af5ecd6997ab 259 fprintf( fsport, "%i\n\r",__SERVER_PORT__ ); //asterisk port
klauss 28:94aec56c6329 260
klauss 31:bb5fb28a77df 261 fprintf( fmask, "%s",__MY_MSK__ ); //mymask
klauss 31:bb5fb28a77df 262 fprintf( fgate, "%i", __MY_GTW__ ); //mygateway
klauss 19:ab2088e0dec6 263
klauss 19:ab2088e0dec6 264 files('c');
klauss 19:ab2088e0dec6 265
klauss 19:ab2088e0dec6 266 pc.printf("\n\r Default configurations set! \n\r");
klauss 19:ab2088e0dec6 267
klauss 19:ab2088e0dec6 268 }
klauss 19:ab2088e0dec6 269
klauss 19:ab2088e0dec6 270 }
klauss 26:725cbbedadd5 271 void init_fsystem(){
klauss 26:725cbbedadd5 272 // init file system and check if files exist
klauss 26:725cbbedadd5 273 if (!qspifs.isformatted()) {
klauss 26:725cbbedadd5 274 qspifs.format();
klauss 26:725cbbedadd5 275 pc.printf("File system configured!!\n\r");
klauss 26:725cbbedadd5 276 }
klauss 26:725cbbedadd5 277 files('i'); // check if the files are created
klauss 26:725cbbedadd5 278 files('c');
klauss 41:69bf7091c2ca 279
klauss 41:69bf7091c2ca 280 server.bind( TCP_PORT_LISTENER );
klauss 41:69bf7091c2ca 281 server.listen();
klauss 41:69bf7091c2ca 282 tcp_timer.start();
klauss 41:69bf7091c2ca 283 server.set_blocking( false, 1 );
klauss 26:725cbbedadd5 284 pc.printf("*******System Ready*******\n\r");
klauss 19:ab2088e0dec6 285 }
klauss 19:ab2088e0dec6 286
klauss 28:94aec56c6329 287 // main prompt process
klauss 41:69bf7091c2ca 288 char * prompt_process( char * msg_to_eth ){
klauss 28:94aec56c6329 289 //FIXME dar flush na serial
klauss 19:ab2088e0dec6 290 volatile char b = 0;
klauss 19:ab2088e0dec6 291 static uint8_t bufret = 0;
klauss 30:8dfb6d8de53d 292 static Timer flood_timeout;
klauss 36:728498a78e1e 293 bool miss_match = true;
klauss 41:69bf7091c2ca 294 char buffer[ 1024 ];
klauss 42:480335bdde12 295 do{
klauss 42:480335bdde12 296 if( flood_timeout.read() > 60 ){
klauss 42:480335bdde12 297 pflood = 0;
klauss 42:480335bdde12 298 flood_timeout.stop();
klauss 42:480335bdde12 299 flood_timeout.reset();
klauss 42:480335bdde12 300 }
klauss 42:480335bdde12 301 if( tcp_timer.read() > 3 || tcp_session ){
klauss 42:480335bdde12 302 wdt.kick();
klauss 42:480335bdde12 303 tcp_timer.reset();
klauss 42:480335bdde12 304 if( tcp_session ){
klauss 42:480335bdde12 305 while( tcp_timer.read() < 30 ){
klauss 42:480335bdde12 306 client.set_blocking( false, 1 );
klauss 42:480335bdde12 307 int n = client.receive( buffer, sizeof( buffer ) );
klauss 42:480335bdde12 308 if( n > 0 ){
klauss 42:480335bdde12 309 wdt.kick();
klauss 42:480335bdde12 310 tcp_timer.reset();
klauss 42:480335bdde12 311 buffer[ n - 2 ] = 0;
klauss 42:480335bdde12 312 bufptr = n - 2;
klauss 42:480335bdde12 313 if( !( strcmp( buffer, "quit" ) ) ){
klauss 42:480335bdde12 314 debug_msg("quit request");
klauss 42:480335bdde12 315 debug_buf = __debug_buf__;
klauss 42:480335bdde12 316 bufptr = last_bufptr;
klauss 42:480335bdde12 317 tcp_session = false;
klauss 42:480335bdde12 318 client.close();
klauss 42:480335bdde12 319 bufret = 0;
klauss 42:480335bdde12 320 return( NULL );
klauss 42:480335bdde12 321 }
klauss 42:480335bdde12 322 from_eth = true;
klauss 42:480335bdde12 323 bufret = 1;
klauss 42:480335bdde12 324 break;
klauss 42:480335bdde12 325 }
klauss 42:480335bdde12 326 }
klauss 42:480335bdde12 327 }else{
klauss 42:480335bdde12 328 if( !server.accept( client ) ){
klauss 42:480335bdde12 329 tcp_session = true;
klauss 42:480335bdde12 330 from_eth = true;
klauss 41:69bf7091c2ca 331 last_bufptr = bufptr;
klauss 42:480335bdde12 332 buffer[ 0 ] = '\0';
klauss 41:69bf7091c2ca 333 debug_buf = buffer;
klauss 42:480335bdde12 334 bufptr = 0;
klauss 42:480335bdde12 335 bufret = 0;
klauss 41:69bf7091c2ca 336 }
klauss 41:69bf7091c2ca 337 }
klauss 41:69bf7091c2ca 338 if( tcp_timer.read() >= 30 ){
klauss 41:69bf7091c2ca 339 tcp_timer.reset();
klauss 42:480335bdde12 340 tcp_session = false;
klauss 41:69bf7091c2ca 341 debug_buf = __debug_buf__;
klauss 41:69bf7091c2ca 342 bufptr = last_bufptr;
klauss 41:69bf7091c2ca 343 bufret = 0;
klauss 42:480335bdde12 344 from_eth = false;
klauss 42:480335bdde12 345 tcp_session = false;
klauss 41:69bf7091c2ca 346 return( NULL );
klauss 41:69bf7091c2ca 347 }
klauss 42:480335bdde12 348 }else if( !tcp_session ){
klauss 42:480335bdde12 349 if( msg_to_eth == NULL ){
klauss 42:480335bdde12 350 if ( pc.readable() ){
klauss 42:480335bdde12 351 // imput do teclado
klauss 42:480335bdde12 352 b = pc.getc();
klauss 42:480335bdde12 353
klauss 42:480335bdde12 354 if( b == 0x0D ){ // enter
klauss 42:480335bdde12 355 bufret = 1;
klauss 42:480335bdde12 356 }else{
klauss 42:480335bdde12 357 pc.putc( b );
klauss 42:480335bdde12 358 if( b == 0x08 || b == 0x7F ){ // BS | DEL
klauss 42:480335bdde12 359 if( bufptr > 0 ) debug_buf[ --bufptr ] = 0;
klauss 42:480335bdde12 360 }else if( b == 0x09 ){
klauss 42:480335bdde12 361 // ignore tab
klauss 42:480335bdde12 362 }else{
klauss 42:480335bdde12 363 debug_buf[bufptr] = b;
klauss 42:480335bdde12 364 bufptr++;
klauss 42:480335bdde12 365 }
klauss 42:480335bdde12 366 }
klauss 42:480335bdde12 367 }
klauss 29:7246460b73f8 368 }else{
klauss 42:480335bdde12 369 last_bufptr = bufptr;
klauss 42:480335bdde12 370 bufptr = strlen( msg_to_eth );
klauss 42:480335bdde12 371 debug_buf = msg_to_eth;
klauss 42:480335bdde12 372 from_eth = true;
klauss 42:480335bdde12 373 bufret = 1;
klauss 19:ab2088e0dec6 374 }
klauss 19:ab2088e0dec6 375 }
klauss 42:480335bdde12 376
klauss 42:480335bdde12 377 // Prompt commands here
klauss 42:480335bdde12 378 if ( bufret == 1 ) {
klauss 42:480335bdde12 379 static unsigned int promptcb_last_ext = 0;
klauss 42:480335bdde12 380 static unsigned int promptcb_last_port = 0;
klauss 42:480335bdde12 381 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) ".",1 )) {
klauss 42:480335bdde12 382 miss_match = false;
klauss 42:480335bdde12 383 strcpy( debug_buf, last_debug_buf );
klauss 42:480335bdde12 384 }
klauss 42:480335bdde12 385
klauss 42:480335bdde12 386 if( !bufptr ){
klauss 42:480335bdde12 387 miss_match = false;
klauss 42:480335bdde12 388 }
klauss 42:480335bdde12 389 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "ifconfig" ) ){
klauss 42:480335bdde12 390 miss_match = false;
klauss 42:480335bdde12 391 pc.printf("\n\r");
klauss 42:480335bdde12 392 files('s');
klauss 42:480335bdde12 393 }
klauss 42:480335bdde12 394 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "format" ) ){
klauss 42:480335bdde12 395 miss_match = false;
klauss 42:480335bdde12 396 pc.printf("\n Formatando o sistema de arquivos... espere o sistema reiniciar \n\r");
klauss 42:480335bdde12 397 if( from_eth ){
klauss 42:480335bdde12 398 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Formatando o sistema de arquivos... espere o sistema reiniciar\n\r");
klauss 42:480335bdde12 399 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 400 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 401 client.close();
klauss 42:480335bdde12 402 }
klauss 42:480335bdde12 403 NVIC_SystemReset();
klauss 42:480335bdde12 404 }
klauss 42:480335bdde12 405
klauss 42:480335bdde12 406 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "ipset ", 6 )) {
klauss 42:480335bdde12 407 miss_match = false;
klauss 42:480335bdde12 408 fip = fopen("/qspi/myip.txt", "w");
klauss 42:480335bdde12 409 fprintf(fip,"%s",(debug_buf+6));
klauss 42:480335bdde12 410 fclose(fip);
klauss 42:480335bdde12 411 pc.printf("\n\r");
klauss 42:480335bdde12 412 files('s');
klauss 42:480335bdde12 413 }
klauss 42:480335bdde12 414
klauss 42:480335bdde12 415 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "extset ", 7 ) ){
klauss 42:480335bdde12 416 miss_match = false;
klauss 42:480335bdde12 417 fip = fopen("/qspi/myext.txt", "w");
klauss 42:480335bdde12 418 fprintf(fip, "%s" , ( debug_buf + 7) );
klauss 42:480335bdde12 419 fclose(fip);
klauss 42:480335bdde12 420 pc.printf("\n\r");
klauss 42:480335bdde12 421 files('s');
klauss 42:480335bdde12 422 }
klauss 38:af5ecd6997ab 423
klauss 42:480335bdde12 424 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "serextset ", 10 ) ){
klauss 42:480335bdde12 425 miss_match = false;
klauss 42:480335bdde12 426 fip = fopen("/qspi/peerext.txt", "w");
klauss 42:480335bdde12 427 fprintf(fip, "%s\n\r" , ( debug_buf + 10 ) );
klauss 42:480335bdde12 428 fclose(fip);
klauss 42:480335bdde12 429 pc.printf("\n\r");
klauss 42:480335bdde12 430 files('s');
klauss 42:480335bdde12 431 }
klauss 42:480335bdde12 432
klauss 42:480335bdde12 433 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "maskset ",8 ) ){
klauss 42:480335bdde12 434 miss_match = false;
klauss 42:480335bdde12 435 fmask = fopen("/qspi/mymask.txt", "w");
klauss 42:480335bdde12 436 fprintf(fmask,"%s\n\r",(debug_buf+8));
klauss 42:480335bdde12 437 fclose(fmask);
klauss 42:480335bdde12 438 pc.printf("\n\r");
klauss 42:480335bdde12 439 files('s');
klauss 42:480335bdde12 440 }
klauss 42:480335bdde12 441
klauss 42:480335bdde12 442 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "gatewayset ",11 ) ){
klauss 42:480335bdde12 443 miss_match = false;
klauss 42:480335bdde12 444 fgate = fopen("/qspi/mygate.txt", "w");
klauss 42:480335bdde12 445 fprintf(fgate,"%s\n\r",(debug_buf+11));
klauss 42:480335bdde12 446 fclose(fgate);
klauss 42:480335bdde12 447 pc.printf("\n\r");
klauss 42:480335bdde12 448 files('s');
klauss 42:480335bdde12 449 }
klauss 42:480335bdde12 450
klauss 42:480335bdde12 451 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "msipport ",9 ) ){
klauss 42:480335bdde12 452 miss_match = false;
klauss 42:480335bdde12 453 fport = fopen("/qspi/mysipport.txt", "w");
klauss 42:480335bdde12 454 fprintf(fport,"%s\n\r",(debug_buf+9));
klauss 42:480335bdde12 455 fclose(fport);
klauss 42:480335bdde12 456 pc.printf("\n\r");
klauss 42:480335bdde12 457 files('s');
klauss 38:af5ecd6997ab 458 }
klauss 42:480335bdde12 459
klauss 42:480335bdde12 460 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "serverip ",9 ) ){
klauss 42:480335bdde12 461 miss_match = false;
klauss 42:480335bdde12 462 fsip = fopen("/qspi/serverip.txt", "w");
klauss 42:480335bdde12 463 fprintf(fsip,"%s",(debug_buf+9));
klauss 42:480335bdde12 464 fclose(fsip);
klauss 42:480335bdde12 465 pc.printf("\n\r");
klauss 42:480335bdde12 466 files('s');
klauss 36:728498a78e1e 467 }
klauss 42:480335bdde12 468
klauss 42:480335bdde12 469 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "ssport ",7 ) ){
klauss 28:94aec56c6329 470 miss_match = false;
klauss 42:480335bdde12 471 fsport = fopen("/qspi/serverport.txt", "w");
klauss 42:480335bdde12 472 fprintf(fsport,"%s\n\r",(debug_buf+7));
klauss 42:480335bdde12 473 fclose(fsport);
klauss 42:480335bdde12 474 pc.printf("\n\r");
klauss 42:480335bdde12 475 files('s');
klauss 27:98f824719d1c 476 }
klauss 42:480335bdde12 477
klauss 42:480335bdde12 478
klauss 42:480335bdde12 479 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "dconfig" ) ){
klauss 28:94aec56c6329 480 miss_match = false;
klauss 42:480335bdde12 481 files('w');
klauss 42:480335bdde12 482 files('s');
klauss 27:98f824719d1c 483 }
klauss 42:480335bdde12 484
klauss 42:480335bdde12 485 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "reset" ) ){
klauss 28:94aec56c6329 486 miss_match = false;
klauss 42:480335bdde12 487 pc.printf("\n\rJob is done\n\r");
klauss 38:af5ecd6997ab 488 if( from_eth ){
klauss 42:480335bdde12 489 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Job is done\n\r");
klauss 38:af5ecd6997ab 490 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 491 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 492 client.close();
klauss 38:af5ecd6997ab 493 }
klauss 42:480335bdde12 494 NVIC_SystemReset();
klauss 27:98f824719d1c 495 }
klauss 42:480335bdde12 496
klauss 42:480335bdde12 497 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "dog" ) ){
klauss 28:94aec56c6329 498 miss_match = false;
klauss 42:480335bdde12 499 pc.printf("\n\r MUUUUUUUuuuuUUUUUU - I'm not a dog!!!! \n\r");
klauss 38:af5ecd6997ab 500 if( from_eth ){
klauss 42:480335bdde12 501 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "MUUUUUUUuuuuUUUUUU - I'm not a dog!!!!\n\r");
klauss 38:af5ecd6997ab 502 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 38:af5ecd6997ab 503 }
klauss 42:480335bdde12 504 }
klauss 42:480335bdde12 505
klauss 42:480335bdde12 506 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "flood ",6 ) ){
klauss 42:480335bdde12 507 if (xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "on",2 ) ){
klauss 42:480335bdde12 508 miss_match = false;
klauss 42:480335bdde12 509 pc.printf("\n\r\t Flood ON\n\r\t");
klauss 42:480335bdde12 510 if( from_eth ){
klauss 42:480335bdde12 511 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Flood On\n\r" );
klauss 42:480335bdde12 512 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 513 }
klauss 42:480335bdde12 514 tflood.start();
klauss 42:480335bdde12 515 tflood.reset();
klauss 42:480335bdde12 516 floodcount =0;
klauss 42:480335bdde12 517 pflood = 1;
klauss 42:480335bdde12 518 flood_timeout.start();
klauss 42:480335bdde12 519 }
klauss 42:480335bdde12 520 if (xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "off",3 )) {
klauss 42:480335bdde12 521 miss_match = false;
klauss 42:480335bdde12 522 pc.printf("\n\r\t Flood OFF\n\r\t");
klauss 42:480335bdde12 523 if( from_eth ){
klauss 42:480335bdde12 524 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Flood Off\n\r" );
klauss 42:480335bdde12 525 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 526 }
klauss 42:480335bdde12 527 pflood = 0;
klauss 42:480335bdde12 528 tflood.stop();
klauss 42:480335bdde12 529 flood_timeout.reset();
klauss 42:480335bdde12 530 }
klauss 27:98f824719d1c 531 }
klauss 42:480335bdde12 532
klauss 42:480335bdde12 533 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug ",6 )) {
klauss 42:480335bdde12 534 if( xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "on",2 )) {
klauss 42:480335bdde12 535 miss_match = false;
klauss 42:480335bdde12 536 pc.printf("\n\r\tDebug ON\n\r\t");
klauss 42:480335bdde12 537 if( from_eth ){
klauss 42:480335bdde12 538 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug On\n\r" );
klauss 42:480335bdde12 539 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 540 }
klauss 42:480335bdde12 541 debug_alive = 1;
klauss 42:480335bdde12 542 }
klauss 42:480335bdde12 543 if( xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "off",3 )) {
klauss 42:480335bdde12 544 miss_match = false;
klauss 42:480335bdde12 545 pc.printf("\n\r\tDebug OFF\n\r\t");
klauss 42:480335bdde12 546 if( from_eth ){
klauss 42:480335bdde12 547 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Off\n\r" );
klauss 42:480335bdde12 548 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 549 }
klauss 42:480335bdde12 550 debug_alive = 0;
klauss 42:480335bdde12 551 }
klauss 42:480335bdde12 552 if( xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "show",4 ) ){
klauss 42:480335bdde12 553 miss_match = false;
klauss 42:480335bdde12 554 pc.printf("\n\rdebug_sip");
klauss 42:480335bdde12 555 pc.printf("\n\rdebug_alive");
klauss 42:480335bdde12 556 pc.printf("\n\rdebug_prompt");
klauss 42:480335bdde12 557 pc.printf("\n\rdebug_vector");
klauss 42:480335bdde12 558 pc.printf("\n\rdebug_cb");
klauss 42:480335bdde12 559 pc.printf("\n\rdebug_main");
klauss 42:480335bdde12 560 pc.printf("\n\rdebug_cks");
klauss 42:480335bdde12 561 pc.printf("\n\rdebug_cb_rx");
klauss 42:480335bdde12 562 pc.printf("\n\rdebug_cb_tx*");
klauss 42:480335bdde12 563 pc.printf("\n\rdebug_eth_rx*");
klauss 42:480335bdde12 564 pc.printf("\n\rdebug_eth_tx*");
klauss 42:480335bdde12 565 pc.printf("\n\rdebug_file");
klauss 42:480335bdde12 566
klauss 42:480335bdde12 567 if( from_eth ){
klauss 42:480335bdde12 568 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 569 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 570 }
klauss 42:480335bdde12 571 }
klauss 31:bb5fb28a77df 572 }
klauss 42:480335bdde12 573
klauss 42:480335bdde12 574 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_sip ", 10 ) ){
klauss 42:480335bdde12 575 if (xmemmatch( (uint8_t*)(debug_buf + 10 ), (uint8_t*) "on",2 ) ){
klauss 42:480335bdde12 576 miss_match = false;
klauss 42:480335bdde12 577 pc.printf( "\n\rSip Debug ON\n\r" );
klauss 42:480335bdde12 578 if( from_eth ){
klauss 42:480335bdde12 579 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Sip Debug On\n\r" );
klauss 42:480335bdde12 580 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 581 }
klauss 42:480335bdde12 582 debug_sip = 1;
klauss 42:480335bdde12 583 }
klauss 42:480335bdde12 584 if (xmemmatch( (uint8_t*)(debug_buf + 10 ), (uint8_t*) "off",3 )) {
klauss 42:480335bdde12 585 miss_match = false;
klauss 42:480335bdde12 586 pc.printf( "\n\rSip Debug OFF\n\r" );
klauss 42:480335bdde12 587 if( from_eth ){
klauss 42:480335bdde12 588 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Sip Debug Off\n\r" );
klauss 42:480335bdde12 589 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 590 }
klauss 42:480335bdde12 591 debug_sip = 0;
klauss 42:480335bdde12 592 }
klauss 28:94aec56c6329 593 }
klauss 42:480335bdde12 594
klauss 42:480335bdde12 595 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_cks ", 10 )) {
klauss 42:480335bdde12 596 if (xmemmatch( (uint8_t*)(debug_buf + 10 ), (uint8_t*) "on",2 )) {
klauss 42:480335bdde12 597 miss_match = false;
klauss 42:480335bdde12 598 pc.printf( "\n\rCKS Debug ON\n\r" );
klauss 42:480335bdde12 599 if( from_eth ){
klauss 42:480335bdde12 600 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "CKS Debug On\n\r" );
klauss 42:480335bdde12 601 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 602 }
klauss 42:480335bdde12 603 debug_cks = 1;
klauss 42:480335bdde12 604 }
klauss 42:480335bdde12 605 if (xmemmatch( (uint8_t*)(debug_buf + 10 ), (uint8_t*) "off",3 )) {
klauss 42:480335bdde12 606 miss_match = false;
klauss 42:480335bdde12 607 pc.printf( "\n\rCKS Debug OFF\n\r" );
klauss 42:480335bdde12 608 if( from_eth ){
klauss 42:480335bdde12 609 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "CKS Debug Off\n\r" );
klauss 42:480335bdde12 610 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 611 }
klauss 42:480335bdde12 612 debug_cks = 0;
klauss 42:480335bdde12 613 }
klauss 28:94aec56c6329 614 }
klauss 42:480335bdde12 615
klauss 42:480335bdde12 616 //promptcb ramal porta comando
klauss 42:480335bdde12 617 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "promptcb ", 9)) {
klauss 42:480335bdde12 618 miss_match = false;
klauss 42:480335bdde12 619 static int id_msg = 0x10;
klauss 42:480335bdde12 620 uint8_t write_buffer[300];
klauss 42:480335bdde12 621 unsigned int ext,port;
klauss 42:480335bdde12 622 int ant1,ant2;
klauss 42:480335bdde12 623
klauss 42:480335bdde12 624 debug_buf[bufptr++] = 0x0D;
klauss 42:480335bdde12 625 debug_buf[bufptr++] = 0x00;
klauss 42:480335bdde12 626
klauss 42:480335bdde12 627 ant1 = str2uint( (debug_buf+9), &ext);
klauss 42:480335bdde12 628 ant2 = str2uint( ((debug_buf+9)+ant1+1), &port);
klauss 42:480335bdde12 629
klauss 42:480335bdde12 630 promptcb_last_ext = ext;
klauss 42:480335bdde12 631 promptcb_last_port = port;
klauss 42:480335bdde12 632 pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n",ext, port, debug_buf+9+ant1+2+ant2);
klauss 42:480335bdde12 633 promptcb_last_ext = ext;
klauss 42:480335bdde12 634 __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 42:480335bdde12 635 pc.printf("\n\rComando enviado\n\r");
klauss 42:480335bdde12 636 }
klauss 42:480335bdde12 637 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "pcb ",4 )) {
klauss 31:bb5fb28a77df 638 miss_match = false;
klauss 42:480335bdde12 639 static int id_msg = 0x30;
klauss 42:480335bdde12 640 uint8_t write_buffer[300];
klauss 42:480335bdde12 641 debug_buf[bufptr++] = 0x0D;
klauss 42:480335bdde12 642 debug_buf[bufptr++] = 0x00;
klauss 42:480335bdde12 643
klauss 42:480335bdde12 644 pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n",promptcb_last_ext, promptcb_last_port, debug_buf+4);
klauss 42:480335bdde12 645
klauss 42:480335bdde12 646 __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 42:480335bdde12 647 pc.printf("\n\rComando enviado\n\r");
klauss 42:480335bdde12 648 }
klauss 42:480335bdde12 649
klauss 42:480335bdde12 650 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "cks",3 )) {
klauss 42:480335bdde12 651 miss_match = false;
klauss 42:480335bdde12 652 pcks_s = 1;
klauss 42:480335bdde12 653 }
klauss 42:480335bdde12 654
klauss 42:480335bdde12 655 if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "showcb",6 )) {
klauss 42:480335bdde12 656 miss_match = false;
klauss 42:480335bdde12 657 pshowcb = 1;
klauss 31:bb5fb28a77df 658 }
klauss 42:480335bdde12 659
klauss 42:480335bdde12 660 if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_main ", 11 )) {
klauss 42:480335bdde12 661 if (xmemmatch( (uint8_t*)( debug_buf + 11 ), (uint8_t*) "on",2 )) {
klauss 42:480335bdde12 662 miss_match = false;
klauss 42:480335bdde12 663 pc.printf("\r\nDebug Main ON");
klauss 42:480335bdde12 664 if( from_eth ){
klauss 42:480335bdde12 665 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Main On\n\r" );
klauss 42:480335bdde12 666 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 667 }
klauss 42:480335bdde12 668 debug_main = 1;
klauss 42:480335bdde12 669 }
klauss 42:480335bdde12 670 if (xmemmatch( (uint8_t*)( debug_buf + 11 ), (uint8_t*) "off",3 )) {
klauss 42:480335bdde12 671 miss_match = false;
klauss 42:480335bdde12 672 pc.printf("\r\nDebug Main OFF");
klauss 42:480335bdde12 673 if( from_eth ){
klauss 42:480335bdde12 674 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Main Off\n\r" );
klauss 42:480335bdde12 675 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 676 }
klauss 42:480335bdde12 677 debug_main = 0;
klauss 42:480335bdde12 678 }
klauss 31:bb5fb28a77df 679 }
klauss 42:480335bdde12 680
klauss 42:480335bdde12 681 if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_cb_rx ", 12 )) {
klauss 42:480335bdde12 682 if (xmemmatch( (uint8_t*)( debug_buf + 12 ), (uint8_t*) "on",2 )) {
klauss 42:480335bdde12 683 miss_match = false;
klauss 42:480335bdde12 684 pc.printf("\tDebug Cbx Rx ON");
klauss 42:480335bdde12 685 if( from_eth ){
klauss 42:480335bdde12 686 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Cbx On Rx on\n\r" );
klauss 42:480335bdde12 687 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 688 }
klauss 42:480335bdde12 689 debug_cb_rx = 1;
klauss 42:480335bdde12 690 }
klauss 42:480335bdde12 691 if (xmemmatch( (uint8_t*)( debug_buf + 12 ), (uint8_t*) "off",3 )) {
klauss 42:480335bdde12 692 miss_match = false;
klauss 42:480335bdde12 693 pc.printf("Debug Cbx Rx OFF");
klauss 42:480335bdde12 694 if( from_eth ){
klauss 42:480335bdde12 695 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Cbx Rx Off\n\r" );
klauss 42:480335bdde12 696 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 697 }
klauss 42:480335bdde12 698 debug_cb_rx = 0;
klauss 42:480335bdde12 699 }
klauss 27:98f824719d1c 700 }
klauss 42:480335bdde12 701
klauss 42:480335bdde12 702 if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_file ", 11 )) {
klauss 42:480335bdde12 703 if (xmemmatch( (uint8_t*)( debug_buf + 11 ), (uint8_t*) "on",2 )) {
klauss 42:480335bdde12 704 miss_match = false;
klauss 42:480335bdde12 705 pc.printf("\tDebug File ON");
klauss 42:480335bdde12 706 if( from_eth ){
klauss 42:480335bdde12 707 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug File On\n\r" );
klauss 42:480335bdde12 708 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 709 }
klauss 42:480335bdde12 710 debug_cb_rx = 1;
klauss 42:480335bdde12 711 }
klauss 42:480335bdde12 712 if (xmemmatch( (uint8_t*)( debug_buf + 11 ), (uint8_t*) "off",3 )) {
klauss 42:480335bdde12 713 miss_match = false;
klauss 42:480335bdde12 714 pc.printf("Debug File OFF");
klauss 42:480335bdde12 715 if( from_eth ){
klauss 42:480335bdde12 716 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug File Off\n\r" );
klauss 42:480335bdde12 717 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 718 }
klauss 42:480335bdde12 719 debug_cb_rx = 0;
klauss 42:480335bdde12 720 }
klauss 42:480335bdde12 721 }
klauss 42:480335bdde12 722
klauss 42:480335bdde12 723 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "help" )) {
klauss 28:94aec56c6329 724 miss_match = false;
klauss 42:480335bdde12 725 pc.printf("\n\r****************************PROMPT HELP******************\n\r");
klauss 42:480335bdde12 726 if( from_eth ){
klauss 42:480335bdde12 727 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "\n\r****************************PROMPT HELP******************\n\r" );
klauss 42:480335bdde12 728 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 729 }
klauss 42:480335bdde12 730 pc.printf("ifconfig - mostra o arquivo de configuracao do sistema\n\r");
klauss 42:480335bdde12 731 if( from_eth ){
klauss 42:480335bdde12 732 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "ifconfig - mostra o arquivo de configuracao do sistema\n\r" );
klauss 42:480335bdde12 733 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 734 }
klauss 42:480335bdde12 735 pc.printf("dconfig - volta as configuracoes do sistema para o padrao de fabrica\n\r");
klauss 42:480335bdde12 736 if( from_eth ){
klauss 42:480335bdde12 737 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "dconfig - volta as configuracoes do sistema para o padrao de fabrica\n\r" );
klauss 42:480335bdde12 738 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 739 }
klauss 42:480335bdde12 740 pc.printf("callme [ramal porta] - envia o pedido de ligacao para o callbox com o ramal e porta indicada\n\r");
klauss 42:480335bdde12 741 if( from_eth ){
klauss 42:480335bdde12 742 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 42:480335bdde12 743 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 744 }
klauss 42:480335bdde12 745 pc.printf("promptcb ramal porta comando - envia o <comando> para o cbx <ramal> e <porta> executar\n\r");
klauss 42:480335bdde12 746 if( from_eth ){
klauss 42:480335bdde12 747 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "promptcb ramal porta comando - envia o <comando> para o cbx <ramal> e <porta> executar\n\r" );
klauss 42:480335bdde12 748 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 749 }
klauss 42:480335bdde12 750 pc.printf("format - formata o sistema de arquivos\n\r");
klauss 42:480335bdde12 751 if( from_eth ){
klauss 42:480335bdde12 752 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "format - formata o sistema de arquivos\n\r" );
klauss 42:480335bdde12 753 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 754 }
klauss 42:480335bdde12 755 pc.printf("reset - resta o sistema\n\r");
klauss 42:480335bdde12 756 if( from_eth ){
klauss 42:480335bdde12 757 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "reset - resta o sistema\n\r" );
klauss 42:480335bdde12 758 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 759 }
klauss 42:480335bdde12 760 pc.printf("ipset [ip] - Configura o IP da cabeceira\n\r");
klauss 42:480335bdde12 761 if( from_eth ){
klauss 42:480335bdde12 762 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "ipset [ip] - Configura o IP da cabeceira\n\r" );
klauss 42:480335bdde12 763 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 764 }
klauss 42:480335bdde12 765 pc.printf("extset [ext] - Configura a ext da cabeceira\n\r");
klauss 42:480335bdde12 766 if( from_eth ){
klauss 42:480335bdde12 767 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "extset [ext] - Configura a ext da cabeceira\n\r" );
klauss 42:480335bdde12 768 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 769 }
klauss 42:480335bdde12 770 pc.printf("msipport [port] - Configura a porta SIP da cabeceira\n\r");
klauss 42:480335bdde12 771 if( from_eth ){
klauss 42:480335bdde12 772 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "msipport [port] - Configura a porta SIP da cabeceira\n\r" );
klauss 42:480335bdde12 773 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 774 }
klauss 42:480335bdde12 775 pc.printf("serverip [ip] - Configura o ip do servidor asterisk\n\r");
klauss 42:480335bdde12 776 if( from_eth ){
klauss 42:480335bdde12 777 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "serverip [ip] - Configura o ip do servidor asterisk\n\r" );
klauss 42:480335bdde12 778 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 779 }
klauss 42:480335bdde12 780 pc.printf("serextset [ext] - Configura a server ext da cabeceira\n\r");
klauss 42:480335bdde12 781 if( from_eth ){
klauss 42:480335bdde12 782 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "serextset [ext] - Configura a server ext da cabeceira\n\r" );
klauss 42:480335bdde12 783 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 784 }
klauss 42:480335bdde12 785 pc.printf("ssport [port] - Configura a porta SIP do servidor asterisk\n\r");
klauss 42:480335bdde12 786 if( from_eth ){
klauss 42:480335bdde12 787 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "ssport [port] - Configura a porta SIP do servidor asterisk\n\r" );
klauss 42:480335bdde12 788 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 789 }
klauss 42:480335bdde12 790 pc.printf("maskset [mask] - Configura a mascara da cabeceira\n\r");
klauss 42:480335bdde12 791 if( from_eth ){
klauss 42:480335bdde12 792 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "maskset [mask] - Configura a mascara da cabeceira\n\r" );
klauss 42:480335bdde12 793 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 794 }
klauss 42:480335bdde12 795 pc.printf("gatewayset [gateway] - Configura o gateway da cabeceira\n\r");
klauss 42:480335bdde12 796 if( from_eth ){
klauss 42:480335bdde12 797 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "gatewayset [gateway] - Configura o gateway da cabeceira\n\r" );
klauss 42:480335bdde12 798 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 799 }
klauss 42:480335bdde12 800 pc.printf("showcb - lista os Cbx registrados na header\n\r");
klauss 42:480335bdde12 801 if( from_eth ){
klauss 42:480335bdde12 802 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "showcb - lista os Cbx registrados na header\n\r" );
klauss 42:480335bdde12 803 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 804 }
klauss 42:480335bdde12 805 pc.printf("cks - exibe estatisticas de check sum\n\r");
klauss 42:480335bdde12 806 if( from_eth ){
klauss 42:480335bdde12 807 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "cks - exibe estatisticas de check sum\n\r" );
klauss 42:480335bdde12 808 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 809 }
klauss 42:480335bdde12 810 pc.printf(". - executa o comando anterior novamente\n\r");
klauss 42:480335bdde12 811 if( from_eth ){
klauss 42:480335bdde12 812 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, ". - executa o comando anterior novamente\n\r" );
klauss 42:480335bdde12 813 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 814 }
klauss 42:480335bdde12 815 pc.printf("debug [on|off|show] - seleciona debugs gerais | lista de debugs \n\r");
klauss 42:480335bdde12 816 if( from_eth ){
klauss 42:480335bdde12 817 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "debug [on|off|show] - seleciona debugs gerais | lista de debugs \n\r" );
klauss 42:480335bdde12 818 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 819 }
klauss 42:480335bdde12 820 pc.printf("flood [on|off] - simula envio de pacotes de audio\n\r");
klauss 42:480335bdde12 821 if( from_eth ){
klauss 42:480335bdde12 822 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "flood [on|off] - simula envio de pacotes de audio\n\r");
klauss 42:480335bdde12 823 if( tcp_session ) client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 824 }
klauss 42:480335bdde12 825 pc.printf("PROMPT VERSION: V%d\n\r",PVERSION);
klauss 42:480335bdde12 826 //Obs :: a ultima linha nao mandamos direto pro tcp porque ela eh enviada fora desse escopo
klauss 42:480335bdde12 827 if( from_eth ) snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "PROMPT VERSION: V%d\n\r",PVERSION);
klauss 31:bb5fb28a77df 828 }
klauss 42:480335bdde12 829 /*
klauss 42:480335bdde12 830 if ( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "callme ", 7 )) {
klauss 42:480335bdde12 831 if ( debug_buf[16] != 0 && debug_buf[11] != 0x20 )
klauss 42:480335bdde12 832 pc.printf("\n\r Error: formato errado! ramal=xxxx porta=xxxx \n\r");
klauss 42:480335bdde12 833 else {
klauss 42:480335bdde12 834 uint8_t data[300];
klauss 42:480335bdde12 835 uint16_t cks=0;
klauss 42:480335bdde12 836
klauss 42:480335bdde12 837 //data[0] = (uint8_t)( (debug_buf[7]&0xf0)<<4 + (debug_buf[8]&0x0f) ) ;
klauss 42:480335bdde12 838 //data[1] = (uint8_t)( (debug_buf[9]&0xf0)<<4 + (debug_buf[10]&0x0f) ) ;
klauss 42:480335bdde12 839 //data[2] = (uint8_t)( (debug_buf[12]&0xf0)<<4 + (debug_buf[13]&0x0f) ) ;
klauss 42:480335bdde12 840 /data[3] = (uint8_t)( (debug_buf[14]&0xf0)<<4 + (debug_buf[15]&0x0f) ) ;
klauss 42:480335bdde12 841
klauss 42:480335bdde12 842 data[0] = (uint8_t)( debug_buf[ 7 ] & 0xFF00 >> 8 );
klauss 42:480335bdde12 843 data[1] = (uint8_t)( debug_buf[ 9 ] & 0x00FF );
klauss 42:480335bdde12 844 data[2] = (uint8_t)( debug_buf[ 12 ] & 0xFF00 >> 8 );
klauss 42:480335bdde12 845 data[3] = (uint8_t)( debug_buf[ 14 ] & 0x00FF );
klauss 42:480335bdde12 846
klauss 42:480335bdde12 847 data[6] = 0x04;
klauss 42:480335bdde12 848 for (int i = 7; i < 300; i++) data[i] = 0x00;
klauss 42:480335bdde12 849 cks = __checksum__(data,300);
klauss 42:480335bdde12 850 data[4] = cks>>8;
klauss 42:480335bdde12 851 data[5] = cks&0xff;
klauss 42:480335bdde12 852
klauss 42:480335bdde12 853 pc.printf("\n\r");
klauss 42:480335bdde12 854 for( int i = 0; i < 300; i++ )
klauss 42:480335bdde12 855 pc.printf("%x ", data[ i ] );
klauss 42:480335bdde12 856 pc.printf("\n\r");
klauss 42:480335bdde12 857
klauss 42:480335bdde12 858 xmemcpy(TXBuffer,data,300);
klauss 42:480335bdde12 859
klauss 42:480335bdde12 860 pc.printf("\n\r");
klauss 42:480335bdde12 861 for( int i = 0; i < 300; i++ )
klauss 42:480335bdde12 862 pc.printf("%x ", data[ i ] );
klauss 42:480335bdde12 863 pc.printf("\n\r");
klauss 42:480335bdde12 864
klauss 42:480335bdde12 865 send2callboxes();
klauss 42:480335bdde12 866
klauss 42:480335bdde12 867 pc.printf("\n\r calling callbox %s \n\r",debug_buf+7);
klauss 42:480335bdde12 868 }
klauss 42:480335bdde12 869
klauss 31:bb5fb28a77df 870 }
klauss 42:480335bdde12 871 */
klauss 42:480335bdde12 872
klauss 42:480335bdde12 873 if( miss_match ){
klauss 42:480335bdde12 874 debug_msg("");
klauss 42:480335bdde12 875 pc.printf("\n\r%s: command not found\n\r", debug_buf );
klauss 42:480335bdde12 876 if( from_eth ){
klauss 42:480335bdde12 877 snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "%s: command not found\n", debug_buf );
klauss 42:480335bdde12 878 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 42:480335bdde12 879 }
klauss 42:480335bdde12 880 }
klauss 42:480335bdde12 881
klauss 42:480335bdde12 882 else strcpy( last_debug_buf, debug_buf );
klauss 27:98f824719d1c 883 }
klauss 27:98f824719d1c 884 /*
klauss 42:480335bdde12 885 if( from_eth ){
klauss 42:480335bdde12 886 if( tcp_session ){
klauss 42:480335bdde12 887 client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 888 tcp_timer.reset();
klauss 42:480335bdde12 889 bufret = 0;
klauss 42:480335bdde12 890 from_eth = false;
klauss 42:480335bdde12 891 }else{
klauss 42:480335bdde12 892 msg_to_eth = debug_buf;
klauss 42:480335bdde12 893 debug_buf = __debug_buf__;
klauss 42:480335bdde12 894 bufptr = last_bufptr;
klauss 42:480335bdde12 895 bufret = 0;
klauss 42:480335bdde12 896 from_eth = false;
klauss 42:480335bdde12 897
klauss 42:480335bdde12 898 if( miss_match ) return( NULL );
klauss 42:480335bdde12 899
klauss 42:480335bdde12 900 else return( msg_to_eth );
klauss 19:ab2088e0dec6 901 }
klauss 42:480335bdde12 902 }*/
klauss 41:69bf7091c2ca 903
klauss 42:480335bdde12 904 if( tcp_session ){
klauss 42:480335bdde12 905 strcat( debug_buf, "\n\r> " );
klauss 42:480335bdde12 906 client.send_all( debug_buf, strlen( debug_buf ) );
klauss 42:480335bdde12 907 tcp_timer.reset();
klauss 42:480335bdde12 908 bufret = 0;
klauss 42:480335bdde12 909 from_eth = false;
klauss 42:480335bdde12 910 }else if( udp_request ){
klauss 42:480335bdde12 911 msg_to_eth = debug_buf;
klauss 42:480335bdde12 912 debug_buf = __debug_buf__;
klauss 42:480335bdde12 913 bufptr = last_bufptr;
klauss 42:480335bdde12 914 bufret = 0;
klauss 42:480335bdde12 915 from_eth = false;
klauss 42:480335bdde12 916
klauss 42:480335bdde12 917 if( miss_match ) return( NULL );
klauss 42:480335bdde12 918
klauss 42:480335bdde12 919 else return( msg_to_eth );
klauss 42:480335bdde12 920 }
klauss 42:480335bdde12 921 if( b == 0x0D || bufret == 1 || bufptr > DEBUGBUFSIZE ){
klauss 42:480335bdde12 922 bufptr = 0;
klauss 42:480335bdde12 923 for (uint8_t i =0; i < DEBUGBUFSIZE; i++) {
klauss 42:480335bdde12 924 debug_buf[i] = 0;
klauss 42:480335bdde12 925 }
klauss 42:480335bdde12 926 bufret = 0;
klauss 42:480335bdde12 927 pc.putc(0x0A);
klauss 42:480335bdde12 928 pc.putc(0x0D);
klauss 42:480335bdde12 929 pc.printf("> ");
klauss 42:480335bdde12 930 }
klauss 42:480335bdde12 931 }while( tcp_session );
klauss 42:480335bdde12 932
klauss 36:728498a78e1e 933 return( NULL );
klauss 42:480335bdde12 934 }