Morse code encoder library
Diff: morse.cpp
- Revision:
- 1:e377d081edea
- Parent:
- 0:27c38e4d6e4e
- Child:
- 2:7dc8528b23da
--- a/morse.cpp Sun Jul 13 09:26:34 2014 +0000 +++ b/morse.cpp Sat Jul 26 22:48:52 2014 +0000 @@ -35,6 +35,26 @@ * @endcode */ +// +// 0to127-value vs CW_tick table +// =0.03*5^(1-i/128) +const float Morse::table[] = { 0.15000000 ,0.14812575 ,0.14627491 ,0.14444721 ,0.14264234 ,0.14086002 ,0.13909997 ,0.13736192 , + 0.13564558 ,0.13395068 ,0.13227697 ,0.13062416 ,0.12899201 ,0.12738026 ,0.12578864 ,0.12421691 , + 0.12266482 ,0.12113212 ,0.11961857 ,0.11812393 ,0.11664797 ,0.11519045 ,0.11375115 ,0.11232983 , + 0.11092626 ,0.10954024 ,0.10817153 ,0.10681993 ,0.10548521 ,0.10416717 ,0.10286560 ,0.10158029 , + 0.10031105 ,0.09905766 ,0.09781993 ,0.09659767 ,0.09539068 ,0.09419877 ,0.09302176 ,0.09185945 , + 0.09071166 ,0.08957822 ,0.08845894 ,0.08735364 ,0.08626216 ,0.08518431 ,0.08411993 ,0.08306885 , + 0.08203091 ,0.08100593 ,0.07999376 ,0.07899424 ,0.07800720 ,0.07703250 ,0.07606998 ,0.07511948 , + 0.07418086 ,0.07325397 ,0.07233866 ,0.07143479 ,0.07054221 ,0.06966079 ,0.06879037 ,0.06793084 , + 0.06708204 ,0.06624385 ,0.06541613 ,0.06459875 ,0.06379159 ,0.06299452 ,0.06220740 ,0.06143012 , + 0.06066255 ,0.05990457 ,0.05915606 ,0.05841690 ,0.05768698 ,0.05696618 ,0.05625439 ,0.05555149 , + 0.05485737 ,0.05417193 ,0.05349505 ,0.05282663 ,0.05216656 ,0.05151474 ,0.05087106 ,0.05023543 , + 0.04960773 ,0.04898788 ,0.04837578 ,0.04777132 ,0.04717442 ,0.04658497 ,0.04600289 ,0.04542809 , + 0.04486046 ,0.04429993 ,0.04374640 ,0.04319979 ,0.04266001 ,0.04212697 ,0.04160059 ,0.04108079 , + 0.04056749 ,0.04006060 ,0.03956004 ,0.03906574 ,0.03857761 ,0.03809558 ,0.03761958 ,0.03714952 , + 0.03668534 ,0.03622695 ,0.03577430 ,0.03532730 ,0.03488588 ,0.03444998 ,0.03401953 ,0.03359445 , + 0.03317469 ,0.03276017 ,0.03235083 ,0.03194661 ,0.03154744 ,0.03115325 ,0.03076399 ,0.03037959 }; + /** beeping function * this is a private funciton / internal use only */ @@ -86,6 +106,36 @@ return cw_tick; } +void Morse::setidx(int idx) +{ + tick_idx = idx; + settick(table[tick_idx]); +} + +int Morse::getidx(void) +{ + return tick_idx; +} + +void Morse::incidx(void) +{ + tick_idx++; + if (tick_idx > 127) + tick_idx = 127; + + settick(table[tick_idx]); +} + +void Morse::decidx(void) +{ + tick_idx--; + if (tick_idx < 0) + tick_idx = 0; + + settick(table[tick_idx]); +} + + /** Coding function * * @param code - a pointer to code strings