Program komputer untuk mempelajari kod Morse, Krasnodar, Beletsky A. I. Pembelajaran kendiri kod Morse Pembelajaran kod Morse



Untuk pembaikan dan isu teknikal lain, klik di sini. Membaiki peralatan rumah dan pejabat.


Program komputer untuk mempelajari kod Morse. Kuban Krasnodar.

program ADKM-2000.


Program ADKM-2000, bermula dengan versi 2.7, telah menjadi percuma sepenuhnya. Untuk menaik taraf versi 2.0-2.5 kepada versi 2.7, muat turun fail ini. Untuk mengemas kini versi yang lebih rendah daripada 2.0, pasang versi 2.5 dahulu dan kemas kininya.

Deskripsi umum.

Produk perisian ADKM-2000 versi 2.5 (selepas ini dirujuk sebagai ADKM-2000) bertujuan untuk melatih operator telegraf radio dan mengadakan pertandingan dalam radiotelegrafi berkelajuan tinggi.

Fungsi utama. ADKM-2000 melaksanakan fungsi berikut:

Pengeluaran semula radiogram daripada aksara kod Morse dengan parameter tertentu:

· kelajuan pembentukan dari 5 hingga 399 zn/min *

· diskret tetapan kelajuan 1 zn/min

· jeda antara aksara dari 3 hingga 15 (3,5,7,9,11,13,15) **

· frekuensi isyarat dari 100 hingga 3500 Hz

· penghasilan semula gangguan dengan pensuisan pantas empat jenis gangguan

· kawalan kelantangan berasingan bagi isyarat utama dan kelantangan hingar ***

sokongan sistem PARIS

program ADKM-2008.

© Semua hak harta untuk program "ADKM_2008" adalah milik Ivan Viktorovich Kozhevnikov

e-mel: [e-mel dilindungi]

Penderia Kod Morse Automatik 2008.

Versi 2008.1.19-02

pengenalan.

Program ini direka untuk mengkaji dan meningkatkan kemahiran kod Morse.

Keperluan teknikal.

Kelajuan jam pemproses 200 MHz atau lebih tinggi

RAM 64 MB atau lebih

Windows 2000 atau XP

Ketersediaan perpustakaan msvbvm60.dll

Pemasangan.

Buka bungkus arkib ke mana-mana direktori, jalankan ADKM_2008.exe

Program ini diedarkan secara percuma. Semua hak milik dan hak cipta kepada program (termasuk mana-mana komponennya: imej grafik, rakaman bunyi, teks, dsb.), bahan bercetak yang disertakan dan sebarang salinan program adalah kepunyaan pengarang, Ivan Viktorovich Kozhevnikov.

Program ini adalah perisian percuma. Anda boleh mengedarkan pengedaran program secara bebas. Anda tidak boleh membuat sebarang keuntungan komersial dengan mengedarkan pengedaran ini. Anda tidak boleh mengubah pengedaran program dalam apa jua cara.

Adalah dilarang untuk merekayasa balik teknologi, menyahkompilasi atur cara atau mengubah suai program dan dokumentasi yang disertakan.

Dalam tetingkap program utama anda boleh menukar nombor teks, kelajuan penghantaran teks, jenis teks, memulakan dan menghentikan penghantaran teks dalam kod Morse, serta menyembunyikan/menunjukkan teks yang dihantar, dan membuka tetingkap tambahan yang direka untuk memasukkan teks yang diterima dengan kawalan penerimaan yang betul. Menu menyediakan pilihan untuk keluar dari program, menetapkan parameter tambahan untuk penghantaran teks, bantuan ringkas ini, maklumat tentang program dan pengarang.

Teks dijana menggunakan penjana nombor pseudo-rawak dan berkaitan secara langsung dengan nombor teks.

Kelajuan penghantaran teks berbeza dari 20 hingga 299 aksara/minit.

Jenis teks boleh menjadi Latin (Bahasa Inggeris), kebangsaan (Rusia, Jerman), digital, digital dengan sifar pendek, tanda baca, pelbagai variasi teks campuran, serta khas (untuk melatih penerimaan aksara tertentu yang dimasukkan oleh pengguna ).

Jika perlu untuk menghantar teks (semantik) tertentu, ia boleh ditaip dalam tetingkap paparan teks atau ditampal dari papan keratan (teks tidak diperiksa untuk ketepatannya dan semua aksara yang tidak boleh dihantar oleh kod Morse diabaikan semasa menghantar teks ).

Dalam tetingkap tetapan tambahan, anda boleh menukar jeda antara aksara, jeda antara kumpulan (jeda antara kumpulan tidak boleh kurang daripada jeda antara aksara + 4 titik), bilangan aksara dalam kumpulan, bilangan kumpulan dalam teks, kekerapan nada, bahasa antara muka program, tambah/buang awalan permulaan teks VVV= dan isyarat penamat teks AR (ETS).

Tetingkap input teks bertujuan untuk memasukkan teks yang diterima. Jika aksara seterusnya diterima secara tidak betul, simbol “_” dipaparkan sebaliknya. PERHATIAN! Teks mesti dimasukkan dalam bahasa di mana teks yang dihantar dipaparkan (huruf huruf boleh menjadi apa-apa). Kumpulan dipisahkan oleh bar ruang. Terjemahan baris dijalankan secara automatik (tiada kekunci tambahan perlu ditekan). Jika anda tidak menerima tanda, maka anda perlu menekan sebarang kekunci sebaliknya. Watak dianggap diterima dengan betul hanya jika ia ditulis dalam kedudukan yang betul (iaitu, tanpa mengalihkan teks).

Program Sarjana CW.

Program CW Master direka untuk melatih penerimaan CW.

Ia terbahagi kepada dua modul.

Modul utama (tab "Terima Tanda Panggilan") ditulis berdasarkan program RUFZ yang terkenal.

RUFZ adalah baik untuk semua orang, tetapi operasinya secara eksklusif di bawah DOS mewujudkan halangan besar dan kadangkala tidak dapat diatasi untuk penggunaannya --- kebanyakan kad bunyi moden sememangnya tidak mempunyai pemacu DOS dalam sifatnya. Kualiti mendengar tweeter komputer terbina dalam meninggalkan banyak yang diingini.

Modul kedua (tab "Penerimaan teks dan radiogram") --- menjana dan mengeluarkan semula radiogram digital, abjad dan teks "terbuka".

Tidak seperti RUFZ, program ini berfungsi di bawah Win95/98/NT/2000/XP dengan mana-mana kad bunyi (termasuk bersepadu), tetapi ia tidak berfungsi dengan pembesar suara terbina dalam.

Program ini tidak menulis apa-apa sama ada pada registri atau ke direktori sistem Windows, yang membolehkan anda menggunakannya walaupun sebagai pengguna dengan hak terhad dalam Win NT/2000.

Program ini tidak memerlukan pemasangan. Fail cwmaster.exe, master.ped dan readme.txt perlu diletakkan dalam direktori kongsi dan jalankan cwmaster.exe.

2. Modul "Penerimaan tanda panggilan" --- Prinsip umum.

Program ini menghantar pula 30 tanda panggilan sebenar, dipilih secara rawak daripada fail master.ped Jika tanda panggilan diterima dengan betul, maka kelajuan penghantaran seterusnya meningkat sebanyak 2 wpm. Jika salah, kelajuan dikurangkan sebanyak 1 wpm. Nada penghantaran setiap tanda panggilan berbeza-beza dalam had kecil secara rawak.

Mata diberikan untuk menerima setiap tanda panggilan. Bilangan mata bergantung pada bilangan ralat yang dibuat semasa penerimaan, pada panjang tanda panggilan dan pada kelajuan penghantaran.

Pergantungan pada kelajuan adalah kuadratik, pergantungan pada panjang tanda panggilan adalah linear.

Bilangan mata tidak bergantung pada kelajuan tanda panggilan dimasukkan.

Tanda panggilan yang tidak diterima boleh diulang dengan menekan kekunci F6 beberapa kali tanpa had, bagaimanapun, dengan setiap ulangan bilangan mata akan dikurangkan separuh, dan kelajuan, walaupun diterima dengan betul, tidak akan meningkat.

Dalam versi ini, disebabkan oleh banyak permintaan, keupayaan untuk merakam kelajuan dan nada tanda panggilan yang dihantar telah diperkenalkan. Walau bagaimanapun, dalam mod ini, tiada mata diberikan dan, dengan itu, tiada apa pun dimasukkan ke dalam jadual keputusan.

3. Modul "Menerima tanda panggilan" --- Bagaimana untuk bekerja?

Selepas memulakan program, masukkan tanda panggilan anda, tetapkan kelajuan penghantaran awal dalam WPM, nada awal isyarat yang diterima.

Untuk mengawal tetapan awal, terdapat mod "Ujian awal", di mana huruf V dihantar secara berterusan Anda boleh mengaksesnya dengan menekan butang yang sepadan atau kekunci F3.

Untuk mula menerima, tekan butang "Mula" (atau kekunci Enter). Selepas tanda panggilan dibunyikan, taipkannya pada papan kekunci dan tekan kekunci Enter. Penerimaan boleh dihentikan pada bila-bila masa dengan menekan butang Berhenti atau Esc pada papan kekunci.

Jumlah bilangan mata dimasukkan ke dalam jadual keputusan Lajur WPM akan memaparkan nilai maksimum kelajuan di mana sekurang-kurangnya satu tanda panggilan diterima dengan betul.

Jika tiada tanda panggilan diterima dengan betul atau mata sifar diperoleh, keputusan tidak dimasukkan ke dalam jadual. Sebaik sahaja jadual (19 baris) selesai, ia ditetapkan semula kepada sifar, tetapi hasil terbaik dari segi mata disimpan dan direkodkan dalam baris pertama, yang membolehkan anda berlatih lebih jauh, memfokuskan pada yang terbaik :)

4. Modul "Penerimaan teks dan radiogram"

Dengan radiogram, semuanya harus jelas --- kami membentuknya, klik pada "Mula" dan tuliskan apa yang diterima pada sehelai kertas. "Rakaman dengan tangan" sedemikian berguna dalam peringkat awal pembelajaran CW, dan selepas mencapai kelajuan penerimaan 25-30 wpm, adalah dinasihatkan untuk meninggalkan rakaman dan meneruskan latihan dalam menerima plaintext hanya "dengan telinga." Lebih-lebih lagi, dinasihatkan untuk terlebih dahulu mendengar perkataan pendek, seperti "apa", "bagaimana", dll., untuk mengingati bunyinya, dan kemudian beralih kepada perkataan yang lebih panjang.

Dalam tetingkap anda boleh membuka sebarang fail teks, menyalin sebarang teks di sana dan, pada akhirnya, taipkannya di sana dengan tangan jika anda benar-benar mahu. Program ini membezakan huruf Rusia dan Latin dan menghantarnya dengan betul.

Daripada teks dalam tetingkap, anda boleh memilih hanya perkataan yang tidak melebihi panjang yang diperlukan.

Secara umum, antara muka program adalah sangat mudah sehingga lebih mudah untuk mencuba daripada menerangkan apa dan bagaimana untuk dilakukan :)

Ia boleh dihiasi, "diasah", statistik dan "loceng dan wisel" yang serupa boleh dibuat, tetapi saya tidak berminat dengan itu.

Saya tidak nampak apa-apa gunanya memperkenalkan modul PILE-UP dan, terutamanya, CyberContest - semua ini disiarkan! :)

Program kod Morse.

Program ini meniru terminal untuk menghantar isyarat menggunakan kod Morse.

Tiada pelarasan dalam program; kelajuan dan nada ditetapkan tetap.

Program tidak berhenti seketika antara aksara; jeda dilaraskan oleh kelajuan input papan kekunci.

Jurulatih Kod Morse.

[e-mel dilindungi]

Program ringkas dengan antara muka yang bagus yang menatal melalui teks yang ditentukan kod Morse pada kelajuan tertentu.

program NuMorP.

Program NuMorP digunakan untuk melatih dan menguji askar Tentera AS.

http://www.nu-ware.com/

Program ini menatal kod Morse melalui teks tertentu pada kelajuan tertentu.

Untuk mendapatkan susun atur papan kekunci bahasa Inggeris, jalankan program dari folder "Dari programsfafla" atau jalankan fail pemasangan, ia akan memasang program dengan entri dalam pendaftaran, dan akan ada susun atur papan kekunci Bahasa Inggeris.

Untuk kemudahan, tutup tetingkap mesej ini menggunakan kombinasi kekunci Alt+F4.

program NuMorse 2.2.2.0.

NuMorse 2.2.2.0 digunakan untuk melatih dan menguji askar Tentera AS.

http://www.nu-ware.com/

Program ini membolehkan anda menggunakan papan kekunci sebagai kunci elektronik.

Untuk mendapatkan susun atur papan kekunci bahasa Rusia, hanya jalankan fail exe dari folder program RUS.

Untuk mendapatkan susun atur papan kekunci bahasa Inggeris, jalankan program dari folder ANGL atau jalankan fail pemasangan, ia akan memasang program dengan entri dalam pendaftaran, dan akan ada susun atur papan kekunci bahasa Inggeris.

Jika tiada pendaftaran, program memaparkan mesej tambahan semasa menutup,

Untuk kemudahan, tutup tetingkap mesej ini menggunakan kombinasi kekunci Alt+F4.

Program Morse DKM Edisi Tentera.

http://europpa.narod.ru

Program Rusia sejagat yang sangat baik untuk menghantar kod Morse pada papan kekunci dan menerima mesej radio.

Program ini bagus untuk belajar menerima radiogram dan bukannya penderia kod Morse automatik.

program APAK-CWL.

Bukan program yang rumit untuk mempelajari kod Morse yang tidak memerlukan pemasangan.

Untuk menjalankan program, pergi ke folder "apak" dan jalankan fail mula.

Folder "apak" ialah arkib "apak-2r.exe" dan "ruswav.exe" yang telah dibongkar.

Program yang sangat berguna untuk mempelajari CW dalam bahasa Rusia, mengikut kaedah DOSAAF.

Keunikannya terletak pada hakikat bahawa pembelajaran kod Morse bermula dengan asas-asas dan tidak membenarkan pengguna meneruskan latihan yang lebih kompleks jika yang sebelumnya tidak diselesaikan 100% tepat.

Ini membolehkan anda mengelakkan latihan "menatal melalui" yang anda tidak suka, dan membolehkan anda mensistematikkan proses pembelajaran).

Memandangkan kelajuan pelayan di Rusia dan kos komunikasi, ia telah memutuskan untuk meninggalkan penggunaan program pemasangan dan DLL, dan mengedarkan program itu sebagai arkib pengekstrakan sendiri.

Buka pek arkib ke dalam folder yang dikehendaki dan program sedia untuk digunakan. Win 9x,NT Fon kecil mesti didayakan. WinNT. Lumpuhkan bunyi sistem.

Skema: "Tiada bunyi." Untuk menyahpasang, hanya alih keluar semua yang berkaitan dengan program.

Ini ialah dua arkib pengekstrakan sendiri: apak-2r.exe mengandungi program itu sendiri dan data yang diperlukan untuknya, dan ruswav.exe mengandungi lagu.

Jika anda tidak mahu belajar CW dengan bantuan nyanyian, maka anda tidak perlu menyalin ruswav.exe.

Kedua-dua arkib hendaklah dibongkar ke dalam folder yang sama.

Bagi mereka yang menggunakan versi terdahulu, tidak perlu menyalin ruswave.exe.

Program ini ditulis agak lama dahulu, jadi untuk berfungsi dengan jayanya dalam sistem pengendalian moden (WINDOWS XP SP2 dan lebih tinggi), anda perlu menjalankannya dalam mod keserasian dengan Windows 95. (Butang tetikus kanan pada pintasan - Properties - Tab Keserasian - Tandakan kotak Mod Keserasian).

Program Penjana Morse.

Penerangan: MorseGen2 ialah program MorseGen yang diubah suai sedikit oleh Julian Moss (G4ILO).

Berbanding dengan yang asal, perubahan berikut telah dibuat:

1. (+) antara muka program telah ditukar (beberapa mesej dan inskripsi telah diterjemahkan ke dalam bahasa Rusia),

2. (+) sokongan untuk aksara abjad Rusia,

3. (+) pemilihan bilangan kumpulan (10..500 dalam kenaikan 10),

4. (+) meningkatkan kelajuan maksimum (40 wpm),

5. (-) Penjanaan QSO tidak disokong. Kelajuan pemindahan telah ditingkatkan kepada 80 wpm dan apabila memindahkan fail teks sewenang-wenangnya, ruang berulang dan beberapa aksara perkhidmatan lain dialih keluar, i.e. pemformatan teks tidak menjejaskan penghantaran.

Program Percubaan Morse menjana radiogram dalam kod Morse dengan kelajuan berubah-ubah, jeda dan nada. Ia adalah mungkin untuk memuatkan teks daripada fail anda, serta menjana teks secara rawak. Ia adalah mungkin untuk menambah bunyi apabila mendengar radiogram untuk realisme yang lebih besar.

Kod Morse, Kod Morse, "Kod Morse" ialah kaedah pengekodan huruf abjad menggunakan isyarat panjang dan pendek, yang dipanggil "sempang" dan "titik" (serta menjeda huruf memisahkan). Tempoh satu titik diambil sebagai unit masa. Tempoh sengkang adalah sama dengan tiga titik. Jeda antara aksara dalam huruf ialah satu titik, antara huruf dalam perkataan - 3 titik, antara perkataan - 7 titik. Ia dinamakan sempena pencipta Amerika Samuel Morse, yang menciptanya pada tahun 1835. Kod Morse ialah kaedah digital pertama untuk menghantar maklumat. Telegraf dan radiotelegraf pada asalnya menggunakan kod Morse; kemudian, kod Baudot dan ASCII mula digunakan, yang lebih mudah untuk automasi. Walau bagaimanapun, kini terdapat cara penjanaan dan pengiktirafan automatik untuk kod Morse. Untuk menyampaikan surat Rusia, kod huruf Latin yang serupa digunakan; surat-menyurat abjad ini kemudiannya dihantar ke MTK-2, dan kemudian ke KOI-7 dan KOI-8 (namun, dalam kod Morse huruf Q sepadan dengan Ш, dan dalam MTK dan KOI-Ya).

Tujuan utama program Percubaan Morse adalah untuk meningkatkan kemahiran penerimaan telegraf. Muat turun program latihan Percubaan Morse boleh

Tetapi jika anda belum mengetahui kod Morse, maka anda boleh menyelesaikan pembelajaran kendiri di laman web LCWO mengikut kaedah Koch

Kaedah Koch adalah cara mudah untuk membangunkan refleks secara langsung. Walau bagaimanapun, ia memerlukan sama ada komputer dengan perisian yang sesuai atau jurulatih peribadi. Atas sebab inilah kaedah Koch diabaikan selama bertahun-tahun. Sekarang komputer telah mengambil tempat biasa di meja amatur radio, kaedah Koch mempunyai setiap peluang untuk menjadi standard untuk melatih pengendali telegraf radio.

Latihan berlaku seperti berikut:

  • Anda mengkonfigurasi program anda untuk menjana isyarat CW pada kadar kira-kira 20 perkataan seminit setiap aksara, tetapi dengan jeda yang lebih lama (kelajuan berkesan hendaklah kira-kira 15 perkataan seminit).
  • Kemudian anda mengambil kertas dan pensel dan mula mengambil. Dalam pelajaran pertama, komputer mesti menghantar hanya dua aksara. Iaitu, dalam pelajaran pertama anda perlu mengenali hanya dua pilihan. Anda menerima teks selama 5 minit, kemudian semak ketepatan teks yang diterima dan hitung peratusan aksara yang betul.

LCWO— pembantu dalam talian ini khusus untuk belajar sendiri telegraf. Selepas pendaftaran anda, tapak tersebut akan menjadi guru peribadi anda. Anda akan menguasai telegraf semasa bermain permainan meneka - anda akan membangunkan refleks terkondisi kepada bunyi tanda dan menulisnya - jika anda mahu - dengan tangan anda, jika anda mahu - pada papan kekunci. Kaedah ini dibangunkan oleh Yang Mulia Ludwig Koch khusus untuk latihan individu. Di laman web ini anda akan diminta untuk menyelesaikan 40 pelajaran; meneruskan pelajaran seterusnya hanya selepas menguasai yang sebelumnya. Anda hanya perlu berlatih dengan kerap; kekerapan dan tempohnya tidak dikawal dengan jelas. Anda tidak perlu memuatkan apa-apa ke dalam komputer anda. Anda boleh belajar dari mana-mana komputer dengan akses Internet di rumah, di tempat kerja, atau di kafe Internet.

24 September 2015 jam 11:18 pagi

Program untuk menjana kod bunyi Morse

  • pengaturcaraan,
  • C++

Kebelakangan ini saya telah mempelajari kod Morse menggunakan program ini. Tetapi ia direka untuk mengkaji kod huruf Cyrillic, yang tidak relevan dalam komunikasi radio moden (semua orang menggunakan abjad Latin, kecuali tentera kita yang gagah berani).

C++ bersama-sama dengan Qt telah dipilih sebagai alat untuk melaksanakan idea.

Idea utama program

Atom (unit masa) kod Morse ialah satu titik;
  1. Sengkang sama dengan tiga titik bunyi;
  2. Jeda antara unsur-unsur satu simbol (tanda) adalah satu titik senyap;
  3. Terdapat tiga titik di antara tanda;
  4. Terdapat tujuh titik di antara perkataan.
Seperti yang anda lihat, sebarang kod berdasarkan kod Morse boleh diwakili sebagai satu set titik bunyi dan senyap: Saya bermula dari idea ini, dan penyelesaian ini kelihatan agak asli kepada saya.

Pelaksanaan awal

Dalam versi pertama program, gabungan titik bunyi dan senyap disimpan sebagai vektor dengan unsur Boolean, di mana benar sepadan dengan menghidupkan bunyi, dan salah- matikan.

Seperti yang anda sudah faham, untuk mendapatkan isyarat akhir, saya hanya "menarik" bunyi dengan sedikit kelewatan (menggunakan pemasa yang sama dengan tempoh titik dalam milisaat) dengan fail .wav yang dimainkan tanpa henti dengan rakaman sinus. Tetapi pendekatan ini mempunyai kelemahan yang ketara dan ia terdiri daripada fakta bahawa setiap titik perlu dimuatkan secara berasingan menggunakan pengendali terlampau beban atau kaedah khas. Kerana pendekatan ini, saya terpaksa menulis makro yang berasingan untuk setiap huruf (seperti ini - #define I DOT<< false << DOT) и создать огромный жуткий suis untuk memainkan rentetan yang diluluskan. Memang teruk, tetapi jika anda ingin tahu, anda boleh menyemaknya.
dengan versi pertama program (saya tidak dapat memuat naik sepenuhnya repositori tempatan ke GitHub - hanya versi terkini).

Sekeping suis yang menyeramkan:

bool Morse::StringToMorse (QString &line) ( baris += "\0"; untuk (int i = 0; i< line.size () - 1; ++i) { switch (line.at(i).unicode ()) { case "A": *this << A; if (line.at (i + 1) == " ") continue; else *this << MINI_SPACE; break; case "B": *this << B; if (line.at (i + 1) == " ") continue; else *this << MINI_SPACE; break; // И так далее


Dan ini adalah cara bunyi dihidupkan dan dimatikan (sebenarnya, kod bunyi telah dihasilkan):

void Morse::PlayLinePoints () ( QTimer::singleShot (duration_point_, ini, SLOT (Mute ())); sound_.play (); ) void Morse::Mute () ( if (line_points_.empty ()) ( / /Hentikan main balik sound_.stop (); return; ) jika (line_points_.at (0)) ( //Hidupkan sound sound_.setMuted (false); line_points_.remove (0); QTimer::singleShot (duration_point_, this, SLOT (Mute ())); return; ) else ( sound_.setMuted (true); //Matikan bunyi line_points_.remove (0); QTimer::singleShot (duration_point_, ini, SLOT (Redam ())); kembali;))

Versi terakhir

Makro ini ternyata sangat menyusahkan, dan kesempurnaan saya tidak lagi dapat melihat reka bentuk yang dahsyat ini. Selepas berfikir sedikit, saya membuat kesimpulan bahawa idea saya bagus, tetapi menyimpan kod dalam bentuk makro sangat menyusahkan dan jika anda menyelesaikan masalah ini, maka semuanya akan baik-baik saja. Akibatnya, QMap telah digunakan untuk menyimpan kod:

//Menyimpan gabungan titik dan sempang yang sepadan bagi aksara QMap kod_;
Pendekatan ini ternyata sangat mudah. Sekarang saya hanya menggunakan watak semasa yang dimainkan sebagai kunci dan selesai
Untuk menghasilkan semula kod (satu set nilai Boolean), bagaimanapun, algoritma pembiakan menjadi sedikit lebih rumit: adalah perlu untuk memasukkan pembilang elemen semasa simbol dan pembilang aksara dalam baris:

Pelaksanaan main balik baharu:

void Morse::MiniSpace () ( if (stop_) ( this->Stop (); return; ) sound_.setMuted (true); ++id_element_; //Pergi ke elemen kod lain jika (id_element_ == codes_.value ( string_to_play_.at (id_char_).size ()) ( ++id_char_; id_element_ = 0; QTimer::singleShot (duration_dot_ * 3, ini, SLOT (Mute())); // Jeda antara aksara kembali; ) QTimer: : singleShot (duration_dot_, this, SLOT (Mute())); //Jeda antara elemen simbol ) void Morse::Space () ( if (stop_) ( this->Stop (); return; ) sound_.setMuted (true ) ; //Jeda berlangsung 7 mata //Tetapi kerana selepas simbol terdapat jeda tiga mata, jeda tambahan mesti ditetapkan kepada 4 mata panjang QTimer::singleShot (duration_dot_ * 4, ini, SLOT (Mute()) ); void Morse::Mute () ( if (stop_) ( this->Stop (); return; ) if (id_char_ == string_to_play_.size ()) ( // Baris telah tamat this->Stop (); return; ) if (string_to_play_.at (id_char_) == " ") ( Space(); ++id_char_; //Pergi ke return elemen kod lain; ) if (codes_.find (string_to_play_.at (id_char_)) == codes_.end ( )) ( qDebug()<< string_to_play_.at (id_char_) << ": No code!"; sound_.stop (); return; } sound_.setMuted (false); //Включаем звук if (codes_.value (string_to_play_.at (id_char_)).at (id_element_)) { QTimer::singleShot (duration_dot_, this, SLOT (MiniSpace())); //Воспроизводим точку } else { QTimer::singleShot (duration_dot_ * 3, this, SLOT (MiniSpace())); //Воспроизводим тире } } bool Morse::Play () { if (!stop_) return false; if (string_to_play_ == "") return false; stop_ = false; id_char_ = 0; id_element_ = 0; sound_.setMuted (true); //Выключаем звук sound_.play (); Mute (); } void Morse::Stop () { if (stop_) return; sound_.stop (); id_char_ = 0; id_element_ = 0; stop_ = true; }


Bendera berhenti_ telah diperkenalkan untuk mengelakkan pengendalian program yang salah (dua panggilan berturut-turut ke Play() dan perkara buruk yang lain).
Saya tidak nampak apa-apa sebab untuk memasukkan seluruh kod sumber dan fail pengepala dalam badan artikel, kerana segala-galanya di sana agak jelas dan telus.

Anda boleh memuat turun set penuh sumber untuk versi terkini di