Beispiel #1
0
Datei: BBS.C Projekt: jeske/GTalk
void global_newscan(int *board_num, struct board_info *new_board,
                struct bbs_board_info *bbs_info, char *directory,
                struct bbs_user_account *bbs_user, int *mail_pieces)
 {
   int cur_board = 1;
   int is_still_boards = 1;
   struct board_info test_board;
   char tempdirectory[30];
   char s[250];
   int state;
   int key_pr;
   int key;
   int num_new_msg;
   int skip;

   while (is_still_boards)
    {
      if (state=load_board_info(cur_board,&test_board,tempdirectory))
       {
        if (state==2) is_still_boards = 0;
       }
       else
       {
         enter_board(cur_board,new_board,bbs_info,directory,
           bbs_user,mail_pieces);
         *board_num = cur_board;
         if ((num_new_msg=is_new_messages(bbs_info,*mail_pieces,bbs_user)) &&
             (bbs_user->newscan))
          {
            check_for_privates();
            print_cr();
            sprintf(s,"#|*f2|*h1%02d|*r1 [|*f2|*h1%s|*r1] New: |*f4|*h1%02d|*r1 [|*h1R|*h0]ead [|*h1S|*h0]kip [|*h1Q|*h0]uit: ",cur_board,new_board->title,num_new_msg);


            skip = 0;
            switch (get_hot_key_prompt(s,"RSQP",'R',1))
            {
                case  'R' :  new_messages(directory,bbs_info,mail_pieces,
                             new_board,cur_board,bbs_user);
                             break;
                case  'P' :  break;
                case  'S' :  skip=1;
                             break;
                case  'Q' :  is_still_boards=0;
                             break;
            }

             if (!skip)
              {
                print_cr();
                sprintf(s,"#|*f2|*h1%02d|*r1 [|*f2|*h1%s|*r1] Post on board? [|*h1Y|*h0/|*h1N|*h0/|*h1Q|*h0] ",cur_board,new_board->title,num_new_msg);
                special_code(1,tswitch);
                print_string(s);
                special_code(0,tswitch);
                key_pr = 1;
                while (key_pr)
                 {
                   key=wait_ch();
                   if (key>'Z') key -= 32;
                   if (key == 'Y')
                    {
                     print_chr('Y');
                     print_cr();
                     key_pr = 0;
                     send_a_bbs_message(*board_num,new_board,*mail_pieces,bbs_info);
                     find_bbs(directory,bbs_info,mail_pieces,new_board->limit_messages);
                    };
                   if (key == 'Q')
                    {
                      print_chr('Q');
                      print_cr();
                      key_pr = 0;
                      is_still_boards = 0;
                    };
                   if ((key == 13) || (key == 'N'))
                    {
                      print_chr('N');
                      print_cr();
                      key = 'N';
                      key_pr = 0;
                    };
                 };
              };
          };
       };
      cur_board++;
    };
 };
Beispiel #2
0
Datei: BBS.C Projekt: jeske/GTalk
void bbs_system(const char *str,const char *name, int portnum)
 {
   char directory[20];
   struct bbs_board_info bbs_info[MAX_MESG_LIMIT];
   struct board_info new_board;
   struct bbs_user_account bbs_user;
   int mail_pieces;
   int board_num = 1;
   int flag = 1;
   int num;
   char *point;
   char command[7];
   char s[100];

   if (user_lines[tswitch].number<0)
     { print_str_cr("--> BBS access denied. Guests not allowed.");
       return;
     }

   if (enter_board(board_num,&new_board,bbs_info,directory,
                &bbs_user,&mail_pieces))
    {
      print_str_cr("--> BBS access denied.");
      return;
    };
   while (flag)
    {
      check_for_privates();
      print_cr();
      sprintf(s,"#|*f2|*h1%02d|*r1 [|*f2|*h1%s|*r1] [|*f2|*h11-%d|*r1] BBS Command (|*h1?|*h0 for Menu): ",board_num,new_board.title,mail_pieces);

      prompt_get_string(s,command,4);

      if (*command>'Z') *command -= 32;

      if ((num=str_to_num(command,&point))>0)
       { if (num<=mail_pieces)
           {
            read_a_bbs_message(directory,bbs_info,&mail_pieces,num,
                               &new_board,board_num,&bbs_user);
           };
        }
       else
      switch (*command)
       {
         case 'N': new_messages(directory,bbs_info,&mail_pieces,
                        &new_board,board_num,&bbs_user);
                   break;
         case 'G': global_newscan(&board_num,&new_board,bbs_info,directory,
                        &bbs_user,&mail_pieces);
                   break;
         case 'Q': flag = 0;
                   break;
         case 'J': jump_board(&board_num,&new_board,bbs_info,directory,
                      &bbs_user,&mail_pieces,str_to_num(command+1,&point));
                   break;
         case 'L': list_bbs(directory,bbs_info,mail_pieces,&bbs_user);
                   break;
         case 'R': if ((num=str_to_num(command+1,&point))==-1)
                      read_bbs_message(directory,bbs_info,&mail_pieces,
                         &new_board,board_num,&bbs_user);
                    else read_a_bbs_message(directory,bbs_info,
                         &mail_pieces,num,&new_board,board_num,&bbs_user);
                   break;
         case 'X': reset_bbs_message_date(&bbs_user,mail_pieces,
                      bbs_info,directory);
                   break;
         case 'P': send_a_bbs_message(board_num,&new_board,
                      mail_pieces,bbs_info);
                   find_bbs(directory,bbs_info,&mail_pieces,
                      new_board.limit_messages);
                   break;
         case 'D': if ((num=str_to_num(command+1,&point))==-1)
                     delete_bbs_message(directory,bbs_info,
                         &mail_pieces,&new_board);
                     else delete_a_bbs_message(directory,bbs_info,
                         &mail_pieces,num,&new_board);
                   find_bbs(directory,bbs_info,&mail_pieces,
                      new_board.limit_messages);
                   break;
         case 'E': if ((num=str_to_num(command+1,&point))==-1)
                     edit_bbs_message(directory,bbs_info,
                          &mail_pieces,&new_board);
                     else edit_a_bbs_message(directory,bbs_info,
                          &mail_pieces,num,&new_board);
                   break;
         case 'T': toggle_global_on(directory,&bbs_user,board_num);
                   break;
         case '?': print_file("help\\bbs.hlp");
        };
    };
    print_str_cr("--> GinsuTalk: Returning to System");
 };
Beispiel #3
0
void LEDtest3(void) {
  

    LEDSTR *p2Matrix=NULL;  
    unsigned char temp;
//    unsigned char show_led=0;
    
    
    
 //   LEDscreen_setShiftEnded_voidCallback(timetoshift);
        
    LEDscreen_setActualMSJ("**C5N**");  
 
    
    for (;;) {    
    
      
    adcval=atd_getsample();
       
    _printf("ADC;%d \n",adcval);
    
    
  /////  putcspi0(show_led++);
    
    p2Matrix=LEDscreen_getScreenAddress();
    
    PORTA |= 0x01;
     
    LEDscreen_ShiftMSJ();  // shift msg one colum left
    
    if( Get_End_Of_Shift_Status() == TRUE)   //Ckeck if the whole msg was sent
    {
      
            //_printf("Hallo Welt \n  ");
            
             end_of_transmision = FALSE;
             
             Reset_FSM();
             
             QueueInit();
                        
             Sci1_Putchar(XON);     // HC05 Bluetooth
             
 ////////            rti_start();                     // Non Blocking W/hardware Timer
    
             Set_Timer_ms(3000);    // 3 seconds window
  
 
/* TIMER TEST 
             _printf("Timer in \n");
           while(1){
            
             if( Get_Timer_ms_Status()) {
              
                  _printf("Timer\n");
                    
                    Set_Timer_ms(1000);     
                        
             }
           }
TIMER TEST END*/           
		
     //// _printf("-(%c)[%.2X]-",ch,ch);   
    
             
    
              do    
              {
                    if(messages_count())
                    _printf("Remaining mess %d\n",messages_count());
                    
                    if(new_messages())
                         op_status=command_parser(commands);	// Process the cmd
            
              }
              
              while ((endsts=(end_of_transmision ==  FALSE)) && (timsts=(Get_Timer_ms_Status()!=TIME_OUT)));
            
               if(!endsts)
                   _printf("end_of_trans EOT\n");
               if(!timsts)
                  _printf("timeout EOT\n");                  
            
                                                             
             
           
       //////////////       rti_stop(); 
              
            
              while(QueueStatus())                  /// cleanup
	                op_status=PullQueue(&temp);
            
    
    }
    
    Matrix2Vector(p2Matrix);     // Convert Matrix to Vector
    
    Set_Color(color); 
    
    Set_Intensity(Led_intensity);
      
    
    WS2812B_Init();
    
    WS2812B_Set_Data_pointer((unsigned char *)DestLedScreen);
    
    WS2812B_Set_Data_Length(32*8*sizeof(LEDSTR));
        
    WS2812B_Send_data();
    
    PORTA &= 0xFE;          //21.3 ms        
    
    
 /// Set_Timer_ms(24);       // 24 ms   esto es normal velocidad posta
     
     
     Set_Timer_ms(speed); 
     while (Get_Timer_ms_Status()!=TIME_OUT) ;
     
   // test_delay(100);        //24.8 ms  (OLD)
    
  



                                    
       _asm nop;
       _asm nop;   
       _asm nop;
       _asm nop;
    
    
  
    }
    
    
     
    
}