2010-08-22 51 views
1

我使用ControllerMate与运行Snow Leopard的iMac上的Nostromo(Belkin)n52(不是te版本)Speedpad。使用ControllerMate的循环LED模式

官方的SpeedPad配置软件不能运行在Tiger之外,或者至少它不会在Sno​​w Leopard上运行,因为kext未能正确加载,因此尝试使用ControllerMate。

官方的SpeedPad配置软件能够为每个“页面”加载1个唯一的密钥组,其中有4页。这最终导致我能够完成第一页上的基本键映射,第二页上的按键组合,第三个宏按键等操作,并为我的音乐播放器设置了一些全局快捷键,并将相同的快捷键绑定到Speedpad的最后一页。

页面由设备上当前点亮的LED表示;
没有LED亮/红色LED亮/绿色LED亮/蓝色LED亮

我试图使用ControllerMate的逻辑功能来重新创建相同的行为。单击绑定到此例程的按钮将使LED以上面列出的顺序开始循环,最终在没有LED打开的情况下围绕并重新启动。

我将尽我所能解释这一点,以便这里的编程/逻辑的基本原理可以由任何个人在这里可行地回答,但我可能会失败,并且您可能需要先熟悉ControllerMate: P.

ControllerMate为您提供了一个网格,您只需将对象拖入其中。这是一个可视化编程画布。例如,我的Canvas目前有4个块;

诺史莫SpeedPad 2
键盘左Alt

这是对应于上述DPAD大橙色按钮键。它在Canvas上,所以我可以将其他元素转储到其中,并从中获取元素。 这是一个基本的输入/输出系统与捕捉元素。

Num Lock键

Caps Lock键

滚动锁定

这些代表的指示灯。当这些块打开时,SpeedPad上的相关LED亮起。

例如,如果我将一个锁定块或全部锁定块直接连接到LeftAlt块,则按下SpeedPad上的“LeftAlt”按钮打开一个/所有LED灯,持续时间为举行。

ControllerMate实际上已经解释“块”,并展示他们的样子在http://www.orderedbytes.com/controllermate/help/?show=blocks

逻辑块我一起工作的一个美妙的指南如下:


NOT
OR
XOR
接通/切断门
ON/OFF锁存
1:2选择
切换

大多数这些不言自明了,但为了以防万一,他们都没有,请参考上面的链接,以获得特定块参考(我的代表处目前阻止我。链接上述每个元素)。

我在想我会成功地使用一系列的切换和门,但我还没有完全能够正确地将它们互连,以便始终如一地表现在一个完美的调用循环中。

奖励积分如果你真的很喜欢它(你会得到一个只接受主要问题的承诺答案,承诺!): 不仅每个LED线性开/关,而且完全排列所有开/关组合;
全部关闭
红灯亮蓝色关闭绿色关闭
红灯亮蓝在绿色关闭
红灯亮蓝关绿色在
红灯亮蓝色亮绿灯亮
红色关闭蓝在绿色关


如果任何有合适的代表的人可以创建/添加“ControllerMate”标签到这个问题,我一定会很感激。

回答

0

我想到了这一切,这是相当长的时间。让我们把它分解成几个不同的主题;

(1)键绑定/键表示

(2)使用的块

(3)逻辑

首先,我设置了一个简单的键重映射,但例如失败,因为按压Speedpad将输入它的原始映射(q)和我定义的重映射(w)。我开始爬过ControllerMate论坛,并且我偶然发现了一对好友的帖子,这将比起很容易找到的.cmate定义文件做出更好的出发点,但我离题...

将我的头发撕掉寻找我错过的设置,程序偏好,或者你有什么,我在论坛上看到,并遇到一个伟大的线程。读完之后,我拿了30秒和disabled all the buttons for the "keyboard" palette portion and the "mouse" palette portion that didn't actually exist

这意味着禁用除15个数字键外的所有键,再加上橙色键,再加上键盘部分的dpad,并禁用鼠标部分的所有鼠标键。我将把这个新的地图文件发送给Ken(ControllerMate开发人员)。

这样做后,命名键是一个健全的,所以他们正确地表示为他们被标记的键,重映射按预期工作。 Speedpad 只能输入我的重映射密钥w,没有别的!

第一步终于完成了。

第二和第三,我坐下来想出了LED任务的创造性解决方案;

我正好使用上述逻辑块的。我使用元块(Key块,组块)和数学。

当按下橙色拇指按钮时,“累加器”程序段从0运行到3,每按一次步进1。

该累加器有3个出口,每个出口到减法块。第一个减法块减1,第二个减2,第三个减3。

所有这些减法块直接连接到“值选择器”。如果该值为零,则该特定选择器开启。因此,当我按下橙色按钮一次时,累加器提供的值为1,该值为所有减法器,但更具体地说,控制红色LED的那个减1,总计为0,所以它是值选择器启用,它启用“Num Lock”(红色 LED)指示灯。

LED插座连接到一个常数值块(再次,-1减法堆栈连接最终提供恒定值1,-2减法堆栈最终以2的恒定值结束,-3变为3

所有这三个恒定值区块都进入一系列4个加法区块,红色LED /常量1有四个输出,对于所有四个加法区块,蓝色LED /常量2有四个输出到所有四个加法块和绿色LED /常量3 [...]

然后,可以在画布上放置配置页面,在这种情况下,我将“重新映射”页面移动到画布上,并将其附加到添加 - >期望0值选择或块,意味着如果加法等于零,则该特定值选择器开启。当所有LED都关闭时,上半部分恒定值块被禁用,并且不提供其特定值。

现在,我只需要弄清楚绑定到其他三种模式,我是如此拼命工作。

ControllerMate Canvas的图片;
http://vxjasonxv.com/images/ControllerMateSC2.png