Advertisement
Guest User

korisnicki del

a guest
Feb 7th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 7.77 KB | None | 0 0
  1. char greska[7],uart_rd[30];
  2. char promena[4] = "END";
  3. char start[8];
  4. int smeniMod = 0;   //admin - 0 , korisnik - 1
  5. char user[5],userD[5];
  6. char pass[5];
  7. int i=0,j=0,u,rot;
  8. int m absolute 0x20;
  9. int len, brisi = 0;
  10. int check = 0,check1 =0;
  11. int k = 0 absolute 0x28;
  12. int tmp_k absolute 0x30;
  13. int found;
  14. int val_u =0;
  15. int val_uart = 0;
  16.  
  17. void User_delete( char * uart_rd){
  18.        //treba da se izminat site od eeprom i da se najde taj so treba da se izbrise
  19.        strcpy(start,"DEL");           //za debug
  20.        Uart1_Write_text(start);       //debug
  21.        
  22.        tmp_k = k - 1;
  23.        found = 0;
  24.        
  25.           while (tmp_k > 0){    //tuka treba da e samo > 0 oti, na nulta poz ke ni bide admin
  26.              strcpy(start,"IN");   //debug
  27.              Uart1_write_text(start);     //debug
  28.                 if(found){
  29.                    strcpy(start,"postoi");      //debug
  30.                    Uart1_write_text(start);     //debug
  31.                    break;
  32.                 }
  33.                  else{ //citanje user
  34.                       tmp_k=tmp_k*0x10;
  35.                       memset(userD,' ',5);  //reset userD
  36.                       len = strlen(uart_rd);
  37.                       //CITANJE *USER* OD EEPROM
  38.                       for(i=0;i<3;i++){ //citaj 5 char od user
  39.                          if(EEPROM_READ(0x00 + tmp_k + i) != 0x20){
  40.                             userD[i] = EEprom_read(0x00 + tmp_k + i);
  41.                             //strcpy(start,"|");        //debug
  42.                             //Uart1_write_text(start);  //debug
  43.                          }
  44.                       }
  45.                       delay_ms(5);
  46.        
  47.                       val_u = atoi(userD);
  48.                       val_uart = atoi(uart_rd);
  49.  
  50.                       if(val_u == val_uart ){  //pronajden e userot
  51.                          strcpy(start,"T ");         //debug
  52.                          Uart1_Write_text(start);    //debug
  53.                          for(i = 0;i<6;i++){
  54.                             EEPROM_Write(0x00 + tmp_k + i,0x20); //izbrisi user i pass
  55.                          }
  56.                          delay_ms(5);
  57.                          found = 1;
  58.                       }
  59.                       else {
  60.                          strcpy(start,"F ");     //debug
  61.                          Uart1_Write_text(start); //debug
  62.                          tmp_k=tmp_k/0x10;
  63.                          tmp_k--; //premini na sleden
  64.                       }
  65.                  }//else od found
  66.                  
  67.           }//izminati site
  68.  
  69.           if(found ==0){
  70.              strcpy(start,"ne postoi");  //debug
  71.              UArt1_write_text(start);    //debug
  72.              //tuka treba soodvetna poraka na LCD
  73.           }
  74.   }
  75.  
  76. void main() {
  77. ANSEL = 0;
  78. ANSELH =0;
  79. UART1_Init(9600);
  80. Delay_ms(50);
  81.  
  82. strcpy(greska,"S ");
  83. UART1_Write_text(greska);
  84. while(1){
  85.    while(!smeniMod){
  86.          while(!UART1_Data_Ready()){
  87.               UART1_Read_Text(uart_rd,"$",13);
  88.               UART1_Write_Text(uart_rd);
  89.  
  90.               smeniMod = strcmp(uart_rd,promena);     // 0 ako se isti
  91.               if(!smeniMod){ // ODI VO KORISNICKI rezim
  92.                  smeniMod = 1;
  93.                  strcpy(uart_rd,"USER");            //za debug
  94.                  UART1_Write_Text(uart_rd);         //za debug
  95.                  break;
  96.               }
  97.               else {   // rabota vo ADMINISTRATORSKI rezim
  98.                  strcpy(start,"ADMIN");            //za debug
  99.                  UART1_Write_Text(start);          //za debug
  100.                  
  101.                  memset(user,' ',5);  //reset user i pass za sekoj nareden korisnik
  102.                  memset(pass,' ',5);
  103.                  i = 0;
  104.                   brisi = 0;    //reset za sekoj nov vlez
  105.                  //proverka dali ke se brise ili ke se dodava korisnik
  106.                  len = strlen(uart_rd);
  107.                  for(i = 0;i<len;i++){
  108.                     if(uart_rd[i] == 0x20){ //ako ima prazno mesto ne treba da briseme
  109.                        u = i;
  110.                        brisi = 1;
  111.                     }
  112.                  }
  113.                                                 //OBRATNA E LOGIKATA ZA BRISENJETO!!!!!!!!!!
  114.                  if(brisi == 0){
  115.                     User_delete(uart_rd); // treba da se prenese uart_rd preku funkcijata
  116.                  }
  117.                   else{  // NEW USER
  118.                       strcpy(start,"NEW");         //za debug
  119.                       Uart1_Write_text(start);  //za debug
  120.                      //ODDELUVANJE USER I PASS
  121.                      //user
  122.                      for(i=0;i<u;i++){
  123.                         user[i] = uart_rd[i];
  124.                         strcpy(start,"|");
  125.                               Uart1_write_text(start);
  126.                      }
  127.                         //strcpy(start,user);       //debug
  128.                         //Uart1_write_text(start);  //debug
  129.                      //pass
  130.                      len = strlen(uart_rd) - u;
  131.                      u++;
  132.                         for(j=0;j<len; j ++){
  133.                            pass[j] = uart_rd[u];
  134.                            u++;
  135.                         }
  136.                        //  strcpy(start,pass);        //debug
  137.                        // Uart1_write_text(start);    //debug
  138.                      
  139.                      //ZAPISUVANJE vo EEPROM
  140.                         if(k<9){
  141.                            k= k*0x10;  //setiraj za pozicija vertikalno
  142.                      
  143.                            //zapisuvanje USER
  144.                            strcpy(uart_rd," Wu ");
  145.                            UArt1_write_text(uart_rd);
  146.                            m = 0;  //reset brojac za sekoj nareden
  147.                            u = strlen(user);
  148.                               for(i=0;i<3;i++){
  149.                                  if(m < u){
  150.                                     eeprom_write(0x00 + k + i, user[m]);
  151.                                     m++;
  152.                                  }
  153.                                  else{  eeprom_write(0x00 + k + i, 0x20); }
  154.                               }
  155.                                delay_ms(5);
  156.                            //zapisuvanje PASS
  157.                            strcpy(uart_rd," Wp ");
  158.                            UArt1_write_text(uart_rd);
  159.                            m = 0;
  160.                            rot = strlen(pass);
  161.                               for(i=0;i<3;i++){
  162.                                  if(m < rot){
  163.                                     eeprom_write(0x00 + k + i + 3, pass[m]);
  164.                                     m++;
  165.                                  }
  166.                                  else{ eeprom_write(0x00 + k + i + 3, 0x20); }
  167.                                }
  168.                                 delay_ms(5);
  169.              
  170.                         //zgolemi brojac pozicija
  171.                         k = k / 0x10;
  172.                         k++;
  173.                      }
  174.                      
  175.                   } //za vnes nov korisnik else
  176.  
  177.               /*
  178.               strcpy(uart_rd," user:");
  179.               UArt1_write_text(uart_rd);
  180.               UART1_Write_text(user);
  181.  
  182.               strcpy(uart_rd," pass:");
  183.               Uart1_write_text(uart_rd);
  184.               UART1_Write_text(pass);
  185.               strcpy(uart_rd,"next");
  186.               UART1_Write_Text(uart_rd);
  187.                */
  188.               }
  189.              strcpy(uart_rd,"next");
  190.               UART1_Write_Text(uart_rd);
  191.               //zapisano izbrisano e toa so treba i sea moze nov string da se puste
  192.               //da kaze deka ceka nov deka seriskoto e spremno
  193.               //uste sme u serisko
  194.          }
  195.  
  196.  
  197.    }
  198.  
  199.  //koga sme vo korisnicki mod ako se vnese sifrata
  200.  //i pass na admin
  201.  //programata pak preminuva vo administratorski
  202.   strcpy(start,"OUT");
  203.   UArt1_write_text(start);
  204. }
  205. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement