• 0
  • مالي خلق
  • أتهاوش
  • متضايق
  • مريض
  • مستانس
  • مستغرب
  • مشتط
  • أسولف
  • مغرم
  • معصب
  • منحرج
  • آكل
  • ابكي
  • ارقص
  • اصلي
  • استهبل
  • اضحك
  • اضحك  2
  • تعجبني
  • بضبطلك
  • رايق
  • زعلان
  • عبقري
  • نايم
  • طبيعي
  • كشخة
  • النتائج 1 إلى 5 من 5

    الموضوع: برمجة شيفرة مورس

    1. #1
      التسجيل
      15-02-2007
      المشاركات
      298
      المواضيع
      58
      شكر / اعجاب مشاركة

      برمجة شيفرة مورس

      هذا البرنامج يقوم بقراءة ما تكتبه على الشاشة ثم يرسله إلى المنفذ COM1 فهو مفيد لمن يريد التحكم بضوء عن طريق الحاسب فبهذه الطريقة سيرسل الضوء اشارات ضوئية متقطعة أي أنت لاتحتاج لحفظ شيفرة مورس بل الحاسب يقوم بذلك.
      طريقة وصل الضوء موضحة في منتدى الالكترونيات لمن يحب الاظلاع
      كود PHP:
      # include <windows.h>
      # include <stdio.h>
      # include <time.h>
      struct
      {
          
      char l;
          
      char *c;
      }
      code[] =
      {
          
      'A'".-",
          
      'B'"-...",
          
      'C'"-.-.",
          
      'D'"-..",
          
      'E'".",
          
      'F'"..-.",
          
      'G'"--.",
          
      'H'"....",
          
      'I'"..",
          
      'J'".---",
          
      'K'"-.-",
          
      'L'".-..",
          
      'M'"--",
          
      'N'"-.",
          
      'O'"---",
          
      'P'".--.",
          
      'Q'"--.-",
          
      'R'".-.",
          
      'S'"...",
          
      'T'"-",
          
      'U'"..-",
          
      'V'"...-",
          
      'W'".--",
          
      'X'"-..-",
          
      'Y'"-.--",
          
      'Z'"--..",
          
      '0'"-----",
          
      '1'".----",
          
      '2'"..---",
          
      '3'"...--",
          
      '4'"....-",
          
      '5'".....",
          
      '6'"-....",
          
      '7'"--...",
          
      '8'"---..",
          
      '9'"----.",
          
      '/'"-..-.",
          
      '+'".-.-.",
          
      '='"-...-",
          
      '.'".-.-.-",
          
      ','"--..--",
          
      '?'"..--..",
          
      '('"-.--.",
          
      ')'"-.--.-",
          
      '-'"-....-",
          
      '"'".-..-.",
          
      '_'"..--.-",
          
      '\''".----.",
          
      ':'"---...",
          
      ';'"-.-.-.",
          
      '$'"...-..-",
          
      '\1'"=",
          
      00,
      };

      char *port "com1:";
      HANDLE hFile INVALID_HANDLE_VALUE;
      bool
      opencomm
      char *which )
      {
          
      int da GENERIC_READ GENERIC_WRITE;
          
      int sm FILE_SHARE_DELETE FILE_SHARE_READ FILE_SHARE_WRITE;
          
      int cd OPEN_EXISTING;
          
      int flags FILE_ATTRIBUTE_NORMAL FILE_FLAG_NO_BUFFERING;
          
      hFile CreateFilewhichdasm0cdflags);
          if( 
      hFile == INVALID_HANDLE_VALUE )
          {
              
      printf"Can't open '%s'\n"which );
              return 
      false;
          }
          
      DCB dcb;
          if( ! 
      GetCommStatehFile, &dcb ) )
          {
              
      printf"Can't get comm state for '%s'\n"which );
              return 
      false;
          }
          
      dcb.fOutxCtsFlow FALSE;
          
      dcb.fOutxDsrFlow FALSE;
          
      dcb.fDtrControl DTR_CONTROL_ENABLE;
          
      dcb.fDsrSensitivity FALSE;
          
      dcb.fRtsControl RTS_CONTROL_DISABLE;
          if( ! 
      SetCommStatehFile, &dcb ) )
          {
              
      printf"Can't set comm state for '%s'\n"which );
              return 
      false;
          }
          return 
      true;
      }
      void
      on
      void )
      {
          
      EscapeCommFunctionhFileSETDTR );
          
      EscapeCommFunctionhFileSETRTS );
      }
      void
      off
      void )
      {
          
      EscapeCommFunctionhFileCLRDTR );
          
      EscapeCommFunctionhFileCLRRTS );
      }

      int dot_length 100;
      int dash_length 300;
      int token_sep 100;
      int char_sep 300;
      int space_length 700;
      enum e_mode CWAM };
      e_mode mode AM;
      bool low_tone false;
      void
      dot
      void )
      {
          if( 
      mode == CW )
          {
              
      on();
              
      Sleepdot_length );
              
      off();
          }
          else if( 
      mode == AM )
          {
              for( 
      int i 0dot_length 2i++ )
              {
                  
      on();
                  
      Sleep);
                  if( 
      low_tone )
                      
      Sleep);
                  
      off();
                  
      Sleep);
                  if( 
      low_tone )
                      
      Sleep);
              }
          }
          
      Sleeptoken_sep );
      }
      void
      dash
      void )
      {
          if( 
      mode == CW )
          {
              
      on();
              
      Sleepdash_length );
              
      off();
          }
          else if( 
      mode == AM )
          {
              for( 
      int i 0dash_length 2i++ )
              {
                  
      on();
                  
      Sleep);
                  if( 
      low_tone )
                      
      Sleep);
                  
      off();
                  
      Sleep);
                  if( 
      low_tone )
                      
      Sleep);
              }
          }
          
      Sleeptoken_sep );
      }
      void
      long_tone
      void )
      {
          
      printf"5 second tone\n" );
          
      on();
          
      Sleep5000 );
          
      off();
      }
      char *
      lookupchar c )
      {
          for( 
      int i 0code[i].ci++ )
              if( 
      code[i].== )
                  return 
      code[i].c;
          return 
      "";
      }
      void
      send_char
      char c )
      {
          if( 
      == ' ' )
          {
              
      Sleepspace_length );
              return;
          }
          
      toupper);
          
      char *str lookup);
          while( *
      str )
          {
              if( *
      str == '.' )
                  
      dot();
              else if( *
      str == '-' )
                  
      dash();
              else if( *
      str == '=' )
                  
      long_tone();
              
      str++;
          }
          
      Sleepchar_sep );
          
      off();
      }
      void
      send
      char *str )
      {
          while( *
      str )
              
      send_char( *str++ );
      }

      int the_speed 5;
      int character_speed 15.0;
      void
      set_speed
      char *str )
      {
          
      the_speed atoistr );
              if( 
      character_speed the_speed )  
              
      character_speed the_speed;    // all letters sent at 15 wpm minimum
          
      dot_length 60 1000 character_speed 50;     // 60 seconds, 50 units
          
      dash_length dot_length;
          
      token_sep dot_length;
          
      int milliseconds_per_word 60 1000 the_speed;
          
      int milliseconds_in_36_units 36 60 1000 character_speed 50
          
      char_sep = (milliseconds_per_word milliseconds_in_36_units) / 7;
          
      space_length = (milliseconds_per_word milliseconds_in_36_units) / 3.5;
          if( 
      low_tone && mode == AM )
          {
              
      dot_length /= 2;
              
      dash_length /= 2;
          }
      }
      bool speed_test false;
      bool tone false;
      int repeat 1;
      char *message 0;
      char *file 0;
      int
      main
      int acchar **av )
      {
          
      ac--;
          
      av++;
          
      char *speed "5";
          while( 
      ac )
          {
              if( 
      av[0][0] == '-' )
              {
                  if( 
      av[0][1] == 'p' )               // port
                  
      {
                      
      port av[1];
                      
      ac--;
                      
      av++;
                  }
                  else if( 
      av[0][1] == 'r' )          // repeat
                  
      {
                      
      repeat atoiav[1] );
                      
      ac--;
                      
      av++;
                  }
                  else if( 
      av[0][1] == 'f' )          // file
                  
      {
                      
      file av[1];
                      
      ac--;
                      
      av++;
                  }
                  else if( 
      av[0][1] == 'm' )          // message
                  
      {
                      
      message av[1];
                      
      ac--;
                      
      av++;
                  }
                  else if( 
      av[0][1] == 's' )          // speed
                  
      {
                      
      speed av[1];
                      
      ac--;
                      
      av++;
                  }
                  else if( 
      av[0][1] == 'l' )          // low
                  
      {
                      
      low_tone true;
                  }
                  else if( 
      av[0][1] == 't' )          // test
                  
      {
                      
      speed_test true;
                  }
                  else if( 
      av[0][1] == 'o' )          // on
                  
      {
                      
      tone true;
                  }
                  else if( 
      av[0][1] == 'c' )          // continuous wave
                  
      {
                      
      mode CW;
                  }
                  else if( 
      av[0][1] == 'a' )          // amplitude modulation
                  
      {
                      
      mode AM;
                  }
                  else
                  {
                      
      printf"Usage: morse [-p port] [-s speed] [-r repeat_count]"
                          " [-f file] [-m message] [-c]\n\n" 
      );
                      
      printf"Example: morse -p com2: -s 5\n" );
                      
      printf"    gives 5 words per minute to com2\n" );
                      
      printf"\n" );
                      
      printf"Complete list of all options:\n" );
                      
      printf" -p port        use 'port' for the serial port\n" );
                      
      printf" -r number      repeat 'number' times\n" );
                      
      printf" -f file        read text from a file\n" );
                      
      printf" -m message     send message from command line\n" );
                      
      printf" -t             send the word 'paris ' for a minute\n" );
                      
      printf" -o             keep the transmitter on\n" );
                      
      printf" -c             Use CW instead of AM\n" );
                      
      printf" -l             Use 500 hz tone instead of 1,000 hz\n" );
                      return 
      0;
                  }
              }
              
      av++;
              
      ac--;
          }
          
      set_speedspeed );
          
      opencommport );
          
      off();
          if( 
      tone )
          {
              
      on();
              
      printf"Transmiter is on\n" );
              for(;;)
                  
      Sleep1000 );
          }
          if( 
      speed_test )
          {
              
      time_t t time(0);
              for( 
      int i 0the_speedi++ )
                  
      send"paris " );
              
      printf"%d word%s in %d seconds\n"the_speed,
                      
      the_speed == "" "s"time(0) - );
              return 
      0;
          }
          
      printf"Speed set to %d words per minute.\n"the_speed );
          
      printf"Mode is %s.\n"mode == AM "AM" "CW" );
          if( 
      file )
          {
              
      printf"File is '%s'.\n"file );
              for( 
      int i 0repeati++ )
              {
                  
      char buf[1024];
                  
      FILE *fd fopenfile"r" );
                  if( 
      fd == )
                  {
                      
      printf"Can't open '%s' for reading\n"file );
                      return 
      0;
                  }
                  for( ;; )
                  {
                      
      int cnt freadbuf1sizeof buffd );
                      if( 
      cnt )
                      {
                          
      printf"Can't read '%s'\n"file );
                          return 
      0;
                      }
                      if( 
      cnt == )
                          break;
                      
      buf[cnt] = 0;
                      
      sendbuf );
                  }
                  
      fclosefd );
              }
              return 
      0;
          }
          if( 
      message )
          {
              for( 
      int i 0repeati++ )
                  
      sendmessage );
              return 
      0;
          }
          
      printf"Type your messages:\n" );
          
      printf"> " );
          
      fflushstdout );
          
      char out[1024];
          while( 
      getsout ) )
          {
              for( 
      int i 0repeati++ )
                  
      sendout );
              
      printf"> " );
              
      fflushstdout );
          }
          return 
      0;

      العملي دون النظري عمل أعمى والنظري دون العملي عمل ليس له فائدة

    2. #2
      الصورة الرمزية drbmsh
      drbmsh غير متصل عضو مميز في منتدى البرمجة
      التسجيل
      06-02-2005
      الدولة
      EGYPT
      المشاركات
      314
      المواضيع
      43
      شكر / اعجاب مشاركة

      رد: برمجة شيفرة مورس

      ألف شكر واتمنى المزيد من المواضيع عن عملية التحكم عن طريق الحاسب

    3. #3
      التسجيل
      15-02-2007
      المشاركات
      298
      المواضيع
      58
      شكر / اعجاب مشاركة

      رد: برمجة شيفرة مورس

      تريدها LPT أي منفذ الطابعة أو منافذ اخرى
      العملي دون النظري عمل أعمى والنظري دون العملي عمل ليس له فائدة

    4. #4
      التسجيل
      29-05-2004
      المشاركات
      688
      المواضيع
      184
      شكر / اعجاب مشاركة

      رد: برمجة شيفرة مورس

      السلام عليكم
      و الله يا اخوي علي الجنيدي من فترة و أنا بتفرج على بعض مواضيعك و بصراحة رأيتك فهمان و هذا دليل أكبر على فهمك البرنامج رائع
      و خصوصا مبدأه
      Have u Ever loved someone so much u give an arm for
      Master Hacker
      رئيس منظمة Hacker Inside
      الا رسول الله صلى الله عليه و سلم قاطع البضائع الدنماركية و انصر نبيك

    5. #5
      التسجيل
      14-06-2007
      المشاركات
      1
      المواضيع
      0
      شكر / اعجاب مشاركة

      رد: برمجة شيفرة مورس

      واااااااصل ولا تتعب ابدا

    ضوابط المشاركة

    • لا تستطيع إضافة مواضيع جديدة
    • لا تستطيع الرد على المواضيع
    • لا تستطيع إرفاق ملفات
    • لا تستطيع تعديل مشاركاتك
    •