remithefox/morse

生成摩尔斯电码消息的库

1.0.0 2024-05-10 13:40 UTC

This package is auto-updated.

Last update: 2024-09-10 14:31:39 UTC


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);

构造函数参数

注意:创建对象后,可以更改 wpmtonevolume(请参阅 设置器)。

生成文本消息

要生成文本消息,可以使用 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^=)
 )   (

━╸━╸╸╸╸   ╸╸╸━╸━╸