Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- char greska[7],uart_rd[30];
- char promena[4] = "END";
- char start[8];
- int smeniMod = 0; //admin - 0 , korisnik - 1
- char user[5],userD[5];
- char pass[5];
- int i=0,j=0,u,rot;
- int m absolute 0x20;
- int len, brisi = 0;
- int check = 0,check1 =0;
- int k = 0 absolute 0x28;
- int tmp_k absolute 0x30;
- int found;
- int val_u =0;
- int val_uart = 0;
- void User_delete( char * uart_rd){
- //treba da se izminat site od eeprom i da se najde taj so treba da se izbrise
- strcpy(start,"DEL"); //za debug
- Uart1_Write_text(start); //debug
- tmp_k = k - 1;
- found = 0;
- while (tmp_k > 0){ //tuka treba da e samo > 0 oti, na nulta poz ke ni bide admin
- strcpy(start,"IN"); //debug
- Uart1_write_text(start); //debug
- if(found){
- strcpy(start,"postoi"); //debug
- Uart1_write_text(start); //debug
- break;
- }
- else{ //citanje user
- tmp_k=tmp_k*0x10;
- memset(userD,' ',5); //reset userD
- len = strlen(uart_rd);
- //CITANJE *USER* OD EEPROM
- for(i=0;i<3;i++){ //citaj 5 char od user
- if(EEPROM_READ(0x00 + tmp_k + i) != 0x20){
- userD[i] = EEprom_read(0x00 + tmp_k + i);
- //strcpy(start,"|"); //debug
- //Uart1_write_text(start); //debug
- }
- }
- delay_ms(5);
- val_u = atoi(userD);
- val_uart = atoi(uart_rd);
- if(val_u == val_uart ){ //pronajden e userot
- strcpy(start,"T "); //debug
- Uart1_Write_text(start); //debug
- for(i = 0;i<6;i++){
- EEPROM_Write(0x00 + tmp_k + i,0x20); //izbrisi user i pass
- }
- delay_ms(5);
- found = 1;
- }
- else {
- strcpy(start,"F "); //debug
- Uart1_Write_text(start); //debug
- tmp_k=tmp_k/0x10;
- tmp_k--; //premini na sleden
- }
- }//else od found
- }//izminati site
- if(found ==0){
- strcpy(start,"ne postoi"); //debug
- UArt1_write_text(start); //debug
- //tuka treba soodvetna poraka na LCD
- }
- }
- void main() {
- ANSEL = 0;
- ANSELH =0;
- UART1_Init(9600);
- Delay_ms(50);
- strcpy(greska,"S ");
- UART1_Write_text(greska);
- while(1){
- while(!smeniMod){
- while(!UART1_Data_Ready()){
- UART1_Read_Text(uart_rd,"$",13);
- UART1_Write_Text(uart_rd);
- smeniMod = strcmp(uart_rd,promena); // 0 ako se isti
- if(!smeniMod){ // ODI VO KORISNICKI rezim
- smeniMod = 1;
- strcpy(uart_rd,"USER"); //za debug
- UART1_Write_Text(uart_rd); //za debug
- break;
- }
- else { // rabota vo ADMINISTRATORSKI rezim
- strcpy(start,"ADMIN"); //za debug
- UART1_Write_Text(start); //za debug
- memset(user,' ',5); //reset user i pass za sekoj nareden korisnik
- memset(pass,' ',5);
- i = 0;
- brisi = 0; //reset za sekoj nov vlez
- //proverka dali ke se brise ili ke se dodava korisnik
- len = strlen(uart_rd);
- for(i = 0;i<len;i++){
- if(uart_rd[i] == 0x20){ //ako ima prazno mesto ne treba da briseme
- u = i;
- brisi = 1;
- }
- }
- //OBRATNA E LOGIKATA ZA BRISENJETO!!!!!!!!!!
- if(brisi == 0){
- User_delete(uart_rd); // treba da se prenese uart_rd preku funkcijata
- }
- else{ // NEW USER
- strcpy(start,"NEW"); //za debug
- Uart1_Write_text(start); //za debug
- //ODDELUVANJE USER I PASS
- //user
- for(i=0;i<u;i++){
- user[i] = uart_rd[i];
- strcpy(start,"|");
- Uart1_write_text(start);
- }
- //strcpy(start,user); //debug
- //Uart1_write_text(start); //debug
- //pass
- len = strlen(uart_rd) - u;
- u++;
- for(j=0;j<len; j ++){
- pass[j] = uart_rd[u];
- u++;
- }
- // strcpy(start,pass); //debug
- // Uart1_write_text(start); //debug
- //ZAPISUVANJE vo EEPROM
- if(k<9){
- k= k*0x10; //setiraj za pozicija vertikalno
- //zapisuvanje USER
- strcpy(uart_rd," Wu ");
- UArt1_write_text(uart_rd);
- m = 0; //reset brojac za sekoj nareden
- u = strlen(user);
- for(i=0;i<3;i++){
- if(m < u){
- eeprom_write(0x00 + k + i, user[m]);
- m++;
- }
- else{ eeprom_write(0x00 + k + i, 0x20); }
- }
- delay_ms(5);
- //zapisuvanje PASS
- strcpy(uart_rd," Wp ");
- UArt1_write_text(uart_rd);
- m = 0;
- rot = strlen(pass);
- for(i=0;i<3;i++){
- if(m < rot){
- eeprom_write(0x00 + k + i + 3, pass[m]);
- m++;
- }
- else{ eeprom_write(0x00 + k + i + 3, 0x20); }
- }
- delay_ms(5);
- //zgolemi brojac pozicija
- k = k / 0x10;
- k++;
- }
- } //za vnes nov korisnik else
- /*
- strcpy(uart_rd," user:");
- UArt1_write_text(uart_rd);
- UART1_Write_text(user);
- strcpy(uart_rd," pass:");
- Uart1_write_text(uart_rd);
- UART1_Write_text(pass);
- strcpy(uart_rd,"next");
- UART1_Write_Text(uart_rd);
- */
- }
- strcpy(uart_rd,"next");
- UART1_Write_Text(uart_rd);
- //zapisano izbrisano e toa so treba i sea moze nov string da se puste
- //da kaze deka ceka nov deka seriskoto e spremno
- //uste sme u serisko
- }
- }
- //koga sme vo korisnicki mod ako se vnese sifrata
- //i pass na admin
- //programata pak preminuva vo administratorski
- strcpy(start,"OUT");
- UArt1_write_text(start);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement