--- trunk/Embedded/main.c 2007/12/05 09:26:26 154 +++ trunk/Embedded/main.c 2007/12/05 09:53:16 155 @@ -24,6 +24,9 @@ unsigned int global_emergency_counter = 600, global_time_interval = 3600; unsigned char global_temp = 0; +unsigned char global_message_buffer[BUFFER]; +unsigned char global_message_buffer_length; + unsigned char global_lcd_buf[16]; unsigned short global_imei_tversum; @@ -31,6 +34,8 @@ unsigned char cell_nr[15] = ""; // = "21681784"; bit global_modem_init = 0; +unsigned char global_sms_recieve_number[3]; + __EEPROM_DATA( 60, 0, 1, 8, '2', '1', '6', '8'); __EEPROM_DATA( '1', '7', '8', '4',0,0,0,0); @@ -41,12 +46,18 @@ void timer1_interrupt(void); void on_recieve(void); void on_initial_recieve(void); +void sms_recieved(void); void reset_recieve_buffer(void) { - global_recieve_done = 0; + global_recieve_done = 0; + global_serial_byte_counter=0; + global_serial_recieve_buffer[0] = 0; + + global_message_buffer_length = 0; + global_message_buffer[0] = 0; } @@ -197,7 +208,10 @@ { global_recieve_done = 1; //global_serial_byte_counter = 0; - global_serial_recieve_buffer[global_serial_byte_counter+1] = 0; //zero terminate + global_serial_recieve_buffer[global_serial_byte_counter] = 0; //zero terminate + + strcpy(global_message_buffer, global_serial_recieve_buffer); + global_message_buffer_length = global_serial_byte_counter; } else { @@ -315,26 +329,37 @@ char* ptr; tmp[0]=0; - if (global_recieve_done == 0) + if (global_recieve_done == 0 || global_message_buffer_length == 0) return; - lcd_goto(0x00); - lcd_puts(global_serial_recieve_buffer); - if (strstr(global_serial_recieve_buffer,"CMTI") == 0) + if (strstr(global_serial_recieve_buffer,"CMTI") != 0) { - ptr = strstr(global_serial_recieve_buffer,"'"); - strcat(tmp,ptr); - - - lcd_goto(0x40); - lcd_puts(tmp); - + ptr = strstr(global_serial_recieve_buffer,","); + strcat(tmp,ptr+1); + sprintf(global_sms_recieve_number,"%s", tmp); + lcd_clear(); + lcd_puts(global_sms_recieve_number); + sms_recieved(); + } + else if (strstr(global_message_buffer,"CMTI") != 0) + { + ptr = strstr(global_message_buffer,","); + strcat(tmp,ptr+1); + lcd_clear(); + lcd_puts(tmp); } + reset_recieve_buffer(); } +void sms_recieved(void) +{ + sprintf(global_serial_send, "AT+CMGR=%s\r", global_sms_recieve_number); + serial_send(); +} + void main() { ////////////////////