Skip to content

zhkag/morse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

morse

介绍

摩尔斯电码(英语:Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。

摩尔斯电码是一种早期的数字化通信形式,但是它不同于现代只使用0和1两种状态的二进制代码,它的代码包括五种:

  1. 点(·):1
  2. 划(-):111
  3. 字符内部的停顿(在点和划之间):0
  4. 字符之间的停顿:000
  5. 单词之间的停顿:0000000

时间控制和表示方法

有两种“符号”用来表示字符:点(·)和划(-),或叫“滴”(dit)和“答”(dah)。点的长度决定了发报的速度,并且被当作发报时间参考。下面是时间控制的图示:

-- --- ·-· ··· ·       -·-· --- -·· ·
M   O   R   S  E        C    O   D  E

这里,“-”表示划,“·”表示点。这是上面消息的准确发报时间(=表示有信号,.代表无信号,每个为一个点的长度):

===.===...===.===.===...=.===.=...=.=.=...=.......===.=.===.=...===.===.===...===.=.=...=
   ^           ^        ^       ^             ^
   |           划       点       |          单词间隔
点划间隔                      字符间隔

划一般是三个点的长度;点划之间的间隔是一个点的长度;字符之间的间隔是三个点的长度;单词之间的间隔是七个点的长度。

初学者往往被教导发送点划间隔短小、短而快的字符,并且在符号和单词之间夸大间隔时间。比较起来,这种方式更加容易学会。

熟悉摩尔斯码的人之间经常像这样说话或拼写(其中,“长音 / Dah”是发“awe”的音):

-- --- ·-· ··· · / -·-· --- -·· · DahDah DahDahDah DiDahDit DiDiDit Dit, DahDiDahDit DahDahDah DahDiDi Di.

基础拉丁字母

字符 代码 字符 代码 字符 代码 字符 代码 字符 代码 字符 代码 字符 代码
A ·- B -··· C -·-· D -·· E · F ··-· G --·
H ···· I ·· J ·--- K -·- L ·-·· M -- N
O --- P ·--· Q --·- R ·-· S ··· T - U ··-
V ···- W ·-- X -··- Y -·-- Z --··

数字

字符 代码 字符 代码 字符 代码 字符 代码 字符 代码
1 ·---- 2 ··--- 3 ···-- 4 ····- 5 ·····
6 -···· 7 --··· 8 ---·· 9 ----· 0 -----

标点符号

字符 代码 字符 代码 字符 代码 字符 代码 字符 代码 字符 代码
. ·-·-·- : ---··· , --··-- ; -·-·-· ? ··--·· = -···-
' ·----· / -··-· ! -·-·-- - -····- _ ··--·- " ·-··-·
( -·--· ) -·--·- $ ···-··- & ·-··· @ ·--·-· + ·-·-·

特殊符号

符号 代码 意义 shell 中意义
HH ········ 表示“有错,从上一字重新开始”。 退格(\b)
SK ···-·- 表示终止(联系结束)。 回车(\n)

使用 Morse

API 介绍

  1. 初始化 morse

    void morse_init();
  2. morse 信号输入

    void morse_input(rt_bool_t flag);

通过 morse_input 来实现信号的输入功能,可以接收任何形式的信号输入,通过判断输入 1 的时间来完成对 morse code 的解析。

通过使能 PKG_USING_MORSE_SHELL 可以实现输入命令并运行 shell 指令的目的

联系方式 & 感谢