乐于分享
好东西不私藏

使用新插件和StreamDock,定制你的n1mm快捷控制平台

本文最后更新于2025-12-31,某些文章具有时效性,若有错误或已失效,请在下方留言或联系老夜

使用新插件和StreamDock,定制你的n1mm快捷控制平台

前段时间研究了一下StreamDock这个小玩意,发现用自带的功能以及老外的一个CommandSender插件,可以实现不少好玩的功能;
相关介绍见前一篇文章
但遗憾的是,自带功能和CommanderSender插件都不支持接收n1mm发出的数据,不能实现指定数据的实时显示。
本着“自己动手,丰衣足食”的古训,我决定自己写一个插件。
现在,新的插件已经完成,容我来继续嘚瑟一下。
*******************************************
先看我自己定制的界面:
红框显示了这个插件最有价值的功能:
实时数据的显示,尤其是最后一个,频率的实时显示。
目前能显示的数据为:Band、Mode、Freq;
因为目前n1mm程序发出来的数据中,最有价值的就只有这三个;
其他的数据要么没啥用,比如软件名、实时QSO数据(对方呼号、信号报告啥的)等;
要么就是想要的数据没有,比如“当前CW速度”
*********************************************

插件的主要功能如下:

1、向指定IP的指定UDP端口(均可自定义)发送定制的字符串;

— 这个功能跟command sender的是一样的,只不过我没放TCP协议进去;

—  这个功能的目的是借助n1mm内置的接收字符串指令功能,实现n1mm程序在“非活动”状态下接收快捷指令;

2、接收指定IP的指定UDP端口(均可自定义)发来的数据

—  这个功能是给n1mm定制的,接收到信息之后可以解析出当前的 Freq\Mode 数据; 接收n1mm发出的  “RadioInfo”数据包

3、可以将接受到的Freq\Mode等数据实时显示在任意一个按钮或者旋钮的屏幕上

—  这个也是为n1mm定制的,目前支持显示的数据为 Freq\Mode\Band;(很遗憾n1mm没有输出当前CW速度的信息)

—  是否显示、显示哪个数据、显示在哪里均由用户指定,支持多个按键显示同一个信息;

4、支持按键、旋钮和副屏(该公司的另外一个产品)

—  老外的Command Sender不支持旋钮,只支持按键;(主要他的插件写得比较早,最近好像没更新)

这款插件的最大特点处,是在保留“非活动状态下”控制n1mm的同时,可以实时显示频率信息,这个是最有用处的功能;

也就意味着,将某个旋钮定义为调整频率,将旋钮对应(或者任意位置)的小屏幕定义为显示当前Freq,这样就可以不用买Flex那个死贵的大拨轮了;

*********************************************

对了,我这款插件名为 commcentern1mm

要想为n1mm定制快捷控制台(不叫控制键盘的原因一是有旋钮,二是讨论的时候容易和电脑键盘混淆)一共有三种实现方法,分别是:

原生功能(也即使用官方自带插件,以下简称“官方插件”)

使用插件CommandSender

使用插件commcentern1mm

以下是这三种方法的功能对比(以使用n1mm软件为例,所有优缺点都是针对n1mm而言)

一、官方插件

1、优点
++ 对电脑键盘的模拟度极高,任何键盘上的键(以及组合键)都能完美模拟,只要是n1mm能接受的快捷键命令都能使用;
++ 支持按键、按钮等所有硬件的定制
++ 可以实现连续控制流,比如先发一个组合键、延时多少毫秒之后再发一个组合键,或者两个或者多个组合键循环发送等
这个功能n1mm用不到,但是可能有些游戏软件能用到;
这个功能只是顺带介绍,官方插件的功能毕竟不是第三方插件能比的,由于n1mm用不到,后续两个插件也不支持这个功能,就不参与比较了。
2、缺点
— 所有的快捷键都必须当n1mm在“活动状态”下才能用,也就是n1mm软件必须是当前的“活动窗口”。
如果你的鼠标去操作别的软件导致n1mm“失去焦点”,这时候这个快捷控制台就没用了。必须把鼠标切回到n1mm软件才能继续操作;
— 不支持n1mm软件数据的实时显示
也好理解,毕竟是通用插件,不可能为某个软件定制
二、CommandSender插件
这个其实也是一个通用软件,主要的功能是向用户指定的IP地址和端口(支持UDP协议和TCP协议)发送定制化的字符串,至于能实现什么功能要看用户在用什么软件。
这个插件之所以能得到n1mm官方的推荐是因为n1mm”恰好”支持在指定的UDP端口接收指定格式的命令字符串;
所以优缺点就很清楚了
1、优点
++ 支持在n1mm处于“非活动”状态时向其发送命令(这个其实是n1mm自己的功劳,后面再细说)
2、缺点
— (目前版本)仅支持按键,不支持旋钮等其他硬件
这其实是因为插件发布得比较早,早期的产品只有按键,没有旋钮,然后作者最近几年也没发布新版。
— 不支持接收数据,无法实现n1mm数据的实时显示
通用插件么,好理解。
— 对某些特殊的键支持不够好,比如小键盘上的+和-等
这个其实是n1mm的锅,因为它对收到的指令字符串怎么解读是它自己决定的,特殊的键在指令字符串里怎么表示,n1mm并没有给出一个完整的指导,或者有些键根本就不支持这种方式。
这个插件的代码作者是开源的(为作者点赞),在GitHub上有,有兴趣的同学可以自行去下载研究。
要注意的是,源代码是为国外的那个产品StreamDeck开发的,我用的这个国内的平替产品叫StreamDock,这俩背后的逻辑基本一致,但是在某些(代码级别的)实现细节上有区别,做开发的话要小心。
源代码是C#写的,我不懂,也就没去研究他的代码细节,自己另外写了一个。
三、插件commcentern1mm
有了前面的说明,那么这款插件的优缺点也很明确了;
因为我就是针对n1mm来开发的。
1、优点
++ 支持在n1mm处于“非活动”状态时向其发送命令
这个功能和上一个插件是一样的。
++ 除按键外,支持旋钮、副屏等其他硬件;
按键和旋钮的支持肯定没问题,副屏的支持只是在代码层面实现了,因为我没买副屏,所以没做调试,只能说“理论上支持”。
++ 支持n1mm的特定数据的实时显示
这个没啥说的,定制产品么。
2、缺点
— 对某些特殊的键支持不够好
原因如上
*********************************************
扩展说明
为了更好理解和使用插件,这里详细说明一下n1mm通过UDP端口接收指令字符串的细节。
1、n1mm软件在运行时默认打开UDP 端口13064(不可更改)来接收特定格式的字符串作为控制指令;
2、典型的字符串格式如下:
<RCmd Cmd=”KeyMap F4″ Nr=”1″></RCmd>
这个命令意思是告诉n1mm,现在要按 “F4” 这个键
3、详细说明
3.1  用户能改的是两个双引号之内的部分;
3.2  这两个双引号必须是西文半角字符,否则报错
3.3 Nr=”1″这个字段里面,双引号后面的数字支持0、1和2,其中0表示n1mm必须为当前“活动窗口”才能生效,大于0表示为“非活动窗口”时也能生效
当Nr字段缺失时,默认为“0”
3.4  KeyMap 后面的字符串表示这个命令代表按哪个键,支持Fn,也支持组合键比如 Alt+J等;
所以很好理解为什么有些特殊的键会不支持,因为你不知道该写什么n1mm会认识,比如数字键盘上的+,该怎么写,Num+? NumPad+? Numpad+ ?….  
也许n1mm压根就没内置对某些键的支持呢?
3.5 字符串指令还有其他几种指定的格式,分别代表了相同或者不同的命令模式。
比如:

<RCmd Cmd=”{F4}″ Nr=”1″></RCmd>

表示发送F4键代表的宏命令

这跟上面那条命令其实差不多。

其他更详细的就不解释了,有兴趣的同学去查看官方文档

https://n1mmwp.hamdocs.com/appendices/third-party-software/

***************************************

下面说说怎么玩

根据我不算多的经验,比较合适的方式是

官方插件和commcentern1mm插件混用

对于需要显示数据和“非活动”状态下发送的功能,使用commcentern1mm插件,对于无法用字符串来正确模拟的快捷键,用官方插件实现。

唯一要注意的是,使用官方插件的话n1mm要处于“当前活动‘状态

大家可以根据自己平时使用n1mm的习惯来定制化自己的快捷控制台。

commcentern1mm插件的显示功能可以单独实现

比如你把某个按键定义为”发送和显示“,但是发送命令框留空,这样这个按键就变成独立的显示窗口,显示你想要的功能,然后命令功能用官方插件在其他的按键上实现。

举个例子:

切换电台模式的快捷方式是在 n1mm的呼号输入框里直接输入 CW ,回车就切换到CW模式了,但这个在 字符串指令里面无法完美实现;

这时候你可以在一个按键上用commcentern1mm插件单独显示 “Mode”状态,在另外的按键上使用官方插件来设定相关快捷命令。

这里只是举个例子,官方插件能不能实现电台模式切换我还没试。

n1mm定义的快捷键有很多很多,有需要的话自行摸索就好。

****************************************

关于插件的具体使用,这里就不多说了;

如果玩过StreamDock的话,自己摸索一下就能明白,逻辑跟别的插件是一致的,唯一需要注意的是设置完之后要记得按“保存”,这个跟官方插件有点不一样。

没玩过的话,看着会很枯燥没意思。

看反馈吧,如果有需要的话再单独开一篇介绍具体的使用方法。

就到这吧

Happy New Year, everyone.

—————————————

2025年的瞎折腾完美收官

DE BA5AU  –…  …–  –  ..-

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 使用新插件和StreamDock,定制你的n1mm快捷控制平台
×
订阅图标按钮