Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Committer:
klauss
Date:
Tue Sep 30 19:23:53 2014 +0000
Revision:
36:728498a78e1e
Parent:
35:96885a7931f0
Child:
38:af5ecd6997ab
inclusao do tratamento ao type __PROMPT__

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 19:ab2088e0dec6 9 //#include "debug.h"
klauss 19:ab2088e0dec6 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 31:bb5fb28a77df 23 uint8_t debug_file = 0;
klauss 28:94aec56c6329 24
klauss 29:7246460b73f8 25 uint8_t test_debug = 1;
klauss 31:bb5fb28a77df 26 #define PVERSION 1.1 // Sempre atualizar a versao do prompt
klauss 19:ab2088e0dec6 27
Cola 21:0bd688722e81 28 #define DEBUGBUFSIZE 50
klauss 35:96885a7931f0 29 char __debug_buf__[DEBUGBUFSIZE];
klauss 35:96885a7931f0 30 char * debug_buf = __debug_buf__;
klauss 30:8dfb6d8de53d 31 char last_debug_buf[ DEBUGBUFSIZE ] = "help";
klauss 28:94aec56c6329 32 FILE *fip, *fmask, *fgate, *fport, *fsip, *fsport, *fext, *fserext;
klauss 19:ab2088e0dec6 33 uint8_t dog = 1;
klauss 19:ab2088e0dec6 34 uint8_t debug_prompt = 0;
klauss 19:ab2088e0dec6 35 uint8_t bufptr = 0;
klauss 35:96885a7931f0 36 uint8_t last_bufptr = 0;
klauss 19:ab2088e0dec6 37
klauss 19:ab2088e0dec6 38 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 39 while (size--) {
klauss 19:ab2088e0dec6 40 if (*s1++ != *s2++) return 0; /* does not match */
klauss 19:ab2088e0dec6 41 }
klauss 19:ab2088e0dec6 42 return 1; /* matches */
klauss 19:ab2088e0dec6 43 }
klauss 19:ab2088e0dec6 44
klauss 19:ab2088e0dec6 45 uint8_t xstrmatch(const uint8_t * s1, const uint8_t * s2) { // presente na lib.h pode retirar da versao final
klauss 19:ab2088e0dec6 46 while (*s1) {
klauss 19:ab2088e0dec6 47 if (*s1++ != *s2++) return 0; /* does not match */
klauss 19:ab2088e0dec6 48 }
klauss 19:ab2088e0dec6 49 if ( *s2 == 0 )
klauss 19:ab2088e0dec6 50 return 1; /* matches */
klauss 19:ab2088e0dec6 51 else
klauss 19:ab2088e0dec6 52 return 0; /* does not match */
klauss 19:ab2088e0dec6 53 }
klauss 19:ab2088e0dec6 54
klauss 19:ab2088e0dec6 55 void xmemcpy(uint8_t * dest, const uint8_t * src, uint16_t size) { // presente na lib.h pode retirar da versao final
klauss 19:ab2088e0dec6 56 while (size--) *dest++ = *src++;
klauss 19:ab2088e0dec6 57 }
klauss 19:ab2088e0dec6 58
Cola 21:0bd688722e81 59 int str2uint (char * s, unsigned int * val) {
Cola 21:0bd688722e81 60 int i = 0;
Cola 21:0bd688722e81 61 unsigned int ret = 0;
Cola 21:0bd688722e81 62 for (;;) {
Cola 21:0bd688722e81 63 if (s[i] < '0') {
Cola 21:0bd688722e81 64 *val = ret;
Cola 21:0bd688722e81 65 return i;
Cola 21:0bd688722e81 66 }
Cola 21:0bd688722e81 67 ret *= 10;
Cola 21:0bd688722e81 68 ret += s[i] - '0';
Cola 21:0bd688722e81 69 i++;
Cola 21:0bd688722e81 70 }
Cola 21:0bd688722e81 71 }
klauss 19:ab2088e0dec6 72
klauss 19:ab2088e0dec6 73 void cat(const char* fname) // Print the content of a given file
klauss 19:ab2088e0dec6 74 {
klauss 19:ab2088e0dec6 75 char buff[513];
klauss 19:ab2088e0dec6 76 int num;
klauss 19:ab2088e0dec6 77
klauss 19:ab2088e0dec6 78 FILE *fp = fopen(fname, "r");
klauss 19:ab2088e0dec6 79 if (fp == NULL) {
klauss 28:94aec56c6329 80 pc.printf("Failed to open %s", fname);
klauss 19:ab2088e0dec6 81 return;
klauss 19:ab2088e0dec6 82 }
klauss 19:ab2088e0dec6 83
klauss 19:ab2088e0dec6 84 while ((num = fread(buff, 1, 512, fp)) > 0)
klauss 19:ab2088e0dec6 85 {
klauss 19:ab2088e0dec6 86 buff[num] = '\0';
klauss 19:ab2088e0dec6 87 pc.printf(buff);
klauss 19:ab2088e0dec6 88
klauss 19:ab2088e0dec6 89 }
klauss 19:ab2088e0dec6 90 fclose(fp);
klauss 19:ab2088e0dec6 91 }
klauss 19:ab2088e0dec6 92
klauss 28:94aec56c6329 93 // operantion with the system config files
klauss 28:94aec56c6329 94 void files (const char type) {
klauss 19:ab2088e0dec6 95 if (type == 's' ){ // show files
klauss 19:ab2088e0dec6 96 pc.printf("\n\r");
klauss 28:94aec56c6329 97 pc.printf("Header IP " );
klauss 19:ab2088e0dec6 98 cat("/qspi/myip.txt");
klauss 28:94aec56c6329 99 pc.printf("\n\rHeader ext ");
klauss 28:94aec56c6329 100 cat("/qspi/myext.txt");
klauss 28:94aec56c6329 101 pc.printf("\n\rHeader port ");
klauss 28:94aec56c6329 102 cat("/qspi/mysipport.txt");
klauss 28:94aec56c6329 103
klauss 28:94aec56c6329 104 pc.printf("\n\rServer ip ");
klauss 28:94aec56c6329 105 cat("/qspi/serverip.txt");
klauss 28:94aec56c6329 106 pc.printf("\n\rServer ext ");
klauss 28:94aec56c6329 107 cat("/qspi/peerext.txt");
klauss 28:94aec56c6329 108 pc.printf("\n\rServer port ");
klauss 28:94aec56c6329 109 cat("/qspi/serverport.txt");
klauss 28:94aec56c6329 110
klauss 28:94aec56c6329 111 pc.printf("\n\rMascara de rede ");
klauss 19:ab2088e0dec6 112 cat("/qspi/mymask.txt");
klauss 28:94aec56c6329 113 pc.printf("\n\rGateway IP ");
klauss 19:ab2088e0dec6 114 cat("/qspi/mygate.txt");
klauss 19:ab2088e0dec6 115 }
klauss 19:ab2088e0dec6 116
klauss 19:ab2088e0dec6 117 if (type == 'c' ){ // close all files
klauss 28:94aec56c6329 118 fclose( fip );
klauss 28:94aec56c6329 119 fclose( fmask );
klauss 28:94aec56c6329 120 fclose( fgate );
klauss 28:94aec56c6329 121 fclose( fport );
klauss 28:94aec56c6329 122 fclose( fsip );
klauss 28:94aec56c6329 123 fclose( fsport );
klauss 28:94aec56c6329 124 fclose( fext );
klauss 28:94aec56c6329 125 fclose( fserext );
klauss 19:ab2088e0dec6 126 }
klauss 19:ab2088e0dec6 127
klauss 19:ab2088e0dec6 128 if (type == 'i' ){ // Check if files exist, if not create the files
klauss 33:735fd60e96d8 129 bool exists = true;
klauss 19:ab2088e0dec6 130 fip = fopen("/qspi/myip.txt", "r");
klauss 19:ab2088e0dec6 131 if (fip == NULL){
klauss 19:ab2088e0dec6 132 fip = fopen("/qspi/myip.txt", "w");
klauss 29:7246460b73f8 133 //fprintf(fip, "%s\n\r",__MY_IP__); //myip
klauss 29:7246460b73f8 134 fprintf(fip, "%s",__MY_IP__); //myip
klauss 33:735fd60e96d8 135 exists = false;
klauss 19:ab2088e0dec6 136 }
klauss 28:94aec56c6329 137
klauss 28:94aec56c6329 138 fserext = fopen("/qspi/myext.txt", "r");
klauss 28:94aec56c6329 139 if ( fserext == NULL ){
klauss 28:94aec56c6329 140 fserext = fopen("/qspi/myext.txt", "w");
klauss 31:bb5fb28a77df 141 fprintf( fserext, "%i" ,__MY_EXT__ ); //asterisk ext
klauss 33:735fd60e96d8 142 exists = false;
klauss 28:94aec56c6329 143 }
klauss 28:94aec56c6329 144 fport = fopen("/qspi/mysipport.txt", "r");
klauss 28:94aec56c6329 145 if (fport == NULL){
klauss 28:94aec56c6329 146 fport = fopen("/qspi/mysipport.txt", "w");
klauss 31:bb5fb28a77df 147 fprintf(fport, "%i",__MY_PORT__); //mysipport
klauss 33:735fd60e96d8 148 exists = false;
klauss 28:94aec56c6329 149 }
klauss 28:94aec56c6329 150 fsip = fopen("/qspi/serverip.txt", "r");
klauss 28:94aec56c6329 151 if (fsip == NULL){
klauss 28:94aec56c6329 152 fsip = fopen("/qspi/serverip.txt", "w");
klauss 29:7246460b73f8 153 //fprintf(fsip, "%s\n\r",__SERVER_IP__ ); //asterisk ip
klauss 29:7246460b73f8 154 fprintf(fsip, "%s",__SERVER_IP__ ); //asterisk ip
klauss 33:735fd60e96d8 155 exists = false;
klauss 28:94aec56c6329 156 }
klauss 28:94aec56c6329 157
klauss 28:94aec56c6329 158 fext = fopen("/qspi/peerext.txt", "r");
klauss 28:94aec56c6329 159 if ( fext == NULL ){
klauss 28:94aec56c6329 160 fext = fopen("/qspi/peerext.txt", "w");
klauss 31:bb5fb28a77df 161 fprintf( fext, "%i",__PEER_EXT__ ); //asterisk ip
klauss 33:735fd60e96d8 162 exists = false;
klauss 28:94aec56c6329 163 }
klauss 28:94aec56c6329 164 fsport = fopen("/qspi/serverport.txt", "r");
klauss 28:94aec56c6329 165 if (fsport == NULL){
klauss 28:94aec56c6329 166 fsport = fopen("/qspi/serverport.txt", "w");
klauss 31:bb5fb28a77df 167 fprintf(fsport, "%i",__SERVER_PORT__ ); //asterisk port
klauss 33:735fd60e96d8 168 exists = false;
klauss 28:94aec56c6329 169 }
klauss 28:94aec56c6329 170
klauss 19:ab2088e0dec6 171 fmask = fopen("/qspi/mymask.txt", "r");
klauss 19:ab2088e0dec6 172 if (fmask == NULL){
klauss 19:ab2088e0dec6 173 fmask = fopen("/qspi/mymask.txt", "w");
klauss 31:bb5fb28a77df 174 fprintf(fmask, "%s",__MY_MSK__); //mymask
klauss 33:735fd60e96d8 175 exists = false;
klauss 19:ab2088e0dec6 176 }
klauss 19:ab2088e0dec6 177 fgate = fopen("/qspi/mygateway.txt", "r");
klauss 19:ab2088e0dec6 178 if (fgate == NULL){
klauss 19:ab2088e0dec6 179 fgate = fopen("/qspi/mygate.txt", "w");
klauss 31:bb5fb28a77df 180 fprintf(fgate, "%s",__MY_GTW__); //mygateway
klauss 33:735fd60e96d8 181 exists = false;
klauss 19:ab2088e0dec6 182 }
klauss 33:735fd60e96d8 183 if( !exists ) pc.printf("\n\r Default configurations set! \n\r");
klauss 19:ab2088e0dec6 184 }
klauss 19:ab2088e0dec6 185
klauss 19:ab2088e0dec6 186 if (type == 'r' ){ // Just open for read
klauss 19:ab2088e0dec6 187 fip = fopen("/qspi/myip.txt", "r");
klauss 19:ab2088e0dec6 188 fmask = fopen("/qspi/mymask.txt", "r");
klauss 19:ab2088e0dec6 189 fgate = fopen("/qspi/mygateway.txt", "r");
klauss 19:ab2088e0dec6 190 fport = fopen("/qspi/mysipport.txt", "r");
klauss 19:ab2088e0dec6 191 fsip = fopen("/qspi/serverip.txt", "r");
klauss 19:ab2088e0dec6 192 fsport = fopen("/qspi/serverport.txt", "r");
klauss 28:94aec56c6329 193 fext = fopen( "/qspi/myext.txt", "r" );
klauss 28:94aec56c6329 194 fserext = fopen( "/qspi/peerext.txt", "r" );
klauss 19:ab2088e0dec6 195 }
klauss 19:ab2088e0dec6 196
klauss 19:ab2088e0dec6 197 if (type == 'w'){ // Create and write the default configs
klauss 19:ab2088e0dec6 198 fip = fopen("/qspi/myip.txt", "w");
klauss 19:ab2088e0dec6 199 fmask = fopen("/qspi/mymask.txt", "w");
klauss 19:ab2088e0dec6 200 fgate = fopen("/qspi/mygateway.txt", "w");
klauss 19:ab2088e0dec6 201 fport = fopen("/qspi/mysipport.txt", "w");
klauss 19:ab2088e0dec6 202 fsip = fopen("/qspi/serverip.txt", "w");
klauss 19:ab2088e0dec6 203 fsport = fopen("/qspi/serverport.txt", "w");
klauss 28:94aec56c6329 204 fext = fopen( "/qspi/myext.txt", "w" );
klauss 28:94aec56c6329 205 fserext = fopen( "/qspi/peerext.txt", "w" );
klauss 19:ab2088e0dec6 206
klauss 29:7246460b73f8 207 //fprintf( fip, "%s\n\r", __MY_IP__ ); //myip
klauss 29:7246460b73f8 208 fprintf( fip, "%s", __MY_IP__ ); //myip
klauss 31:bb5fb28a77df 209 fprintf( fport, "%i", __MY_PORT__ ); //mysipport
klauss 31:bb5fb28a77df 210 fprintf( fext, "%i", __MY_EXT__ ); //myext
klauss 28:94aec56c6329 211
klauss 29:7246460b73f8 212 //fprintf( fsip, "%s\n\r", __SERVER_IP__ ); //asterisk ip
klauss 29:7246460b73f8 213 fprintf( fsip, "%s", __SERVER_IP__ ); //asterisk ip
klauss 31:bb5fb28a77df 214 fprintf( fserext, "%i",__PEER_EXT__ ); //asterisk port
klauss 31:bb5fb28a77df 215 fprintf( fsport, "%i",__SERVER_PORT__ ); //asterisk port
klauss 28:94aec56c6329 216
klauss 31:bb5fb28a77df 217 fprintf( fmask, "%s",__MY_MSK__ ); //mymask
klauss 31:bb5fb28a77df 218 fprintf( fgate, "%i", __MY_GTW__ ); //mygateway
klauss 19:ab2088e0dec6 219
klauss 19:ab2088e0dec6 220 files('c');
klauss 19:ab2088e0dec6 221
klauss 19:ab2088e0dec6 222 pc.printf("\n\r Default configurations set! \n\r");
klauss 19:ab2088e0dec6 223
klauss 19:ab2088e0dec6 224 }
klauss 19:ab2088e0dec6 225
klauss 19:ab2088e0dec6 226 }
klauss 26:725cbbedadd5 227 void init_fsystem(){
klauss 26:725cbbedadd5 228 // init file system and check if files exist
klauss 26:725cbbedadd5 229 if (!qspifs.isformatted()) {
klauss 26:725cbbedadd5 230 qspifs.format();
klauss 26:725cbbedadd5 231 pc.printf("File system configured!!\n\r");
klauss 26:725cbbedadd5 232 }
klauss 26:725cbbedadd5 233 files('i'); // check if the files are created
klauss 26:725cbbedadd5 234 files('c');
klauss 26:725cbbedadd5 235 pc.printf("*******System Ready*******\n\r");
klauss 19:ab2088e0dec6 236 }
klauss 19:ab2088e0dec6 237
klauss 28:94aec56c6329 238 // main prompt process
klauss 36:728498a78e1e 239 char * prompt_process( char * ethernet_msg ){
klauss 28:94aec56c6329 240 //FIXME dar flush na serial
klauss 19:ab2088e0dec6 241 volatile char b = 0;
klauss 19:ab2088e0dec6 242 static uint8_t bufret = 0;
klauss 30:8dfb6d8de53d 243 static Timer flood_timeout;
klauss 36:728498a78e1e 244 bool from_eth = false;
klauss 36:728498a78e1e 245 bool miss_match = true;
klauss 30:8dfb6d8de53d 246
klauss 30:8dfb6d8de53d 247 if( flood_timeout.read() > 60 ){
klauss 30:8dfb6d8de53d 248 pflood = 0;
klauss 30:8dfb6d8de53d 249 flood_timeout.stop();
klauss 30:8dfb6d8de53d 250 flood_timeout.reset();
klauss 30:8dfb6d8de53d 251 }
klauss 35:96885a7931f0 252
klauss 35:96885a7931f0 253 if( ethernet_msg == NULL ){
klauss 35:96885a7931f0 254 if ( pc.readable() ){
klauss 26:725cbbedadd5 255 // imput do teclado
klauss 19:ab2088e0dec6 256 b = pc.getc();
klauss 19:ab2088e0dec6 257
klauss 29:7246460b73f8 258 if( b == 0x0D ){ // enter
klauss 27:98f824719d1c 259 bufret = 1;
klauss 29:7246460b73f8 260 }else{
klauss 29:7246460b73f8 261 pc.putc( b );
klauss 29:7246460b73f8 262 if( b == 0x08 || b == 0x7F ){ // BS | DEL
klauss 29:7246460b73f8 263 if( bufptr > 0 ) debug_buf[ --bufptr ] = 0;
klauss 31:bb5fb28a77df 264 }else if( b == 0x09 ){
klauss 31:bb5fb28a77df 265 // ignore tab
klauss 29:7246460b73f8 266 }else{
klauss 29:7246460b73f8 267 debug_buf[bufptr] = b;
klauss 29:7246460b73f8 268 bufptr++;
klauss 29:7246460b73f8 269 }
klauss 19:ab2088e0dec6 270 }
klauss 19:ab2088e0dec6 271 }
klauss 35:96885a7931f0 272 }else{
klauss 35:96885a7931f0 273 last_bufptr = bufptr;
klauss 35:96885a7931f0 274 bufptr = strlen( ethernet_msg );
klauss 35:96885a7931f0 275 debug_buf = ethernet_msg;
klauss 36:728498a78e1e 276 from_eth = true;
klauss 35:96885a7931f0 277 bufret = 1;
klauss 35:96885a7931f0 278 }
klauss 19:ab2088e0dec6 279
klauss 28:94aec56c6329 280 // Prompt commands here
klauss 29:7246460b73f8 281 if ( bufret == 1 ) {
klauss 29:7246460b73f8 282 static unsigned int promptcb_last_ext = 0;
klauss 29:7246460b73f8 283 static unsigned int promptcb_last_port = 0;
klauss 28:94aec56c6329 284
klauss 30:8dfb6d8de53d 285 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) ".",1 )) {
klauss 30:8dfb6d8de53d 286 miss_match = false;
klauss 30:8dfb6d8de53d 287 //xmemcpy( (uint)debug_buf, last_debug_buf, 300);
klauss 30:8dfb6d8de53d 288 strcpy( debug_buf, last_debug_buf );
klauss 30:8dfb6d8de53d 289 }
klauss 30:8dfb6d8de53d 290
klauss 28:94aec56c6329 291 if( !bufptr ){
klauss 28:94aec56c6329 292 miss_match = false;
klauss 28:94aec56c6329 293 }
klauss 27:98f824719d1c 294 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "sconfig" )) {
klauss 28:94aec56c6329 295 miss_match = false;
klauss 27:98f824719d1c 296 pc.printf("\n\r");
klauss 27:98f824719d1c 297 files('s');
klauss 27:98f824719d1c 298 }
klauss 27:98f824719d1c 299 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "format" )) {
klauss 28:94aec56c6329 300 miss_match = false;
klauss 27:98f824719d1c 301 pc.printf("\n Formatando o sistema de arquivos... espere o sistema reiniciar \n\r");
klauss 27:98f824719d1c 302 //qspifs.format();
klauss 27:98f824719d1c 303 NVIC_SystemReset();
klauss 27:98f824719d1c 304 }
klauss 27:98f824719d1c 305
klauss 28:94aec56c6329 306 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "ipset ", 6 )) {
klauss 28:94aec56c6329 307 miss_match = false;
klauss 27:98f824719d1c 308 fip = fopen("/qspi/myip.txt", "w");
klauss 29:7246460b73f8 309 //fprintf(fip,"%s\n\r",(debug_buf+6));
klauss 29:7246460b73f8 310 fprintf(fip,"%s",(debug_buf+6));
klauss 27:98f824719d1c 311 fclose(fip);
klauss 27:98f824719d1c 312 pc.printf("\n\r");
klauss 27:98f824719d1c 313 files('s');
klauss 27:98f824719d1c 314 }
klauss 28:94aec56c6329 315
klauss 28:94aec56c6329 316 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "extset ", 7 )) {
klauss 28:94aec56c6329 317 miss_match = false;
klauss 28:94aec56c6329 318 fip = fopen("/qspi/myext.txt", "w");
klauss 31:bb5fb28a77df 319 fprintf(fip, "%s" , ( debug_buf + 7) );
klauss 28:94aec56c6329 320 fclose(fip);
klauss 28:94aec56c6329 321 pc.printf("\n\r");
klauss 28:94aec56c6329 322 files('s');
klauss 28:94aec56c6329 323 }
klauss 28:94aec56c6329 324
klauss 28:94aec56c6329 325 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "serextset ", 10 )) {
klauss 28:94aec56c6329 326 miss_match = false;
klauss 28:94aec56c6329 327 fip = fopen("/qspi/peerext.txt", "w");
klauss 28:94aec56c6329 328 fprintf(fip, "%s\n\r" , ( debug_buf + 10 ) );
klauss 28:94aec56c6329 329 fclose(fip);
klauss 28:94aec56c6329 330 pc.printf("\n\r");
klauss 28:94aec56c6329 331 files('s');
klauss 28:94aec56c6329 332 }
klauss 27:98f824719d1c 333
klauss 19:ab2088e0dec6 334 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "maskset ",8 )) {
klauss 28:94aec56c6329 335 miss_match = false;
klauss 27:98f824719d1c 336 fmask = fopen("/qspi/mymask.txt", "w");
klauss 27:98f824719d1c 337 fprintf(fmask,"%s\n\r",(debug_buf+8));
klauss 27:98f824719d1c 338 fclose(fmask);
klauss 27:98f824719d1c 339 pc.printf("\n\r");
klauss 27:98f824719d1c 340 files('s');
klauss 27:98f824719d1c 341 }
klauss 27:98f824719d1c 342
klauss 19:ab2088e0dec6 343 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "gatewayset ",11 )) {
klauss 28:94aec56c6329 344 miss_match = false;
klauss 27:98f824719d1c 345 fgate = fopen("/qspi/mygate.txt", "w");
klauss 27:98f824719d1c 346 fprintf(fgate,"%s\n\r",(debug_buf+11));
klauss 27:98f824719d1c 347 fclose(fgate);
klauss 27:98f824719d1c 348 pc.printf("\n\r");
klauss 27:98f824719d1c 349 files('s');
klauss 27:98f824719d1c 350 }
klauss 27:98f824719d1c 351
klauss 27:98f824719d1c 352
klauss 27:98f824719d1c 353 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "msipport ",9 )) {
klauss 28:94aec56c6329 354 miss_match = false;
klauss 27:98f824719d1c 355 fport = fopen("/qspi/mysipport.txt", "w");
klauss 27:98f824719d1c 356 fprintf(fport,"%s\n\r",(debug_buf+9));
klauss 27:98f824719d1c 357 fclose(fport);
klauss 27:98f824719d1c 358 pc.printf("\n\r");
klauss 27:98f824719d1c 359 files('s');
klauss 27:98f824719d1c 360 }
klauss 27:98f824719d1c 361
klauss 27:98f824719d1c 362 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "serverip ",9 )) {
klauss 28:94aec56c6329 363 miss_match = false;
klauss 27:98f824719d1c 364 fsip = fopen("/qspi/serverip.txt", "w");
klauss 29:7246460b73f8 365 //fprintf(fsip,"%s\n\r",(debug_buf+9));
klauss 29:7246460b73f8 366 fprintf(fsip,"%s",(debug_buf+9));
klauss 27:98f824719d1c 367 fclose(fsip);
klauss 27:98f824719d1c 368 pc.printf("\n\r");
klauss 27:98f824719d1c 369 files('s');
klauss 27:98f824719d1c 370 }
klauss 27:98f824719d1c 371
klauss 27:98f824719d1c 372 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "ssport ",7 )) {
klauss 28:94aec56c6329 373 miss_match = false;
klauss 27:98f824719d1c 374 fsport = fopen("/qspi/serverport.txt", "w");
klauss 27:98f824719d1c 375 fprintf(fsport,"%s\n\r",(debug_buf+7));
klauss 27:98f824719d1c 376 fclose(fsport);
klauss 27:98f824719d1c 377 pc.printf("\n\r");
klauss 19:ab2088e0dec6 378 files('s');
klauss 27:98f824719d1c 379 }
klauss 27:98f824719d1c 380
klauss 27:98f824719d1c 381
klauss 27:98f824719d1c 382 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "dconfig" )) {
klauss 28:94aec56c6329 383 miss_match = false;
klauss 27:98f824719d1c 384 files('w');
klauss 27:98f824719d1c 385 files('s');
klauss 27:98f824719d1c 386 }
klauss 27:98f824719d1c 387
klauss 27:98f824719d1c 388 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "reset" )) {
klauss 28:94aec56c6329 389 miss_match = false;
klauss 28:94aec56c6329 390 pc.printf("\n\rJob is done\n\r");
klauss 27:98f824719d1c 391 NVIC_SystemReset();
klauss 27:98f824719d1c 392 }
klauss 27:98f824719d1c 393
klauss 27:98f824719d1c 394 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "dog" )) {
klauss 28:94aec56c6329 395 miss_match = false;
klauss 27:98f824719d1c 396 pc.printf("\n\r MUUUUUUUuuuuUUUUUU - I'm not a dog!!!! \n\r");
klauss 36:728498a78e1e 397 if( from_eth ){
klauss 36:728498a78e1e 398 snprintf( debug_buf, __UDP_ETH_BUFFER_SIZE__, "MUUUUUUUuuuuUUUUUU - I'm not a dog!!!!\n");
klauss 36:728498a78e1e 399 debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
klauss 36:728498a78e1e 400 }
klauss 27:98f824719d1c 401 dog = 0;
klauss 27:98f824719d1c 402 }
klauss 27:98f824719d1c 403
Cola 21:0bd688722e81 404 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "flood ",6 )) {
klauss 27:98f824719d1c 405 if (xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "on",2 )) {
klauss 28:94aec56c6329 406 miss_match = false;
klauss 27:98f824719d1c 407 pc.printf("\n\r\t Flood ON\n\r\t");
klauss 27:98f824719d1c 408 tflood.start();
klauss 27:98f824719d1c 409 tflood.reset();
klauss 27:98f824719d1c 410 floodcount =0;
klauss 27:98f824719d1c 411 pflood = 1;
klauss 30:8dfb6d8de53d 412 flood_timeout.start();
klauss 27:98f824719d1c 413 }
klauss 27:98f824719d1c 414 if (xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "off",3 )) {
klauss 28:94aec56c6329 415 miss_match = false;
klauss 27:98f824719d1c 416 pc.printf("\n\r\t Flood OFF\n\r\t");
klauss 27:98f824719d1c 417 pflood = 0;
klauss 27:98f824719d1c 418 tflood.stop();
klauss 30:8dfb6d8de53d 419 flood_timeout.reset();
klauss 27:98f824719d1c 420 }
klauss 27:98f824719d1c 421 }
klauss 30:8dfb6d8de53d 422
Cola 21:0bd688722e81 423 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug ",6 )) {
klauss 31:bb5fb28a77df 424 if( xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "on",2 )) {
klauss 28:94aec56c6329 425 miss_match = false;
Cola 21:0bd688722e81 426 pc.printf("\n\r\tDebug ON\n\r\t");
Cola 21:0bd688722e81 427 debug_alive = 1;
klauss 27:98f824719d1c 428 }
klauss 31:bb5fb28a77df 429 if( xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "off",3 )) {
klauss 28:94aec56c6329 430 miss_match = false;
klauss 27:98f824719d1c 431 pc.printf("\n\r\tDebug OFF\n\r\t");
Cola 21:0bd688722e81 432 debug_alive = 0;
klauss 27:98f824719d1c 433 }
klauss 31:bb5fb28a77df 434 if( xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "show",4 )) {
klauss 31:bb5fb28a77df 435 miss_match = false;
klauss 31:bb5fb28a77df 436 pc.printf("\n\rdebug_sip");
klauss 31:bb5fb28a77df 437 pc.printf("\n\rdebug_alive");
klauss 31:bb5fb28a77df 438 pc.printf("\n\rdebug_prompt");
klauss 31:bb5fb28a77df 439 pc.printf("\n\rdebug_vector");
klauss 31:bb5fb28a77df 440 pc.printf("\n\rdebug_cb");
klauss 31:bb5fb28a77df 441 pc.printf("\n\rdebug_main");
klauss 31:bb5fb28a77df 442 pc.printf("\n\rdebug_cks");
klauss 31:bb5fb28a77df 443 pc.printf("\n\rdebug_cb_rx");
klauss 31:bb5fb28a77df 444 pc.printf("\n\rdebug_cb_tx*");
klauss 31:bb5fb28a77df 445 pc.printf("\n\rdebug_eth_rx*");
klauss 31:bb5fb28a77df 446 pc.printf("\n\rdebug_eth_tx*");
klauss 31:bb5fb28a77df 447 pc.printf("\n\rdebug_file");
klauss 31:bb5fb28a77df 448 }
klauss 19:ab2088e0dec6 449 }
klauss 28:94aec56c6329 450
klauss 28:94aec56c6329 451 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_sip ", 10 )) {
klauss 28:94aec56c6329 452 if (xmemmatch( (uint8_t*)(debug_buf + 10 ), (uint8_t*) "on",2 )) {
klauss 28:94aec56c6329 453 miss_match = false;
klauss 29:7246460b73f8 454 pc.printf( "\n\rSip Debug ON\n\r" );
klauss 28:94aec56c6329 455 debug_sip = 1;
klauss 28:94aec56c6329 456 }
klauss 28:94aec56c6329 457 if (xmemmatch( (uint8_t*)(debug_buf + 10 ), (uint8_t*) "off",3 )) {
klauss 28:94aec56c6329 458 miss_match = false;
klauss 29:7246460b73f8 459 pc.printf( "\n\rSip Debug OFF\n\r" );
klauss 28:94aec56c6329 460 debug_sip = 0;
klauss 28:94aec56c6329 461 }
klauss 28:94aec56c6329 462 }
klauss 31:bb5fb28a77df 463
klauss 31:bb5fb28a77df 464 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_cks ", 10 )) {
klauss 31:bb5fb28a77df 465 if (xmemmatch( (uint8_t*)(debug_buf + 10 ), (uint8_t*) "on",2 )) {
klauss 31:bb5fb28a77df 466 miss_match = false;
klauss 31:bb5fb28a77df 467 pc.printf( "\n\rCKS Debug ON\n\r" );
klauss 31:bb5fb28a77df 468 debug_cks = 1;
klauss 31:bb5fb28a77df 469 }
klauss 31:bb5fb28a77df 470 if (xmemmatch( (uint8_t*)(debug_buf + 10 ), (uint8_t*) "off",3 )) {
klauss 31:bb5fb28a77df 471 miss_match = false;
klauss 31:bb5fb28a77df 472 pc.printf( "\n\rCKS Debug OFF\n\r" );
klauss 31:bb5fb28a77df 473 debug_cks = 0;
klauss 31:bb5fb28a77df 474 }
klauss 31:bb5fb28a77df 475 }
klauss 31:bb5fb28a77df 476
klauss 27:98f824719d1c 477 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "promptcb ", 9)) { //promptcb ramal porta comando
klauss 27:98f824719d1c 478 static int id_msg = 0x10;
Cola 21:0bd688722e81 479 uint8_t write_buffer[300];
Cola 21:0bd688722e81 480 unsigned int ext,port;
Cola 21:0bd688722e81 481 int ant1,ant2;
klauss 27:98f824719d1c 482
Cola 21:0bd688722e81 483 debug_buf[bufptr++] = 0x0D;
Cola 21:0bd688722e81 484 debug_buf[bufptr++] = 0x00;
klauss 27:98f824719d1c 485
Cola 21:0bd688722e81 486 ant1 = str2uint( (debug_buf+9), &ext);
Cola 21:0bd688722e81 487 ant2 = str2uint( ((debug_buf+9)+ant1+1), &port);
klauss 27:98f824719d1c 488
klauss 29:7246460b73f8 489 promptcb_last_ext = ext;
klauss 29:7246460b73f8 490 promptcb_last_port = port;
klauss 29:7246460b73f8 491 pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n",ext, port, debug_buf+9+ant1+2+ant2);
klauss 29:7246460b73f8 492 promptcb_last_ext = ext;
klauss 29:7246460b73f8 493 __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 29:7246460b73f8 494 pc.printf("\n\rComando enviado\n\r");
klauss 29:7246460b73f8 495 }
klauss 29:7246460b73f8 496 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "pcb ",4 )) {
klauss 29:7246460b73f8 497 static int id_msg = 0x30;
klauss 29:7246460b73f8 498 uint8_t write_buffer[300];
klauss 29:7246460b73f8 499 debug_buf[bufptr++] = 0x0D;
klauss 29:7246460b73f8 500 debug_buf[bufptr++] = 0x00;
klauss 27:98f824719d1c 501
klauss 29:7246460b73f8 502 pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n",promptcb_last_ext, promptcb_last_port, debug_buf+4);
klauss 29:7246460b73f8 503
klauss 29:7246460b73f8 504 __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 29:7246460b73f8 505 pc.printf("\n\rComando enviado\n\r");
klauss 19:ab2088e0dec6 506 }
klauss 27:98f824719d1c 507
Cola 22:d2a4b5939115 508 if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "cks",3 )) {
klauss 28:94aec56c6329 509 miss_match = false;
klauss 27:98f824719d1c 510 pcks_s = 1;
Cola 22:d2a4b5939115 511 }
klauss 27:98f824719d1c 512
Cola 24:270b436a1bb0 513 if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "showcb",6 )) {
klauss 28:94aec56c6329 514 miss_match = false;
Cola 24:270b436a1bb0 515 pshowcb = 1;
Cola 24:270b436a1bb0 516 }
klauss 27:98f824719d1c 517
klauss 27:98f824719d1c 518 if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debugsip ", 9 )) {
klauss 27:98f824719d1c 519 if (xmemmatch( (uint8_t*)( debug_buf + 9 ), (uint8_t*) "on",2 )) {
klauss 28:94aec56c6329 520 miss_match = false;
klauss 28:94aec56c6329 521 pc.printf("\tDebug Sip ON");
klauss 27:98f824719d1c 522 debug_sip = 1;
klauss 27:98f824719d1c 523 }
klauss 27:98f824719d1c 524 if (xmemmatch( (uint8_t*)( debug_buf + 9 ), (uint8_t*) "off",3 )) {
klauss 28:94aec56c6329 525 miss_match = false;
klauss 28:94aec56c6329 526 pc.printf("Debug Sip OFF");
klauss 27:98f824719d1c 527 debug_sip = 0;
klauss 27:98f824719d1c 528 }
klauss 27:98f824719d1c 529 }
klauss 31:bb5fb28a77df 530
klauss 31:bb5fb28a77df 531 if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_cb_rx ", 12 )) {
klauss 31:bb5fb28a77df 532 if (xmemmatch( (uint8_t*)( debug_buf + 12 ), (uint8_t*) "on",2 )) {
klauss 31:bb5fb28a77df 533 miss_match = false;
klauss 31:bb5fb28a77df 534 pc.printf("\tDebug Cbx Rx ON");
klauss 31:bb5fb28a77df 535 debug_cb_rx = 1;
klauss 31:bb5fb28a77df 536 }
klauss 31:bb5fb28a77df 537 if (xmemmatch( (uint8_t*)( debug_buf + 12 ), (uint8_t*) "off",3 )) {
klauss 31:bb5fb28a77df 538 miss_match = false;
klauss 31:bb5fb28a77df 539 pc.printf("Debug Cbx Rx OFF");
klauss 31:bb5fb28a77df 540 debug_cb_rx = 0;
klauss 31:bb5fb28a77df 541 }
klauss 31:bb5fb28a77df 542 }
klauss 31:bb5fb28a77df 543
klauss 31:bb5fb28a77df 544 if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_file ", 11 )) {
klauss 31:bb5fb28a77df 545 if (xmemmatch( (uint8_t*)( debug_buf + 11 ), (uint8_t*) "on",2 )) {
klauss 31:bb5fb28a77df 546 miss_match = false;
klauss 31:bb5fb28a77df 547 pc.printf("\tDebug File ON");
klauss 31:bb5fb28a77df 548 debug_cb_rx = 1;
klauss 31:bb5fb28a77df 549 }
klauss 31:bb5fb28a77df 550 if (xmemmatch( (uint8_t*)( debug_buf + 11 ), (uint8_t*) "off",3 )) {
klauss 31:bb5fb28a77df 551 miss_match = false;
klauss 31:bb5fb28a77df 552 pc.printf("Debug File OFF");
klauss 31:bb5fb28a77df 553 debug_cb_rx = 0;
klauss 31:bb5fb28a77df 554 }
klauss 31:bb5fb28a77df 555 }
klauss 31:bb5fb28a77df 556
klauss 19:ab2088e0dec6 557 if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "help" )) {
klauss 28:94aec56c6329 558 miss_match = false;
klauss 27:98f824719d1c 559 pc.printf("\n\r****************************PROMPT HELP******************\n\r");
klauss 27:98f824719d1c 560 pc.printf("sconfig - mostra o arquivo de configuracao do sistema\n\r");
klauss 27:98f824719d1c 561 pc.printf("dconfig - volta as configuracoes do sistema para o padrao de fabrica\n\r");
klauss 27:98f824719d1c 562 pc.printf("callme [ramal porta] - envia o pedido de ligacao para o callbox com o ramal e porta indicada\n\r");
klauss 27:98f824719d1c 563 pc.printf("promptcb ramal porta comando - envia o <comando> para o cbx <ramal> e <porta> executar\n\r");
klauss 27:98f824719d1c 564 pc.printf("format - formata o sistema de arquivos\n\r");
klauss 27:98f824719d1c 565 pc.printf("reset - resta o sistema\n\r");
klauss 27:98f824719d1c 566 pc.printf("ipset [ip] - Configura o IP da cabeceira\n\r");
klauss 28:94aec56c6329 567 pc.printf("extset [ext] - Configura a ext da cabeceira\n\r");
klauss 28:94aec56c6329 568 pc.printf("msipport [port] - Configura a porta SIP da cabeceira\n\r");
klauss 28:94aec56c6329 569 pc.printf("serverip [ip] - Configura o ip do servidor asterisk\n\r");
klauss 28:94aec56c6329 570 pc.printf("serextset [ext] - Configura a server ext da cabeceira\n\r");
klauss 28:94aec56c6329 571 pc.printf("ssport [port] - Configura a porta SIP do servidor asterisk\n\r");
klauss 27:98f824719d1c 572 pc.printf("maskset [mask] - Configura a mascara da cabeceira\n\r");
klauss 27:98f824719d1c 573 pc.printf("gatewayset [gateway] - Configura o gateway da cabeceira\n\r");
klauss 27:98f824719d1c 574 pc.printf("showcb - lista os Cbx registrados na header\n\r");
klauss 27:98f824719d1c 575 pc.printf("cks - exibe estatisticas de check sum\n\r");
klauss 31:bb5fb28a77df 576 pc.printf(". - executa o comando anterior novamente\n\r");
klauss 31:bb5fb28a77df 577 pc.printf("debug [on|off|show] - seleciona debugs gerais | lista de debugs \n\r");
klauss 27:98f824719d1c 578 pc.printf("flood [on|off] - simula envio de pacotes de audio\n\r");
klauss 28:94aec56c6329 579 pc.printf("PROMPT VERSION: V%d\n\r",PVERSION);
klauss 27:98f824719d1c 580 }
klauss 27:98f824719d1c 581 /*
klauss 19:ab2088e0dec6 582 if ( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "callme ", 7 )) {
klauss 19:ab2088e0dec6 583 if ( debug_buf[16] != 0 && debug_buf[11] != 0x20 )
klauss 19:ab2088e0dec6 584 pc.printf("\n\r Error: formato errado! ramal=xxxx porta=xxxx \n\r");
klauss 19:ab2088e0dec6 585 else {
klauss 19:ab2088e0dec6 586 uint8_t data[300];
klauss 19:ab2088e0dec6 587 uint16_t cks=0;
klauss 27:98f824719d1c 588
klauss 19:ab2088e0dec6 589 //data[0] = (uint8_t)( (debug_buf[7]&0xf0)<<4 + (debug_buf[8]&0x0f) ) ;
klauss 19:ab2088e0dec6 590 //data[1] = (uint8_t)( (debug_buf[9]&0xf0)<<4 + (debug_buf[10]&0x0f) ) ;
klauss 19:ab2088e0dec6 591 //data[2] = (uint8_t)( (debug_buf[12]&0xf0)<<4 + (debug_buf[13]&0x0f) ) ;
klauss 19:ab2088e0dec6 592 /data[3] = (uint8_t)( (debug_buf[14]&0xf0)<<4 + (debug_buf[15]&0x0f) ) ;
klauss 27:98f824719d1c 593
klauss 19:ab2088e0dec6 594 data[0] = (uint8_t)( debug_buf[ 7 ] & 0xFF00 >> 8 );
klauss 19:ab2088e0dec6 595 data[1] = (uint8_t)( debug_buf[ 9 ] & 0x00FF );
klauss 19:ab2088e0dec6 596 data[2] = (uint8_t)( debug_buf[ 12 ] & 0xFF00 >> 8 );
klauss 19:ab2088e0dec6 597 data[3] = (uint8_t)( debug_buf[ 14 ] & 0x00FF );
klauss 27:98f824719d1c 598
klauss 19:ab2088e0dec6 599 data[6] = 0x04;
klauss 19:ab2088e0dec6 600 for (int i = 7; i < 300; i++) data[i] = 0x00;
klauss 19:ab2088e0dec6 601 cks = __checksum__(data,300);
klauss 19:ab2088e0dec6 602 data[4] = cks>>8;
klauss 19:ab2088e0dec6 603 data[5] = cks&0xff;
klauss 27:98f824719d1c 604
klauss 19:ab2088e0dec6 605 pc.printf("\n\r");
klauss 19:ab2088e0dec6 606 for( int i = 0; i < 300; i++ )
klauss 19:ab2088e0dec6 607 pc.printf("%x ", data[ i ] );
klauss 19:ab2088e0dec6 608 pc.printf("\n\r");
klauss 27:98f824719d1c 609
klauss 19:ab2088e0dec6 610 xmemcpy(TXBuffer,data,300);
klauss 27:98f824719d1c 611
klauss 19:ab2088e0dec6 612 pc.printf("\n\r");
klauss 19:ab2088e0dec6 613 for( int i = 0; i < 300; i++ )
klauss 19:ab2088e0dec6 614 pc.printf("%x ", data[ i ] );
klauss 19:ab2088e0dec6 615 pc.printf("\n\r");
klauss 27:98f824719d1c 616
klauss 19:ab2088e0dec6 617 send2callboxes();
klauss 27:98f824719d1c 618
klauss 19:ab2088e0dec6 619 pc.printf("\n\r calling callbox %s \n\r",debug_buf+7);
klauss 19:ab2088e0dec6 620 }
klauss 19:ab2088e0dec6 621
klauss 19:ab2088e0dec6 622 }
klauss 27:98f824719d1c 623 */
klauss 30:8dfb6d8de53d 624
klauss 29:7246460b73f8 625 if( miss_match ) pc.printf("\n\r%s: command not found\n\r", debug_buf );
klauss 30:8dfb6d8de53d 626
klauss 30:8dfb6d8de53d 627 else strcpy( last_debug_buf, debug_buf );
klauss 19:ab2088e0dec6 628 }
klauss 36:728498a78e1e 629 if( from_eth ){
klauss 36:728498a78e1e 630 ethernet_msg = debug_buf;
klauss 36:728498a78e1e 631 debug_buf = __debug_buf__;
klauss 36:728498a78e1e 632 bufptr = last_bufptr;
klauss 36:728498a78e1e 633 bufret = 0;
klauss 36:728498a78e1e 634 from_eth = false;
klauss 36:728498a78e1e 635 if( miss_match ) return( NULL );
klauss 36:728498a78e1e 636
klauss 36:728498a78e1e 637 else return( ethernet_msg );
klauss 36:728498a78e1e 638 }
klauss 28:94aec56c6329 639 if ( b == 0x0D || bufret == 1 || bufptr > DEBUGBUFSIZE ) {
klauss 27:98f824719d1c 640 bufptr = 0;
klauss 27:98f824719d1c 641 for (uint8_t i =0; i < DEBUGBUFSIZE; i++) {
klauss 27:98f824719d1c 642 debug_buf[i] = 0;
klauss 19:ab2088e0dec6 643 }
klauss 27:98f824719d1c 644 bufret = 0;
klauss 27:98f824719d1c 645 pc.putc(0x0A);
klauss 27:98f824719d1c 646 pc.putc(0x0D);
klauss 29:7246460b73f8 647 pc.printf("> ");
klauss 36:728498a78e1e 648 }
klauss 36:728498a78e1e 649 return( NULL );
klauss 28:94aec56c6329 650 }