用户自定义比赛(UDC)编辑器
在哪里可以找到 UDC 材料
网站的支持比赛(Supported Contests)页面上提供了 200 多个用户自定义比赛。这些比赛列在 Supported Contests List 页面上,在 Supported Contests Setup* 页面上有说明,并可在 >Downloads >User Defined Contests 文件夹中下载。
UDC 编辑器概述
让比赛日志软件的用户自行定义比赛,一直是一件非常困难的事。随着比赛数量激增,规则又往往颇具(咳咳)新意,近年来这件事变得更难了。通常需要有懂编程语言的人来创建比赛"模块",即便这样,有些规则也可能无法纳入。
为解决这一问题,Nick(NA3M)在 Logger 中编写了一个非常巧妙的用户自定义比赛(UDC)模块。该模块使用一种预定义格式的文本文件,称为用户自定义比赛(.udc)文件。这类文件既可用文本编辑器创建,也可用 Nick 的 UDC 编辑器(UDC Editor)程序创建,后者可从网站的 >User Defined Contests (UDC) 文件夹下载。
本编辑器程序的使用说明既可见于此处,也可见于名为 _UDC_Help.txt 的文件,该文件包含多种语言的信息,可在 UDC 文件编辑器(UDC File Editor)中选择。UDC 功能会不时新增特性,届时 UserDefinedContests 文件夹中的帮助文件可能比手册中的本页更新。可在 UDC 文件编辑器中单击其 HELP 按钮,或双击某个比赛参数行来打开该帮助文件。记事本(Notepad)会自动启动并显示帮助文件。调整窗口大小,以便同时看到 UDC 编辑器窗口和记事本窗口。双击某个参数尤其有用,因为记事本会直接跳到帮助文件中的该参数。 在编辑会话中第一次调用帮助时,系统会要求你选择语言。该选择会保留在内存中,直到你关闭编辑器。如果选错了语言,就必须关闭并重启 UDC 编辑器。
利用用户自定义比赛功能的方式有三种:用 UDC 编辑器构建你自己的 UDC;以先前的 UDC 文件为模板,用文本编辑器构建 UDC 文件;或下载其他火腿构建并贡献到 N1MM Logger+\UserDefinedContests 文件夹的 UDC。
无论采用哪种方式,N1MM Logger+ 的比赛设置(Contest Setup)对话框中的可用比赛下拉列表只会列出已复制到 Documents\N1MM Logger+\UserDefinedContests\ 处 N1MM Logger+ 用户文件区中 UserDefinedContests 文件夹的 UDC。
如果你为某个特定比赛开发并充分测试了一个 UDC 文件,请将其上传到 groups.io 上 N1MMLoggerPlus 群组的 Files Section,与其他用户分享。但请记住——UDC 文件是用户自定义的,缺陷修复或功能改进由创建该 UDC 的用户负责,而非 N1MM 开发团队。
局限性 虽然 UDC 文件为用户提供了丰富的选项,可将 N1MM Logger+ 适配许多比赛的规则,但它们无法提供程序员所拥有的那种控制能力,也可能无法完全实现某些规则。此外,许多比赛中不同地区参赛者的规则并不相同——一个很好的例子是 QSO 聚会(QSO party),州内和州外参赛者的规则不同。在这种情况下,创建两个 UDC 比赛(分别供区内和区外参赛者使用)可能是合理的做法。
UDC 编辑器
UDC 编辑器相当简单。从 >Downloads >User Defined Contests 文件夹下载并解压文件 _UDCeditor.ZIP。打开编辑器时,首先会要求你选择一个用户自定义比赛文件。你会注意到这些文件的扩展名都是 ".udc"),它们存放在 N1MM Logger+ 用户文件文件夹下的 UserDefinedContests 子文件夹中,即 Documents\N1MM Logger+\UserDefinedContests\。你会在 UDC 库(UDC Gallery)第 1 页找到起始 UDC 文件 "_Template.udc"。

打开已有的比赛文件时,系统会提醒你执行 "Save As…",除非你打算编辑所打开的这个文件。这是因为任何更改都会立即保存到你所打开的文件中。你必须小心,不要损坏那个将用作新比赛文件起点的现有用户自定义比赛文件。因此建议你用新名称保存该文件,然后用编辑器编辑这个新文件,保持原文件不变。
下面是一个用户在测试期间创建的比赛在 UDC 编辑器中的显示示例。

要修改某个比赛参数,单击它一次。你会注意到该参数及其值显示在右侧的灰色窗格中。在值(Value)字段中修改该值。单击为键设置值(Set Value for Key)以保存。这会立即将其保存到文件中。这就是编辑器没有保存(Save)按钮的原因。编辑完一个比赛后直接退出即可,你的比赛文件会保存所有更改。
新的(或修改后的).udc 文件准备好测试后,最后一次将其保存到 Documents\N1MM Logger+\UserDefinedContests\ 文件夹,然后启动 N1MM Logger+。转到文件 > 数据库中新建比赛(File > New Contest in Database),你应当能在可用比赛列表中看到你的新比赛。测试一下,确保一切按你的计划工作。如果有问题,你可以编辑 .udc 文件并保存。你可以让 .udc 文件编辑窗口一直开着。要测试任何更改,都必须重启 N1MM Logger+。
如果你想为这个项目出力、再增加一种语言——只需将你的译文添加到 UDC 帮助文件的空 [Language…] 节中,并把文件发送到 na3m@arrl.net,保存文件时请使用 UNICODE 编码。
编辑技巧
UDC 编辑器不允许你删除参数名,但你可以清空或省略灰色窗格中的值,此时将使用默认值(在每种参数的取值列表中,默认值以 * 标记)。你只应使用下文提到的取值。目前不会检查为参数提供的取值是否正确。参数的无效取值可能导致 N1MM Logger+ 出现不可预测的行为,例如显示带有错误参数名的警告消息。
默认情况下,UDC 编辑器不显示"空"参数,对于这些参数,N1MM Logger+ 将使用默认值。单击"显示默认值"(Show Default)复选框可查看完整参数列表,并可通过赋予非默认值来编辑它们。不要试图删除"空"参数——如果该文件日后被用作另一个比赛的模板,它们可能会派上用场。
将你的 .udc 文件保存在 Documents\N1MM Logger+\UserDefinedContests 文件夹中。如果你定义了一个 UDC 并将其存入数据库,但随后从该文件夹中删除了它的 .udc 文件,那么下次你尝试打开该比赛时会显示警告消息,且比赛无法工作。要让 UDC 文件的编辑更快,可右键单击某个 udc 文件名,选择 "Open with…",选择 UDC 编辑器,然后勾选"始终使用此程序打开这种文件"复选框。此后双击某个 .udc 文件名就会自动用 UDC 编辑器打开它。
别担心弄坏 UDC 编辑器的一个好处是,即使弄坏了也造不成多大损害。你唯一在编辑的就是 .udc 文件,如果它不能工作而你又修不好,随时可以从 UDC 文件夹中删除它并重新开始。
运行用户自定义比赛
用户自定义比赛会像出厂预置的比赛一样,出现在选择比赛(Select Contest)对话框的比赛下拉列表中。
UDC 文件
注意:比赛参数不建议使用英语以外的任何语言。如果你想了解文件格式,可以用文本编辑器看看示例 UDC 文件,但我们建议你使用 UDC 编辑器来编辑或新建文件。
带说明的文件格式
以下内容基于 UDC 编辑器帮助文件中的英语文本,说明如何为 N1MM logger 配置用户自定义比赛。葡萄牙语、西班牙语、俄语版本可在随每次最新更新(Latest Update)下载的 _UDC_HELP.txt 文件中找到。
使用这些信息最方便的方式是从 UDC 编辑器打开 _UDC_HELP.txt 文件,方法是按它的 HELP 按钮或双击某个比赛参数行。系统会要求你选择一种语言。该选择会保留在内存中,直到你关闭编辑器。如果选择了一种并不存在的语言,你就必须重启编辑器。假定你选择了其中确实存在的一种语言,记事本会自动启动并打开帮助文件。
最好调整记事本窗口的大小,以便同时看到 UDC 编辑器窗口和记事本窗口。
要在 UDC 编辑器中修改参数,单击它一次,然后在值字段中修改其值。单击为键设置值(Set Value for Key)以保存。这会立即将其保存到文件中。这就是 UDC 编辑器没有保存(Save)按钮的原因。编辑完成后,你只需退出,你的比赛文件就会保存所有更改。
因此,如果你用已有的 UDC 文件作为新文件的起点,就必须小心不要损坏它。用 UDC 编辑器打开它,然后单击文件另存为(Save File As…)按钮。给你的新比赛文件起一个能明确标识它的名字(最好是它的短名,例如 ARRLDXCW)。
新的(或修改后的)UDC 文件准备好后,把它复制到 N1MM Logger+/UserDefinedContests 文件夹并启动 Logger。你应当 能在比赛设置(Contest Setup)对话框的比赛列表中看到你的新比赛。测试一下,确保一切按你的计划工作。如果有问题——你甚至可以就在它加载于 Logger 中时继续编辑它。一旦你修改了 UDC 文件的某个参数,只需重新加载该比赛(选择 "File",然后在下拉菜单中选择你的比赛名)。注意:如果在编辑时更改了比赛名,这样做将不起作用。
如果你决定为这个项目出力、再增加一种语言——只需将你的译文添加到空的 [Language..] 节,并把 文件发送到 na3m@arrl.net,以便它被纳入本程序的下一次更新。注意:保存文件时务必使用 UNICODE 编码。
UDC 编辑器不允许你删除参数,但你可以把参数设为"空"。如果这样做,将使用默认值(在本文件中以 * 标记)。你只应使用本文件中列出的取值。目前本编辑器不会检查取值是否正确。错误的取值可能导致 Logger 出现不可预测的行为。某些错误取值可能导致 Logger 显示带有错误参数名的警告消息。
默认情况下,UDC 编辑器不显示"空"参数。Logger 将对它们使用默认值。单击"显示默认值"(Show Default)复选框即可看到它们。此后你可以通过赋予非默认值来编辑它们。不要删除"空"参数——如果该文件被用作另一个比赛的模板,它们可能会派上用场。
如果你打算使用由这些文件定义的比赛,请将你的 .UDC 文件保存在 Documents\N1MM Logger+\UserDefinedContests 文件夹中。如果你试图加载某个先前用过(并已存入当前数据库)的用户自定义比赛,而它的 .udc 文件不在该文件夹中,Logger 将不会启动该比赛,并会显示一条警告消息。
要通过单击 .udc 文件来启动 UDC 编辑器,请右键单击其中一个,依次选择 "Open with"、"Choose program",然后选择 "UDCeditor.exe" 作为此类文件的"推荐程序"。
[Author] 节
_AuthorName_ = 在此填写你的姓名。用户应当知道谁能为这个比赛文件提供帮助。
/Callsign/= 你的呼号
/Email/= 你的电子邮件
[File] 节
/Revision/ = 从 1.0.0 开始。建议每次修改 UDC 文件时都递增此值。
/LastUpdate/ = 如果你创建新文件(使用文件另存为(Save File As…))或编辑当前文件,将自动填入当前日期。
/Description/ = 比赛类型的简短描述(一行)。示例:"Finnish Domestic VHF Contest"
[Contest] 节
/Name/ = 这是将用于比赛设置对话框的短名。最多 10 个字符,不能有空格,只能大写。示例:ARRLDXCW。RTTY 比赛的名称中必须有 RTTY;VHF 比赛名必须以 VHF 开头。
/DisplayName/ = 由你决定,允许空格(最多 50 个字符)。示例:ARRL DX CW
/CabrilloName/ = 由你决定,最多 15 个字符,不允许空格。示例:ARRL- DX-CW 该名称将用于 Cabrillo 文件头
/Mode/ = 有效模式为:CW SSB BOTH RTTY(默认 = CW;如果比赛中所有模式都允许,则用 BOTH)
/DupeType/ = QSO 的重复台检查参数(不是系数)。定义频段、模式和呼号的哪种组合构成重复条目。有效值为 1、2、3、4——默认为 2 1 = 所有频段(比赛中每个台只能联络一次) 2 = 每个频段(每个频段上每个台可联络一次——默认值) 3 = 每个频段与模式(每个频段/模式组合上每个台都可联络,例如 40 SSB、40 CW、40 RTTY) 4 = 不检查(每个频段/模式可多次联络)
也用于系数窗口(Multiplier Window),在分区(Section)窗口中显示模式(当值为 2 或 3 时)。
/Multiplier1Name/ = 见下表
/Multiplier2Name/ = 见下表(如果比赛只识别一种系数类型,则填 N/A)
/Multiplier3Name/ = 见下表(如果比赛只识别一种系数类型,则填 N/A)
CountryPrefix = 每个国家是一个系数 示例:DL、PA 等(使用 WL_CTY.DAT) WPXPrefix = 每个前缀是一个系数 Sect = 每个分区是一个系数(需要加载一个 *.sec 文件,用比赛选择(Contest Selection)窗口中的"导入分区文件"(Import Section File)按钮。下文的 MultWindowType 应与 .sec 文件名以及该文件第一行的 Type 值一致)。.sec 文件名和 MultWindowType 参数的长度都不应超过 9 个字符。 ZN = 每个 CQ 分区是一个系数(最多 40 个) MiscText = 每个杂项文本是一个系数 Continent = 每个大洲是一个系数 GridSquare = 每个网格方框是一个系数 Comment = 每条备注是一个系数 N/A = 没有系数(大多只用 IsMultiplier2 和/或 IsMultiplier3)
/MultSqlString/ = 见下表
/MultSqlString2/ = 见下表(如果比赛只识别一种系数类型,则填 N/A)
/MultSqlString3/ = 见下表(如果比赛只识别一种系数类型,则填 N/A)
MultSqlString = CountryPrefix(新国家将计为一个系数)。允许使用 EU_Country、AS_Country、NA_Country、SA_Country、AF_Country 将系数限制到一个大洲 MultSqlString = Section(新分区将计为一个系数) MultSqlString = WPXPrefix(新 WPXPrefix 将计为一个系数) MultSqlString = N/A(无系数) MultSqlString = Grid(新的 4 字符网格方框将计为一个系数) MultSqlString = CallSign(新呼号将计为一个系数)。注意——使用 MiscText 存储呼号 MultSqlString = SGrid(新的 6 字符网格方框将计为一个系数) MultSqlString = FirstQSO(每个频段(模式)上的第一个 QSO 将计为一个系数) MultSqlString = CallHist(把呼号历史(CallHistory)文件中的呼号计为系数),请确保导入正确的呼号历史文件并打开呼号历史查找。 MultSqlString = Misc(MiscText 中的新值将计为一个系数) MultSqlString = Exchange(Exchange 中的新值将计为一个系数) MultSqlString = CQZONE(新 CQ 分区将计为一个系数) MultSqlString = IARUZONE(新 IARU 分区将计为一个系数)。应使用 MiscText 为每个 QSO 输入并保存 IARU 分区。 MultSqlString = 2LPREFIX(新的 2 字母前缀将计为一个系数)。将使用 MiscText 为每个 QSO 保存 2 字母前缀。只对 CountMultOnlyFor 中的某些前缀有效。 MultSqlString = LASTLETTER(呼号的最后一个新字母将计为一个系数)。将使用 MiscText 为每个 QSO 保存呼号的最后一个字母。 MultSqlString = FIELD 网格或定位符(Locator)的前两个字符将计为一个系数
/Period/ = 比赛为期多少天(目前未使用)。选项为 1 或 2,目前始终为 2
/PointsPerContact/ = 默认 1。可以是任意整数。 你可以在一行中放入多个参数。用逗号分隔每个参数:例如 OH, 5, SM, 5, MyCountry, 1, SameContinent, 2, OtherContinent, 3(与本台所在国或 OH、SM 联络的 QSO 得 5 分,与本国电台联络得 1 分,等等。(注意:国家前缀应与 wl_cty.dat 文件中的一致,若使用则须放在行首) 另一个示例:SSB, 2, CW, 3, DIGI, 4, RTTY, 4, PSK, 5, FM, 2 (SSB 得 2 分,CW 得 3 分,RTTY 得 4 分,依此类推) 再一个示例:160m, 5, 80m, 4, 40m, 3(160m 上的 QSO 得 5 分,依此类推)。在这类条目中,允许的频段为 160m、80m、40m、20m、15m、10m、6m、4m、2m、1.25m、70cm、33cm、23cm、13cm、9cm。该参数的取值可以混用,但如果 QSO 满足两项或更多条件(例如 160m 和 OH),优先级顺序为:频段、模式、大洲、国家。 IsMisc, 3 – 如果 MiscText 中有任何值,则给予的分数 IsComment, 4 – 如果 Comment 中有任何值,则给予的分数 注意:对于 VHF 比赛,该数值将用作系数,即 KM*multiplier。 Exchange, * – 把 Exchange 中输入的数字值用作分值(不要替换 *,只需写 "Exchange, *") Misc, * – 把 Misc 中输入的数字值用作分值(不要替换 *,只需写 "Misc, *") Exch, 3 – 如果 Exchange 中有任何内容,则给予指定的分数(本例中为 3) ExchIsNum, 4 – 如果 Exchange 中为数字值,则给予指定的分数 MiscIsNum, 4 – 如果 Misc 中为数字值,则给予指定的分数 ExchIsNotNum, 5 – 如果 Misc 中的值不是数字,则给予指定的分数 /P, 5 – 如果是便携台,则给予指定的分数(也可使用 /A、/M、/AM、/MM、/QRP、/QRPP) EU, 10 – 对 EU 台给予指定的分数(本例中为 10)(也可使用 AF、AS、AN、SA、NA、OC) SectIs_xxx, nnn – xxx 是一组字符(最多 10 个),nnn 是要给予的分数(例如 SectIs_TB, 7 – TB 分区得 7 分)。注意:如果 PointsPerContact 有多个参数,SectIs_xxx 必须放在最前面。
ExchIs_xxx, nnn 或 ExchIs_xxx, +nnn,其中 xxx 是一个字符串(最多 10 个字符),若 xxx 与 Exchange1Text 中的内容匹配,则 nnn 是要分配的分数。 MiscIs_xxx, nnn 或 MiscIs_xxx, +nnn,其中 xxx 是一个字符串(最多 10 个字符),若 xxx 与 MiscText 中的内容匹配,则 nnn 是要分配的分数。 MyGrid, nnn – 与我的网格相同的 Q 给予 nnn 分(仅限 VHF/UHF 比赛)。 对于(VHF 或非 VHF)比赛,KM 距离可以用表格换算成分数。例如:/PointsPerContact/ = 1/600/10; 601/1200/13; 1201/1800/16; 将把 1 到 600 km 的距离换算为 10 分,601 到 1200 km 换算为 13 分,依此类推。 注意:用 ";" 而不是 "," 来分隔每组 3 个数字。务必至少放一个字符 ";" 才能使其生效。 MyCQZone, n – 如果 CQ 分区与我的相同,则给 n 分(分数可以不同,对 VHF 比赛无效) MyIARUZone, n – 如果 IARU 分区与我的相同,则给 n 分(分数可以不同,对 VHF 比赛无效) ExchIs_Empty, nnn 或 ExchIs_Empty, +nnn,其中 nnn 是 Exchange1Text 字段为空时要分配的分数(可以为 0)。如果该参数还使用了其他参数项,它应放在行首。 ExchIsxxx, nnn 或 ExchIsxxx, +nnn,其中 xxx 是一个字符串(最多 10 个字符),若在 Exchange1Text 字符串中找到 xxx,则 nnn(或 +nnn,如果奖励分应加到其他分数上)是要分配的分数。 示例:PointsPerContact = ExchIs*OB, 15; 来自 RDA OB01-OB53 的任何电台的 QSO 将获得 15 分 SAMECONTINENT+80, n 或 SAMECONTINENT+40, n – 对同大洲在 80 或 40m 上的 QSO 加 n 分 OTHERCONTINENT+80, n 或 OTHERCONTINENT+40, n – 对不同大洲在 80 或 40m 上的 QSO 加 n 分 MyExchange, nnn – 与我的交换内容相同的电台的 Q 给予 nnn 分
/PointsMultAtTimeLocal/ = 0000, 2359, n 本地时间 00:00 到 23:59 之间完成的 QSO,其分数将乘以 n(默认 2)。注意:应使用 24 小时制(不用 AM 或 PM),但不要使用 24:00,改用 23:59。
/PointsMultAtTimeGMT/ = 0000, 2359, n GMT 时间 00:00 到 23:59 之间完成的 QSO,其分数将乘以 n(默认 2)。注意:应使用 24 小时制(不用 AM 或 PM),但不要使用 24:00,改用 23:59。
/PointsMultByMode/ = CW, 3, USB, 2, LSB, 2 以特定模式完成的 QSO,其分数将乘以相应的数字。支持的模式为:CW、USB、LSB、DIGI、RTTY、PSK、FM、AM
/PointsMultByBand/ = 1.8, 4, 3.5, 3, 7, 2(band1, multiplier1, band2, multiplier2, …) 在特定频段上完成的 QSO,其分数将乘以相应的数字。支持的频段为:1.8、3.5、7、14、21、28、50、70、144、222、420、902、1240、2300、3300、… 也支持 WARC 频段。
/PointsMultByContinent/ = MyContinent, 1, OtherContinent, 2 与特定大洲的 QSO,其分数将乘以相应的数字。支持的参数为:MyContinent、OtherContinent、AS、AF、EU、SA、NA、OC
/PointsMultByCountry/ = SV5, 3, SV9, 3 与特定国家的 QSO,其分数将乘以相应的数字。支持的参数为 wl_cty.dat 文件中的所有国家
/PointsMultByCategory/ = QRP, 2 与 /QRP 或 /QRPP 电台的 QSO,其分数将乘以相应的数字。支持的参数为:QRP、QRPP
/ShowMyCountryStations/ = True(默认)或 False True 是 在波段图中显示本国电台(正常) False 否 不在波段图中显示它们
/ShowWarcBands/ = True 或 False(默认) True 是 显示 WARC 频段(仅用于一般日志记录(DX) False 否 不显示 WARC 频段(所有比赛)
/ZoneType/ = CQ(默认)或 IARU CQ* 应显示 CQ 类型分区(适用于大多数比赛) IARU 应显示 IARU 分区
/MultWindowType/ = 见下表(默认为 Section)
State = 美国各州 StateProvince = 美国各州和加拿大各省都是有效条目 Province = 加拿大各省(或 13P) Section = ARRL 分区(或 48S14P, 48SDC14P, 49S8P, 50S8P, 50S10P, 50S13P, 50S13PCY0, 50S14P, 50SDC14P, 50SDC10P, 71SEC13WB, 50SDC13P, 50S13RAC, 50S9P, 50S11P, 50SNOLAB, 50S14PNT… 更多选项见 StatesAndProvinces.sec 文件) Provincie = 荷兰各省(用于 PACC Contest) DOK = DOK 字母 字母:A 到 Z,WAG contest 不用 Q UBA = ON contest Oblast = 俄罗斯各州 AnyName = 准备 AnyName.sec 文件,其中列出各分区(可参考任何 *.sec 示例)。注意:此 NAME 不应超过 9 个字符!
/CQZoneMultContest/ = True 或 False(默认) True 比赛使用 CQ 分区作为第二系数,例如 CQWW False 它不用!(大多如此)
/NumMults/ = 0、1(默认)、2 或 3 0 用于 Field Day 或其他没有系数的比赛 1 用于大多数比赛 2 用于 CQWW(即国家与分区) 3 如果有三个系数
/BonusPoints/ = 允许使用若干个奖励呼号、DXCC 实体、/P、/M 或 /QRP 电台,用逗号分隔奖励台与奖励分。留空 表示没有奖励台或国家。 示例:RM1DZ, 20, RA1DZ, 20, DL, 25, /M, 4, /P, 2, /QRP, 5,IsComment,6, IsMult1,10 IsComment, n:如果 Comment 字段中有任何内容,则给 n 分 IsComment,*:给予 Comment 字段中的分数(如果 Comment 字段中有多个数字,只使用第一个) 如果使用 IsMult1(2,3),它对日志中除最后一个 QSO 之外的所有 QSO 都有效。日志中的最后一个 QSO 只有在手动重新计分后才会给出 BonusPoints。 ExchIs_xxx, nnn,其中 xxx 是一个字符串(最多 10 个字符),用于与 Exch 字段匹配,nnn 是要分配的分数。 MiscIs_xxx, nnn,其中 xxx 是一个字符串(最多 10 个字符),用于与 Misc 字段匹配,nnn 是要分配的分数。 注意:在最终分数计算期间,如果 BonusPoints 不为 0,则 PointsPerContact 的值将被忽略。 如果你希望奖励分加到 PointsPerContact 上,请在数值前加 "+" 字符,例如:BonusPoints =F, +25, F4GVZ, +105, IsComment, +10, IsMult1, +50。 如果你希望奖励分乘以某个系数,请在数值前加 "*" 字符 要把 Comment 字段中的分数加到 PointsPerContact 上,请使用 IsComment, +*;要加上 ExchIs 中的分数,请使用 ExchIs, +nnn。要把 Comment 字段中的分数乘以 PointsPerContact,请使用 IsComment, ** 。
如果使用 IsMult1(2,3),它对日志中除最后一个 QSO 之外的所有 QSO 都有效。日志中的最后一个 QSO 只有在手动重新计分后才会给出 BonusPoints。 ExchIs_xxx, nnn 或 ExchIs_xxx, +nnn,其中 xxx 是一个字符串(最多 10 个字符),若 xxx 与 Exchange1Text 中的内容匹配,则 nnn(或 +nnn,如果奖励分应加到其他分数上)是要分配的分数。 MiscIs_xxx, nnn 或 MiscIs_xxx, +nnn,其中 xxx 是一个字符串(最多 10 个字符),若 xxx 与 MiscText 中的内容匹配,则 nnn(或 +nnn,如果奖励分应加到其他分数上)是要分配的分数 ExchIsNum, n 或 ExchIsNum, +n – 如果 Exchange1 中有任何数字值,则给 n(或 +n)分。 ExchIsNotNum, n 或 ExchIsNotNum, +n – 如果 Exchange1 中没有数字值,则给 n(或 +n)分。 ExchIs_Empty, nnn 或 ExchIs_Empty, +nnn,其中 nnn 是 Exchange1Text 字段为空时要分配的分数(可以为 0)。如果该参数还使用了其他参数项,它应放在行首。 本参数中可以使用模式:例如 SSB, +2, CW, +3, DIGI, +4, RTTY, +10, PSK, +5, AM, +3, FM, +4 ExchIsxxx, nnn 或 ExchIsxxx, +nnn,其中 xxx 是一个字符串(最多 10 个字符),若在 Exchange1Text 字符串中找到 xxx,则 nnn(或 +nnn,如果奖励分应加到其他分数上)是要分配的分数。 示例:PointsPerContact = ExchIs*OB, 15; 来自 RDA OB01-OB53 的任何电台的 QSO 将获得 15 分
/BonusPoints2/ = 分数, 文件名 这允许使用一个包含若干可给予奖励分的呼号的文件。 参数格式:BonusPoints2 = 5, BonusPoints.txt(分数, 文件名)。文件名可以是任意以 *.txt 为扩展名的名称,但该文件必须位于 Logger 主文件夹中。文件中的每个呼号末尾都应有逗号,包括最后一个:
< file starts > Call1, Call2, Call3, …, LastCall, < file ends >
或
< file starts > Call1, Call2, Call3, … LastCall, < file ends >
BonusPoints2 扩展了 BonusPoints,但优先级更高。换言之,如果某个呼号既出现在 BonusPoints 字符串中,又出现在 BonusPoints.txt 文件中,那么将使用 BonusPoints2 分配的奖励分。如果你希望奖励分加到 PointsPerContact 上,请在数值前加 "+" 字符,例如:/BonusPoints2/ = +5, BonusPoints.txt
要为网格指定具体的分数,请使用 BonusPoints2 = (+)1, Grids.txt。文件 Grids.txt 应放在 C:\Users{user}\Documents\N1MM Logger+\SupportFiles 文件夹中,并且应包含一行或多行文本:
Grid1, points1 Grid2, points2 Grid3, points3 …
注意:Grid1、Grid2、Grid3… – 4 字母网格方框。
/DoNotCountMeAsMult/ = True 或 False(默认) True 不将我的国家、分区或 WPX 前缀计入系数 1(取决于 MultSqlString 设置的内容) False 将我的国家、分区或 WPX 前缀计入系数 1。
/DoNotCountMeAsMult2/= True 或 False(默认) True 不将我的国家、分区或 WPX 前缀计入系数 2(取决于 MultSqlString2 设置的内容) False 将我的国家、分区或 WPX 前缀计入系数 2。
/DoNotCountMeAsMult3/= True 或 False(默认) True 不将我的国家、分区或 WPX 前缀计入系数 3(取决于 MultSqlString3 设置的内容) False 将我的国家、分区或 WPX 前缀计入系数 3。
/CountMultOnlyFor/ = 默认为空。将其设为一个或多个来自 wl_cty.dat 文件的国家,使系数只对这些国家生效。 示例:CountMultOnlyFor =G, GW, GM, GI, GD, GU, GJ。不要在此使用太多国家——如果该行过长它可能停止工作,而且还会拖慢计算机。
/CountMultOnlyFor2/ = 与 /CountMultOnlyFor/ 相同,但将应用于系数 2
/CountMultOnlyFor3/ = 与 /CountMultOnlyFor/ 相同,但将应用于系数 3
/DoNotCountMultOnlyFor/ = 默认为空。将其设为一个或多个来自 wl_cty.dat 文件的国家,使系数只对这些国家不生效。示例:DoNotCountMultOnlyFor =G, GW, GM, GI, GD, GU, GJ。不要在此使用太多国家——如果该行过长它可能停止工作,而且还会拖慢计算机。
你还可以使用大洲缩写(NA、SA、EU、AF、OC、AS)
/DoNotCountMultOnlyFor2/ = 与 /DoNotCountMultOnlyFor/ 相同,但将应用于系数 2
/DoNotCountMultOnlyFor3/ = 与 /DoNotCountMultOnlyFor/ 相同,但将应用于系数 3
/CountMultOnlyForSec/ = 默认为空。将其设为一个或多个来自 .sec 文件的分区,使系数只对这些分区生效。示例:CountMultOnlyForSec = MA, MO。不要在此使用太多分区——如果该行过长它可能停止工作,而且还会拖慢计算机。
/CountMultOnlyForSec2/ = 与 /CountMultOnlyForSec/ 相同,但将应用于系数 2
/CountMultOnlyForSec3/ = 与 /CountMultOnlyForSec/ 相同,但将应用于系数 3
/MultiplierBands/ = 1(默认)、2、3 或 4 1 所有 HF 比赛频段 2 所有 HF 频段 3 所有 HF 比赛频段加上 6 米和 2 米 4 所有 VHF 频段
/QsoErrorString/ = 记录 QSO 之前将根据此设置检查交换内容字段 Numeric – 只允许数字(如序号)最多 12 个字符,空字段将被接受。 Numeric_not_Empty – 同上,但不接受空字段。 Any – 数字和字母均可(最多 12 个字符),空字段将被接受。 Any_not_Empty – 同上,但不接受空字段。
注意:上述属性仅适用于字段 EXCHANGE1TEXT、MISCTEXT、COMMENTTEXT 和 NAMETEXT。
Note2:对于 RcvNrText 只能使用 "Any_Not_Empty" 或 "Any" 为了更灵活,你可以放入多个值(用逗号分隔!),例如:Exchange1Text_Any_not_Empty, CommentText_Any, MiscText_Numeric …
Grid – 网格方框文本,4 或 6 个字符,不接受空字段。 如果不是上述任何一项,请填入一些文本(例如 "XXXX"),以便只接受 XXXX.sec 文件中列出的交换内容(XXXX 最多 9 个字符)。 添加 _or_Empty(例如 Sect_or_Empty)以同时允许空字段和 .sec 文件中列出的交换内容。 如果此参数留空,则不检查(任何内容包括空字段都将被接受,最多 12 个字符)
/EntryWindowInfo/ = 下表中的录入窗口(Entry Window)项目列表,每一项后跟一个表示字段宽度的数字
示例:SNTText, 500, SntNrText, 700, RCVText, 500, Exchange1Text, 500
下表列出可能(Entry Window)的项目,以及通常使用的宽度。
名称 宽度 最大长度 说明 SNTText 450 10 发送交换内容字段 RCVText 450 15 接收交换内容字段(默认为 59 或 599) NameText 855 20 姓名字段,只允许字母 CommentText 1695 60 备注字段,允许空格,所以这里用 SPACE 作制表符不起作用!! SntNrText 625 5 发送的后续序号字段,由程序自动编号 RcvNrText 625 5 接收的后续序号字段,只允许数字!! Exchange1Text 615 12 交换内容字段,数字和字母均可。(必须用于分区(Section),建议用于分区(Zone),参见下文 FrameText 的说明) GridSquareText 600 6 网格方框的文本框 MiscText 600 15 杂项文本框 SectText 600 15 分区文本框
/FrameText/ = SntRpt SntNR RcvRpt NR 这些是显示在录入窗口(Entry Window)各字段顶部的名称(呼号除外)。通过在此行中添加/删除空格来调整框架文本的字段名和间距。允许任何名称。
注意:如果你想从 wl_cty.dat 文件预填正确的分区(它将显示在 Exchange1Text 字段中),请在 ZoneType 参数中使用 "CQ" 或 "IARU"(例如:ZoneType =CQ),并在 FrameText 中放入 "CQZone" 或 "IARUZone"(例如:FrameText =SntRST RcvRST CQZone)。
/LogInfo/ = 下列日志窗口(Log Window)项目列表,每一项后跟一个表示字段宽度的数字
SentReport, SentNR, ReceiveReport, NR, IsMultiplier1, IsMultiplier2, CountryPrefix, GridSquare, Exchange1, MiscText, Points, opname, Comment, SectionText
示例:SentReport, 500, SentNR, 500, ReceiveReport, 500, NR, 500, Points, 500
Comment:通过添加/删除相关名称和长度来调整日志窗口的字段名和间距(只允许列表中的名称)
/DefaultContestExchange/ =(默认为 001) 它将显示在比赛选择(Contest Selection)窗口中供编辑。它可以有两部分或三部分,如下所示:"001 Prov"、"001 NA123"。如果第一部分是 001,Logger 将为每个 QSO 生成一个序号,第二部分将由 F2 发送且数字不变
Last2L – 将发送交换内容设为 RS(T) + 前一个呼号的最后 2 个字母("/" 之后的任何内容都将被忽略)。在 F2 宏中使用 {SENTRST} 发送 RST 和最后 2 个字母。在 EntryWindowInfo 参数中添加 GridSquareText,以便在屏幕上显示 RS(T) + 最后 2 个字母(在 SSB 模式下可能有用)。注意:使用此交换内容时,{SENTRSTCUT} 将不会在 RST 中发送缩短数字。 LastCallSuff – 将发送交换内容设为 RS(T) + 前一个呼号的后缀("/" 之后的任何内容都将被忽略)。在 F2 宏中使用 {SENTRST} 发送 RST 和前一个呼号的后缀。不要在 EntryWindowInfo 参数中使用 GridSquareText 在屏幕上显示后缀,因为这会破坏 ESM。注意:使用此交换内容时,{SENTRSTCUT} 将不会在 RST 中发送缩短数字。
不要为了在屏幕上显示后缀而在 EntryWindowInfo 参数中添加 GridSquareText——这会破坏 ESM。 它可以与序号组合使用,即可以使用 DefaultContestExchange = 001 LastCallSuff;不要在宏文件中使用 {EXCH}。
/IsWorkable/ = 从下列列表中选择(默认为 Any) Any, MyContinentOnly, NAonly, SAonly, EUonly, ASIAonly, AFonly, OConly, MyCountryOnly, ExceptMyCountry,或用逗号分隔的国家列表(来自 wl_cty.dat 文件的前缀):UA2, UA, UA9。在最后一种情况下,请确保使用正确的前缀
/SpecialInstructions/ = 特殊说明。由 CR/LF 终止的任意文本 此消息将在生成 Cabrillo 文件后显示——可用 它给操作员留一条备注。如果不需要,请将其留空。
/DupeSqlString/ = 0(默认)、1、2、3 或 4 选择一个能唯一标识重复台的子句: 0- 关闭它, 1 – 使用分区, 2 – 使用 ExchangeText 中的任何内容, 3- 使用模式(这将允许与同一电台但不同模式(CW、SSB、FM、AM)的 QSO 4- 使用网格方框;这对于你可能有位于不同县的移动电台的 QSO 聚会是必需的。
/StartOfContest/ = 见下文 示例 7, 1.5 第一个数字——星期几(Saturday=1、Sunday=2、Monday=3、…..、Friday=7)第二个数字——相对于 GMT 时间的小时偏移量(1.5 = 1 小时 30 分钟),即如果比赛在 00.00 GMT 开始,偏移量应为 0。这将用于计算停机时间。
/EndOfContest/ = 1, 1.5 格式与 StartOfContest 相同。这将用于计算停机时间
/IsMultPer/ = 0(默认)、1、2、3 或 4 0 NoMults 1 OncePerBand 2 OncePerMode 3 OncePerBandAndMode 4 OncePerContest
/IsMult1Per/ = 同上,但只影响系数 1 /IsMult2Per/ = 同上,但只影响系数 2 /IsMult3Per/ = 同上,但只影响系数 3
/MinimumOffTime/ = 最短停机时间,以分钟计(默认 = 30)
/UsesWAECountries/ = True 或 False(默认) 回答此比赛是否使用 WAE 国家列表(在 cty.dat 中带 '*' 的国家)。例如,对于 CQWW 应设为 True
/SetSentTimeForContact/ = True 或 False(默认) 用于在需要它的比赛中设置发送时间(Sent Time)。用法参见 CBARGT
/ScoreSummaryMultNames/ = Sec、Cty 或 Grd 用于设置得分汇总(Score Summary)中系数(Mult)列标题
/WebAddress/ = 比赛规则的网址(目前不可用) 示例:http://www.srr.ru/CONTEST/cup\_raem\_engl\_08.php
/CabrilloFormat/ = 0、1(默认)、2、3、4、5 或 99 0 = 不支持 Cabrillo 1= 标准格式 2 = NAQP 格式 3 = NASPRINT 格式 4 = SS(Sweepstakes)格式 5 = RFC(Russian Federation Cup)格式 99 = 手工编码,使用 CabrilloString(见下文)
/CabrilloString/ = 格式:值1 名称, 值1 宽度, 值2 名称, 值2 宽度, … 适用于:SNT, SentNr, CallSign, RCV, RcvNr, Comment, GridSquare, Exchange1, Name, SentExch, SentExchPart1, SentExchPart2, SentExchPart3 示例:SNT, 4, SentNr, 4, CallSign, 13, RCV, 4, RcvNr, 4, Comment, 40
要添加若干空格,请使用 Space, N(N – 空格数)
/GenericPrintString/ = 这将配置可用于替代 Cabrillo 的通用文件输出。 格式:值1 名称, 值1 宽度, 值2 名称, 值2 宽度, … 适用于:SNT, SentNr, CallSign, RCV, RcvNr, Comment, GridSquare, Exchange1, Name, Points, SentExch, SentExchPart1, SentExchPart2, SentExchPart3, Multiplier1, Multiplier2, Multiplier3。 示例:SNT, 4, SentNr, 0, CallSign, 15, RCV, 4, RcvNr, 0, Comment, 12
/GenericPrintStringHeader/ = 表头文本 根据 GenericPrintString(上文)中的值调整此处名称和空格数 示例:Date Time Freq Mode MyCall RST Snt Call RST Rcvd Comment
/QsoNumbersByBand/ = 0(默认)、1 或 2 0 = 使用单一的 QSO 编号序列(默认) 1 = 所有组别的 QSO 编号按频段 2 = 仅多人多机组别的 QSO 编号按频段
/DigitalModeSqlString/ = True 或 False(默认) True 用于将 RTTY 和 PSK 合并为一种数字比赛模式
/MultipleSessions/ = 多时段信息 如果比赛时间未划分为多个时段,请将其留空 示例:0000/30 – 从 00:00 UTC 开始,时段 = 30 分钟 0000/60 – 从 00:00 UTC 开始,时段 = 60 分钟 0000/200 – 从 00:00 UTC 开始,时段 = 2.00 小时 如果比赛在任意其他整点开始且时段小于或等于 60 分钟,则比赛开始时间可以使用 0000。新时段开始时将允许重复台。新时段开始时将允许重复台,且系数窗口将在新时段的首次联络时清零。最短时段长度为 10 分钟。
注意:TOUR 命令——极少数比赛允许多个时段,你可以在每个时段中联络同一电台并获得 QSO 计分。 你可以在录入窗口中输入 TOUR 代替呼号,以便在比赛前或比赛中的任何时间重置重复台检查。 此命令有 2 个必需参数,输入到发送 RST(Sent RST)字段中,用正斜杠 "/" 分隔。第一个参数是当前时段开始的时间(GMT) 第二个参数是时段的持续时间。两个参数的格式均为 hhmm。例如,1200/30 表示时段从 1200Z 开始,持续 30 分钟。 持续时间参数的最小值为 5(5 分钟)。如果输入 TOUR 命令时不带任何参数,将显示开始时间和持续时间的当前值。 默认值为 0000/00。在每个时段开始时,开始时间和持续时间将显示在录入窗口(Entry Window)底部的状态字段中。 在新时段中记录第一个 QSO 之后,你应当看到系数窗口重置,而且重复台也会为新时段重置。 Logger 支持的大多数比赛不需要此命令,但有些比赛(主要是俄罗斯和乌克兰的比赛)已将其内置于比赛模块中,不需要手动输入。 如果你打算在其他比赛中使用 TOUR 命令,请记住 Logger 重启时该命令的设置将会丢失。 如果录入窗口中未显示 Snt(发送 RST)字段,你应当可以使用 EW 中的 MiscText、Exchange1Text、SectionText 和 NameText 字段。
/ResetMultsEverySession/ = 0(默认)或 1 当使用 MultipleSessions 时,如果设为 1,此参数将允许在每个新时段开始时重置系数。
/ResetSNEverySession/ = 0(默认)或 1 当使用 MultipleSessions 时,如果设为 1,此参数将允许在每个新时段开始时重置序号。
/CabrilloVersion/ = 2.0(默认)或 3.0 当设为 3.0 时,日志文件将使用 Cabrillo 格式 3.0 版保存。此外,比赛配置窗口中将出现新字段。任何其他值或留空都将启用 Cabrillo 2.0 版
/MultMult/ = 0 或 1(默认)
/MultMult2/ = 0 或 1(默认)
/MultMult3/ = 0 或 1(默认)
当这 3 个值中的任何一个改为 0 时,该系数将不用于得分计算。当你只需要系数用于显示目的(波段图(Bandmap)和可用窗口(Available windows))时,这很有用。
/BandChangesPerPeriod/ = 每个时段换频段次数的限制(默认 10000) ~–此参数已不再使用。请用下文列出的换频段计时器/计数器新参数替换它~ – 当设为较小的数字(例如 5)时,录入窗口(Entry Window)底部将出现关于换频段次数接近限制的提醒。此外,你随时可以将光标移到交换内容框架(位于呼号框架右侧)上来查看已经换频段多少次。内部换频段计数器会在 /MultipleSessions/ 参数设置的每个时间段开始时重置。此参数要生效并不需要设置 /MultipleSessions/ 参数。在这种情况下,将用整个比赛时间来计算换频段次数。注意:内部换频段计数器会在 Logger 每次重启时重置。
/SingleOpCountableBandChange/ = True 或 False(默认) 如果设为 TRUE,信息窗口(Info window)中的换频段计数器将对单人组启用。
/MultiOpCountableBandChange/ = True 或 False(默认) 如果设为 TRUE,信息窗口中的换频段计数器将对多人组启用。
/CountBandOrModeChange/ = True 或 False(默认) 如果设为 TRUE,信息窗口中的换频段计数器将同时统计换频段和换模式。
/SOBandChangeCountMax/ = 单人组允许的换频段次数(默认 0 = 不施加限制)。 如果 CountBandChangesPerContest 或 CountBandChangesPerPeriod 未设为 TRUE,换频段次数将按自然小时统计。
/MOBandChangeCountMax/ = 多人组允许的换频段次数(默认 0 = 不施加限制)。 如果 CountBandChangesPerContest 或 CountBandChangesPerPeriod 未设为 TRUE,换频段次数将按自然小时统计。
/CountBandChangesPerContest/ = True 或 False(默认) 如果设为 TRUE,换频段计数器在整个比赛期间将永不重置。
/CountBandChangesPerPeriod/ = True 或 False(默认) 如果设为 TRUE,换频段计数器将在每个比赛时间段/时段重置(参见 MultipleSessions 参数)。
/SOBandChangeTimerDuration/ = 单人组电台必须在新频段上停留的分钟数(默认 0 = 无时间限制)。 如果 >0,换频段计时器将显示在信息窗口中。
/MOBandChangeTimerDuration/ = 多人组电台必须在新频段上停留的分钟数(默认 0 = 无时间限制)。 如果 >0,换频段计时器将显示在信息窗口中。
注意:只有当 xxxxCountableBandChange 参数设为 true 且 xxBandChangeCountMax 设为大于 0 的值时,计数器才会显示在信息窗口中。 当计时器设为大于 0 的值时,它将显示在信息窗口中。要看到计数器或计时器中的新值,你应当在新频段上完成一次 QSO,这正是计数器与计时器的启动方式。计时器将倒计时,告诉操作员还必须在这个新频段上停留多长时间;计数器将统计所有换频段次数,并根据其值改变背景颜色(如果为最大值-1,将显示黄色;如果等于最大值,将显示红色)。
/UsesLASTEXCHmacro/ = True 或 False(默认 False) 回答此比赛是否在 .mc 文件中使用 {LASTEXCH}(如果你打算使用宏 {LASTEXCH},它应为 True)。 注意:在录入窗口(Entry Window)中使用 MiscText 记录接收交换内容,并在 CabrilloString 中使用带 Misc 的 LastExch(参见 FRN_CN_US.udc 示例)
/DupeQSOMinutesAgo/ = AllowableTime, CompareToSecond, IgnoreBand, InfoStatus, ThisMode(示例:DupeQSOMinutesAgo = 10, True, False, True, False)
AllowableTime(数字),在此分钟数之后才允许与同一电台的 QSO(0 将禁用此 UDC 参数) CompareToSecond(默认 = True),如果设为 False,则根据分钟计算距上次 QSO 的时间,丢弃秒数。 IgnoreBand(默认 = False),如果设为 True,则不分频段搜索重复台 QSO。 InfoStatus(默认 = True),如果设为 True,过早尝试建立 QSO 将在信息窗口中显示此消息:"CallSign worked nn minutes ago"。 ThisMode(默认 = False),如果设为 False,则不分模式搜索重复台 QSO。 注意:/DupeType/ 应设为 4 才能使此参数正常工作。波段图中的台情每 30 秒扫描一次以重绘呼号(如果该台可以再次联络,则将灰色改为蓝色或红色)。
/PowerMult/ = QRPP, 5, QRP, 3, LP, 2, HP, 1(这是一个示例,数字可以不同)
根据比赛配置窗口中选择的电台功率组别,将得分乘以指定的系数。
/OverlayCategory/ = ""*
向比赛设置(Contest Setup)窗口的下拉菜单中的附加组别(Overlay)添加非标准名称。
/SelfSpotAllowed/ = False
当设为 True 时,此参数允许在 UDC 中使用 {SPOTME} 宏