remithefox / morse
生成摩尔斯电码消息的库
1.0.0
2024-05-10 13:40 UTC
Requires
- php: >=8.0
- remithefox/wave: ^1.0
README
一个PHP库,可以将摩尔斯电码转换为波形文件
安装
Composer
$ composer require remithefox/morse
使用方法
创建波形文件对象
首先,您需要拥有可写波形文件的对象(包 remithefox/wave)。您可以打开现有文件或通过构建器创建新文件,例如:
use RemiTheFox\Wave\Wave; $builder = Wave::builder() ->setNumberOfChannels(1) ->setSampleRate(44100) ->setBitsPerSample(8) ->setFloatDecorator(true); $wave = $builder->create(__DIR__ . '/sound.wav');
创建摩尔斯编码器对象
接下来,您需要创建 MorseEncoder 对象。例如:
use RemiTheFox\Morse\MorseEncoder; // ... $morse = new MorseEncoder($wave, [0], 20, 700, 1);
构造函数参数
注意:创建对象后,可以更改 wpm、tone 和 volume(请参阅 设置器)。
生成文本消息
要生成文本消息,可以使用 MorseEncoder::text() 方法。例如:
// ... $morse->text('CQ CQ SO9FOX');
在 " " 字符处,文件将添加比点更长的10倍的静默时刻。您也可以使用方法 MorseEncoder::space() 添加此静默。例如:
// ... $morse->space();
发送程序字符
要发送程序字符,可以使用专用方法(请参阅 程序字符表)。例如:
// ... $morse->attention();
您还可以使用 < 和 > 之间的快捷方式发送程序字符(请参阅 程序字符表)。例如:
// ... $morse->text('<SOS> CQ CQ SO9FOX');
程序字符表
短数字模式
如果您想使用短数字信号,可以设置短数字模式。例如:
// ... $morse->setShortNumbers(true); $morse->setShortNumbers(false);
注意:一些短数字信号与一些字母信号相同。当您发送大量数字时(例如电话号码),可以使用短数字模式,但应避免在发送呼号或QTH定位器时发送短数字信号。例如:
// ... $morse ->text('CQ CQ SO9FOX CALL ME') ->space() ->setShortNumbers(true) ->text('501 234 567') ->setShortNumbers(false);
获取器
设置器
异常
所有异常都在命名空间 \RemiTheFox\Morse\Exception 中实现,并实现了 \RemiTheFox\Morse\Exception\MorseExceptionInterface。
速度
由于单词长度不同,每分钟单词数无法精确指定。Wpm参数用于定义点、划和静默时间。
长文本?ASCII-fox
/\-/\
(=^w^=)
) (
━╸━╸╸╸╸ ╸╸╸━╸━╸