Tietokoneohjelmat morsekoodin oppimiseen, Krasnodar, Beletsky A. I. Itseoppiva morsekoodin oppiminen



Korjauksia ja muita teknisiä ongelmia varten napsauta tästä. Kotitalous- ja toimistotarvikkeiden korjaus.


Tietokoneohjelmat morsekoodin oppimiseen. Kuban Krasnodar.

ADKM-2000 ohjelma.


ADKM-2000-ohjelma, alkaen versiosta 2.7, on tullut täysin ilmainen. Päivitä versiot 2.0-2.5 versioon 2.7 lataamalla tämä tiedosto. Jos haluat päivittää versiota 2.0 alemmat versiot, asenna ensin versio 2.5 ja päivitä se.

Yleinen kuvaus.

Ohjelmistotuote ADKM-2000 versio 2.5 (jäljempänä ADKM-2000) on tarkoitettu radiolennättajien kouluttamiseen ja kilpailujen järjestämiseen nopean radiolennätyksen alalla.

Päätoiminnot. ADKM-2000 suorittaa seuraavat toiminnot:

Röntgenogrammien toisto Morse-koodimerkeistä määritetyillä parametreilla:

· muodostusnopeus 5 - 399 zn/min *

· nopeusasetuksen diskreetti 1 zn/min

· tauko merkkien välillä 3–15 (3,5,7,9,11,13,15) **

· signaalin taajuus 100 - 3500 Hz

· häiriön toisto neljän häiriötyypin nopealla vaihtamisella

· erillinen pääsignaalin ja kohinan äänenvoimakkuuden säätö ***

PARIS-järjestelmän tuki

ADKM-2008 ohjelma.

© Kaikki ohjelman "ADKM_2008" omistusoikeudet kuuluvat Ivan Viktorovich Kozhevnikoville

Sähköposti: [sähköposti suojattu]

Automaattinen morsekoodisensori 2008.

Versio 2008.1.19-02

Johdanto.

Ohjelma on suunniteltu morsekooditaitojen tutkimiseen ja parantamiseen.

Tekniset vaatimukset.

Prosessorin kellotaajuus 200 MHz tai suurempi

RAM 64 Mt tai enemmän

Windows 2000 tai XP

Kirjaston msvbvm60.dll saatavuus

Asennus.

Pura arkisto mihin tahansa hakemistoon ja suorita ADKM_2008.exe

Tätä ohjelmaa jaetaan ilmaiseksi. Kaikki ohjelman omistus- ja tekijänoikeudet (mukaan lukien kaikki sen komponentit: graafiset kuvat, äänitallenteet, teksti jne.), oheiseen painettuun materiaaliin ja kaikkiin ohjelman kopioihin kuuluvat kirjoittajalle, Ivan Viktorovich Kozhevnikoville.

Ohjelma on ilmainen. Voit vapaasti jakaa ohjelmajakelun. Et voi saada kaupallista voittoa jakamalla tätä jakelua. Et voi muuttaa ohjelman jakelua millään tavalla.

On kiellettyä tekniikan uudelleenmuokkaus, ohjelman purkaminen tai muutoin ohjelman ja siihen liittyvän dokumentaation muokkaaminen.

Ohjelman pääikkunassa voit muuttaa tekstin numeroa, tekstin siirtonopeutta, tekstin tyyppiä, aloittaa ja lopettaa tekstin lähetyksen morsekoodilla sekä piilottaa/näytä lähetetty teksti ja avata lisäikkunan, joka on suunniteltu vastaanotetun tekstin syöttämiseen ohjaamalla oikea vastaanotto. Valikossa on vaihtoehtoja ohjelmasta poistumiseen, lisäparametrien asettamiseen tekstin lähetystä varten, tämä lyhyt ohje, tietoa ohjelmasta ja tekijästä.

Teksti luodaan psja liittyy suoraan tekstinumeroon.

Tekstin lähetysnopeus vaihtelee välillä 20 - 299 merkkiä minuutissa.

Tekstityyppi voi olla latinalainen (englanti), kansallinen (venäläinen, saksa), digitaalinen, digitaalinen lyhyellä nollalla, välimerkit, sekatekstin eri muunnelmat sekä erityinen (jotakin käyttäjän syöttämien merkkien vastaanoton harjoittelemiseksi ).

Jos on tarpeen lähettää tietty (semanttinen) teksti, se voidaan kirjoittaa tekstinäyttöikkunaan tai liittää leikepöydältä (tekstin oikeellisuutta ei tarkisteta ja kaikki merkit, joita ei voi välittää morsekoodilla, jätetään huomioimatta tekstiä lähetettäessä ).

Lisäasetusikkunassa voit muuttaa merkkien välistä taukoa, ryhmien välistä taukoa (ryhmien välinen tauko ei voi olla pienempi kuin merkkien välinen tauko + 4 pistettä), merkkien lukumäärää ryhmässä, ryhmien lukumäärää teksti, äänitaajuus, ohjelmaliittymän kieli, lisää/poista tekstin alkuetuliite VVV= ja tekstin loppusignaali AR (ETS).

Tekstinsyöttöikkuna on tarkoitettu vastaanotetun tekstin syöttämiseen. Jos seuraava merkki vastaanotetaan väärin, symboli “_” näytetään sen sijaan. HUOMIO! Teksti on syötettävä sillä kielellä, jolla lähetetty teksti näytetään (kirjainkoko voi olla mikä tahansa). Ryhmät erotetaan välilyönnillä. Rivin käännös tapahtuu automaattisesti (ei tarvitse painaa muita näppäimiä). Jos et hyväksy merkkiä, sinun on painettava sen sijaan mitä tahansa näppäintä. Merkki hyväksytään oikein vain, jos se on kirjoitettu oikeaan paikkaan (eli ilman, että tekstiä siirretään).

CW Master -ohjelma.

CW Master -ohjelma on suunniteltu kouluttamaan CW-vastaanottoa.

Se on jaettu kahteen moduuliin.

Päämoduuli ("Kutsumerkkien vastaanotto" -välilehti) on kirjoitettu tunnetun RUFZ-ohjelman perusteella.

RUFZ sopii kaikille, mutta sen toiminta yksinomaan DOS:n alla aiheuttaa suuria ja joskus yksinkertaisesti ylitsepääsemättömiä esteitä sen käytölle --- useimmissa nykyaikaisissa äänikorteissa ei yksinkertaisesti ole luonteeltaan DOS-ajureita. Sisäänrakennetun tietokoneen diskanttikaiuttimen kuuntelun laatu jättää paljon toivomisen varaa.

Toinen moduuli (välilehti "Tekstien ja radiogrammien vastaanotto") --- tuottaa ja toistaa digitaalisia, aakkosllisia radiogrammeja ja "avointa" tekstiä.

Toisin kuin RUFZ, tämä ohjelma toimii Win95/98/NT/2000/XP:ssä millä tahansa äänikortilla (mukaan lukien integroidulla), mutta se ei toimi sisäänrakennetun kaiuttimen kanssa.

Ohjelma ei kirjoita mitään rekisteriin tai Windowsin järjestelmähakemistoihin, joten voit käyttää sitä myös käyttäjänä rajoitetuilla oikeuksilla Win NT/2000:ssa.

Ohjelma ei vaadi asennusta. Tiedostot cwmaster.exe, master.ped ja readme.txt on sijoitettava jaettuun hakemistoon ja suoritettava cwmaster.exe.

2. Moduuli "Kutsumerkkien vastaanotto" --- Yleiset periaatteet.

Ohjelma lähettää vuorotellen 30 todellista kutsumerkkiä, jotka valitaan satunnaisesti master.ped-tiedostosta. Jos kutsu on vastaanotettu oikein, niin seuraavan lähetysnopeus kasvaa 2 wpm. Jos se on väärin, nopeutta vähennetään 1 wpm. Kunkin kutsumerkin lähetysääni vaihtelee pienissä rajoissa satunnaisesti.

Jokaisesta kutsumerkin vastaanottamisesta saa pisteitä. Pisteiden määrä riippuu vastaanoton aikana tehtyjen virheiden määrästä, kutsumerkin pituudesta ja lähetysnopeudesta.

Riippuvuus nopeudesta on neliöllinen, riippuvuus kutsumerkin pituudesta on lineaarinen.

Pisteiden määrä ei riipu kutsumerkin syöttämisen nopeudesta.

Hyväksymätön kutsumerkki voidaan toistaa painamalla F6-näppäintä rajoittamattoman määrän kertoja, mutta jokaisella toistolla pisteiden määrä puolittuu, eikä nopeus, vaikka se vastaanotetaan oikein, ei kasva.

Tässä versiossa lukuisten pyyntöjen vuoksi on otettu käyttöön mahdollisuus tallentaa lähetettyjen kutsumerkkien nopeus ja sävy. Tässä tilassa pisteitä ei kuitenkaan myönnetä, joten tulostaulukkoon ei kirjata mitään.

3. Moduuli "Kutsumerkkien vastaanotto" --- Kuinka toimia?

Kun olet käynnistänyt ohjelman, syötä kutsumerkkisi, aseta aloitusnopeus WPM:ssä, vastaanotetun signaalin alkuäänenä.

Alustavien asetusten ohjaamiseen on olemassa "Preliminary testing" -tila, jossa V-kirjain lähetetään jatkuvasti. Pääset siihen painamalla vastaavaa painiketta tai F3-näppäintä.

Aloita vastaanottaminen painamalla ”Aloita”-painiketta (tai Enter-näppäintä). Kun kutsumerkki on kuulunut, kirjoita se näppäimistöllä ja paina Enter-näppäintä. Vastaanotto voidaan lopettaa milloin tahansa painamalla näppäimistön Stop- tai Esc-painiketta.

Pisteiden kokonaismäärä syötetään tulostaulukkoon WPM-sarakkeessa näkyy nopeuden maksimiarvo, jolla vähintään yksi kutsu on vastaanotettu oikein.

Jos kutsumerkkiä ei vastaanotettu oikein tai pisteistä on nolla, tulosta ei kirjata taulukkoon. Kun taulukko (19 riviä) on valmis, se nollataan, mutta pistemäärän paras tulos tallennetaan ja kirjataan ensimmäiselle riville, jolloin voit harjoitella eteenpäin keskittyen parhaisiin :)

4. Moduuli "Tekstien ja radiogrammien vastaanotto"

Radiogrammeilla kaiken pitäisi olla selvää --- muodostamme sen, napsautamme "Aloita" ja kirjoitamme vastaanotetun paperille. Tällainen "käsitallennus" on hyödyllinen CW-oppimisen alkuvaiheessa, ja kun vastaanottonopeus on saavutettu 25-30 wpm, on suositeltavaa luopua nauhoittamisesta ja siirtyä koulutukseen vastaanottamaan selkeää tekstiä yksinkertaisesti "korvalla". Lisäksi on suositeltavaa kuunnella ensin lyhyitä sanoja, kuten "mitä", "miten" jne. niiden äänen muistamiseksi, ja sitten siirtyä pidempiin sanoihin.

Ikkunassa voit avata minkä tahansa tekstitiedoston, kopioida sinne minkä tahansa tekstin ja lopulta kirjoittaa sen sinne käsin, jos todella haluat. Ohjelma erottaa venäläiset ja latinalaiset kirjaimet ja välittää ne oikein.

Voit valita ikkunan tekstistä vain ne sanat, jotka eivät ylitä vaadittua pituutta.

Yleisesti ottaen ohjelman käyttöliittymä on niin yksinkertainen, että on helpompi kokeilla kuin kuvailla mitä ja miten tehdä :)

Sitä voidaan koristella, "teroittaa", tehdä tilastoja ja vastaavia "kelloja ja pillejä", mutta se ei minua kiinnosta.

En näe mitään järkeä PILE-UP-moduulien ja varsinkaan CyberContestin esittelyssä - kaikki tämä on ilmassa! :)

Morse-koodi ohjelma.

Ohjelma emuloi päätelaitetta signaalien lähettämiseksi morsekoodilla.

Ohjelmassa ei ole säätöjä, nopeus ja ääni on asetettu vakioiksi.

Ohjelma ei pidä taukoa merkkien välillä; taukoja säädetään näppäimistön syöttönopeudella.

Morsekoodin kouluttaja.

[sähköposti suojattu]

Yksinkertainen ohjelma mukavalla käyttöliittymällä, joka selaa morsekoodilla määritettyjä tekstejä tietyllä nopeudella.

NuMorP-ohjelma.

NuMorP-ohjelmaa käytetään Yhdysvaltain armeijan sotilaiden kouluttamiseen ja testaamiseen.

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

Ohjelma vierittää morsekoodia tiettyjen tekstien läpi tietyllä nopeudella.

Saadaksesi englanninkielisen näppäimistöasettelun, suorita ohjelma "From programsfafla"-kansiosta tai suorita asennustiedosto, se asentaa ohjelman merkinnällä rekisterissä, ja siellä on englanninkielinen näppäimistöasettelu.

Sulje nämä viestiikkunat kätevästi näppäinyhdistelmällä Alt+F4.

NuMorse 2.2.2.0 -ohjelma.

NuMorse 2.2.2.0:aa käytetään Yhdysvaltain armeijan sotilaiden kouluttamiseen ja testaamiseen.

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

Ohjelman avulla voit käyttää näppäimistöä elektronisena avaimena.

Saadaksesi venäjänkielisen näppäimistöasettelun, suorita exe-tiedosto RUS-ohjelmakansiosta.

Saadaksesi englanninkielisen näppäimistöasettelun, suorita ohjelma ANGL-kansiosta tai suorita asennustiedosto, se asentaa ohjelman merkinnällä rekisteriin, ja siellä on englanninkielinen näppäimistöasettelu.

Jos rekisteröintiä ei ole, ohjelma näyttää lisäviestejä sulkemisen yhteydessä,

Sulje näiden viestien ikkunat kätevästi näppäinyhdistelmällä Alt+F4.

Morse-ohjelma DKM Military Edition.

http://europa.narod.ru

Erinomainen yleinen venäläinen ohjelma morsekoodin lähettämiseen näppäimistöllä ja radioviestien vastaanottamiseen.

Ohjelma sopii erinomaisesti radiogrammien vastaanottamiseen automaattisen morsekoodisensorin sijaan.

APAK-CWL ohjelma.

Ei monimutkainen ohjelma morsekoodin oppimiseen, joka ei vaadi asennusta.

Suorita ohjelma siirtymällä "apak"-kansioon ja suorittamalla aloitustiedosto.

"apak"-kansio on jo pakkaamattomat "apak-2r.exe"- ja "ruswav.exe"-arkistot.

Erittäin hyödyllinen ohjelma CW:n oppimiseen venäjäksi DOSAAF-menetelmän mukaisesti.

Sen ainutlaatuisuus piilee siinä, että morsekoodin oppiminen alkaa aivan perusasioista eikä salli käyttäjän siirtyä monimutkaisempaan harjoitukseen, jos edellinen ei ole suoritettu 100% tarkasti.

Näin voit välttää "selaamasta" harjoituksia, joista et pidä, ja voit systematisoida oppimisprosessin.

Ottaen huomioon palvelinten nopeuden Venäjällä ja viestintäkustannukset, päätettiin luopua asennusohjelman ja DLL:n käytöstä ja jakaa ohjelma itsepurkautuvana arkistona.

Pura arkisto haluamaasi kansioon ja ohjelma on valmis käytettäväksi. Win 9x,NT Pienet fontit on otettava käyttöön. WinNT. Poista järjestelmääänet käytöstä.

Kaava: "Ei ääntä." Poistaaksesi asennuksen, poista kaikki ohjelmaan liittyvä.

Nämä ovat kaksi itsepurkautuvaa arkistoa: apak-2r.exe sisältää itse ohjelman ja siihen tarvittavat tiedot ja ruswav.exe sisältää kappaleet.

Jos et halua oppia CW:tä laulujen avulla, sinun ei tarvitse kopioida ruswav.exe-tiedostoa.

Molemmat arkistot tulee purkaa samaan kansioon.

Aiempia versioita käyttävien ei tarvitse kopioida tiedostoa ruswave.exe.

Ohjelma on kirjoitettu melko kauan sitten, joten toimiaksesi menestyksekkäästi nykyaikaisissa käyttöjärjestelmissä (WINDOWS XP SP2 ja uudemmat), sinun on suoritettava se yhteensopivuustilassa Windows 95:n kanssa. (Hiiren oikea painike pikakuvakkeessa - Ominaisuudet - Yhteensopivuus-välilehti - Valitse Yhteensopivuustila-ruutu).

Morse Generator ohjelma.

Kuvaus: MorseGen2 on Julian Mossin (G4ILO) hieman muokattu MorseGen-ohjelma.

Alkuperäiseen verrattuna on tehty seuraavat muutokset:

1. (+) ohjelman käyttöliittymää on muutettu (jotkut viestit ja merkinnät on käännetty venäjäksi),

2. (+) tuki venäjän aakkosten kirjaimille,

3. (+) ryhmien lukumäärän valinta (10...500 10:n välein),

4. (+) suurempi maksiminopeus (40 kierrosta minuutissa),

5. (-) QSO:n luomista ei tueta. Siirtonopeus on nostettu 80 wpm:iin ja mielivaltaista tekstitiedostoa siirrettäessä poistetaan toistuvat välilyönnit ja joitain muita palvelumerkkejä, ts. tekstin muotoilu ei vaikuta lähetykseen.

Morse Trial -ohjelma luo radiogrammit morsekoodilla vaihtelevalla nopeudella, tauoilla ja äänellä. On mahdollista ladata tekstiä tiedostostasi sekä luoda satunnaisesti tekstiä. Radiogrammeja kuunneltaessa on mahdollista lisätä kohinaa realistisemmaksi.

Morsekoodi, morsekoodi, "morsekoodi" on tapa koodata aakkosten kirjaimia käyttämällä pitkiä ja lyhyitä signaaleja, niin kutsuttuja "viivoja" ja "pisteitä" (sekä kirjaimia erottavia taukoja). Yhden pisteen kesto otetaan aikayksikkönä. Viivan kesto on kolme pistettä. Kirjaimen merkkien välinen tauko on yksi piste, sanan kirjainten välillä - 3 pistettä, sanojen välillä - 7 pistettä. Se on nimetty amerikkalaisen keksijän Samuel Morsen mukaan, joka keksi sen vuonna 1835. Morsekoodi on ensimmäinen digitaalinen tiedonsiirtomenetelmä. Lennätin ja radiolennätin käyttivät alun perin morsekoodia; myöhemmin alettiin käyttää Baudot-koodia ja ASCII-koodia, jotka ovat kätevämpiä automatisointiin. Nyt on kuitenkin olemassa keinoja Morse-koodin automaattiseen luomiseen ja tunnistamiseen. Venäläisten kirjainten välittämiseen käytettiin vastaavien latinalaisten kirjainten koodeja; tämä aakkosten vastaavuus siirtyi myöhemmin MTK-2:een ja sitten KOI-7:ään ja KOI-8:aan (morsekoodissa Q-kirjain vastaa kuitenkin kirjainta Ш ja MTK:ssa ja KOI-Ya:ssa).

Morse Trial -ohjelman päätarkoitus on parantaa lennättimen vastaanottotaitoja. Lataa Morse Trial -koulutusohjelma Voi

Mutta jos et jo tiedä morsekoodia, voit suorittaa itseopiskelun LCWO:n verkkosivuilla Kochin menetelmän mukaan

Koch-menetelmä on yksinkertainen tapa kehittää refleksejä suoraan. Se vaatii kuitenkin joko tietokoneen asianmukaisella ohjelmistolla tai henkilökohtaisen valmentajan. Tästä syystä Kochin menetelmä jätettiin huomiotta niin monta vuotta. Nyt kun tietokone on ottanut tavallisen paikkansa radioamatöörin pöydällä, Koch-menetelmällä on kaikki mahdollisuudet tulla standardiksi radiolennättäjäkoulutuksessa.

Koulutus tapahtuu seuraavasti:

  • Määrität ohjelmasi luomaan CW-signaaleja nopeudella noin 20 sanaa minuutissa per merkki, mutta hieman pidemmillä tauoilla (tehollisen nopeuden tulisi olla noin 15 sanaa minuutissa).
  • Sitten otat paperin ja kynän ja alat ottaa. Ensimmäisellä oppitunnilla tietokoneen tulee lähettää vain kaksi merkkiä. Eli ensimmäisessä oppitunnissa sinun on tunnistettava vain kaksi vaihtoehtoa. Hyväksyt tekstin 5 minuutin ajan, tarkistat sitten vastaanotetun tekstin oikeellisuuden ja lasket oikeiden merkkien prosenttiosuuden.

LCWO— Tämä online-assistentti on tarkoitettu erityisesti lennättimen itseopiskeluun. Rekisteröitymisen jälkeen sivustosta tulee henkilökohtainen opettajasi. Hallitset lennätin pelatessasi arvauspeliä - kehität ehdollisia refleksejä merkkien ääneen ja kirjoitat ne - jos haluat - kädelläsi, jos haluat - näppäimistölle. Menetelmän on kehittänyt kunnianarvoisa Ludwig Koch erityisesti henkilökohtaista harjoittelua varten. Sivustolla sinua pyydetään suorittamaan 40 oppituntia ja siirry seuraavaan oppituntiin vasta edellisen oppimisen jälkeen. Sinun tulee harjoitella vain säännöllisesti. Sinun ei tarvitse ladata mitään tietokoneellesi. Voit opiskella millä tahansa tietokoneella, jossa on Internet-yhteys kotona, töissä tai nettikahvilassa.

24. syyskuuta 2015 klo 11.18

Ohjelma morse-äänikoodin luomiseen

  • Ohjelmointi,
  • C++

Viime aikoina olen oppinut morsea tämän ohjelman avulla. Mutta se on suunniteltu tutkimaan kyrillisiä kirjainkoodeja, mikä on epäolennaista nykyaikaisessa radioviestinnässä (kaikki käyttävät latinalaisia ​​aakkosia, paitsi urhoollinen armeijamme).

Idean toteuttamisen työkaluksi valittiin C++ yhdessä Qt:n kanssa.

Ohjelman pääidea

Morse-koodin atomi (aikayksikkö) on piste, jonka kaikkien muiden elementtien kesto muodostuu siitä:
  1. Viiva vastaa kolmea kuulostavaa pistettä;
  2. Tauko yhden symbolin (merkin) elementtien välillä on yksi hiljainen piste;
  3. Merkkien välissä on kolme pistettä;
  4. Sanojen välissä on seitsemän pistettä.
Kuten näette, mikä tahansa morsekoodiin perustuva koodi voidaan esittää kuuloisten ja hiljaisten pisteiden joukkona: Lähdin tästä ideasta, ja tämä ratkaisu vaikutti minusta varsin omaperäiseltä.

Alkuperäinen toteutus

Ohjelman ensimmäisessä versiossa soivien ja hiljaisten pisteiden yhdistelmä tallennettiin vektoriksi Boolen elementeillä, jossa totta vastasi äänen kytkemistä päälle ja väärä- sammuttamalla.

Kuten jo ymmärsit, lopullisen signaalin saamiseksi "vein" vain äänen viiveellä (käyttämällä ajastinta, joka vastaa pisteen kestoa millisekunteina) loputtomasti toistettavalla .wav-tiedostolla, jossa on sinitallenne. Mutta tällä lähestymistavalla oli merkittävä haitta ja se koostui siitä, että jokainen piste oli ladattava erikseen käyttämällä ylikuormitettua operaattoria tai erityistä menetelmää. Tämän lähestymistavan vuoksi minun piti kirjoittaa jokaiselle kirjaimelle erillinen makro (kuten tämä - #define I DOT<< false << DOT) и создать огромный жуткий vaihtaa soittamaan ohitettua merkkijonoa. Se oli kauheaa, mutta jos olet utelias, voit tarkistaa sen.
ohjelman ensimmäisellä versiolla (en pystynyt lataamaan paikallista arkistoa kokonaan GitHubiin - vain uusin versio).

Pelottava kytkin:

bool Morse::StringToMorse (QString &line) ( rivi += "\0"; for (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; // И так далее


Ja näin ääni laitettiin päälle ja pois (itse asiassa äänikoodi luotiin):

void Morse::PlayLinePoints () ( QTimer::singleShot (duration_point_, this, SLOT (Mute ())); sound_.play (); ) void Morse::Mute () ( if (line_points_.empty ()) ( / /Lopeta toisto sound_.stop ( ) if (line_points_.at (0)) ( //Ota sound päälle SLOT (Mute ())); return paluu ) )

Viimeinen versio

Nämä makrot osoittautuivat erittäin hankalia, ja minun perfektionismi ei voinut enää katsoa näitä hirviömäisiä malleja. Hieman pohdittuani tulin siihen tulokseen, että ideani oli hyvä, mutta koodien tallentaminen makrojen muodossa on erittäin hankalaa ja jos tämä ongelma ratkeaa, kaikki on hyvin. Tämän seurauksena QMapia käytettiin koodien tallentamiseen:

//Tallentaa vastaavat QMap-merkkien pisteiden ja viivojen yhdistelmät koodit_;
Tämä lähestymistapa osoittautui erittäin käteväksi. Nyt käytin juuri nyt pelattavaa hahmoa avaimena ja sain valmiin
Koodin (joukko Boolen arvoja) toistamiseksi toistoalgoritmista tuli kuitenkin hieman monimutkaisempi: oli syötettävä symbolin nykyisen elementin laskuri ja rivin merkkien laskuri:

Uusi toistototeutus:

void Morse::MiniSpace () ( if (stop_) ( this->Stop (); return; ) sound_.setMuted (true); ++id_element_; //Siirry toiseen koodielementtiin if (id_element_ == codes_.value ( string_to_play_.at (id_char_).size ()) ( ++id_char_; id_element_ = 0; QTimer::singleShot (duration_dot_ * 3, this, SLOT (Mute())); //Tauko merkkien välillä paluu; ) QTimer: : singleShot (duration_dot_, this, SLOT (Mute())); //Tauko symbolielementtien välillä ) void Morse::Space () ( if (stop_) ( this->Stop (); return; ) sound_.setMuted (true ) ; //Tauko kestää 7 pistettä //Mutta koska symbolin jälkeen on kolmen pisteen tauko, lisätauko on asetettava 4 pisteen pituiseksi QTimer::singleShot (duration_dot_ * 4, this, SLOT (Mute()) ); void Morse::Mute () ( if (stop_) ( this->Stop (); return; ) if (id_char_ == string_to_play_.size ()) ( // Rivi on päättynyt tähän->Stop (); palauttaa 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; }


Lippu lopettaa_ otettiin käyttöön estämään ohjelman virheellinen toiminta (kaksi peräkkäistä Play()-kutsua ja muita huonoja asioita).
En näe mitään syytä sisällyttää loput lähdekoodi- ja otsikkotiedostot artikkelin runkoon, koska kaikki siellä on melko ilmeistä ja läpinäkyvää.

Voit ladata uusimman version täydelliset lähteet osoitteesta