您的位置:首页 > 其它

【极简版GH60】【GH60剖析】【八】增加一键输入密码(邮箱)功能

2016-02-28 18:21 483 查看
有一些高频率的输入字符串,我们可以写入到源代码中,让键盘可以替我们输入,比如说我们的密码、我们的用户邮箱等等,这样可以提高我们的效率。

我们先看看K大给的文档,里面有

Build firmware

--------------

### 1. Open terminal

Open terminal window to get access to commands. Use Cygwin(or MingGW) `shell terminal` in Windows or `Terminal.app` on Mac OSX. In Windows press `Windows` key and `R` then enter `cmd` in 'Run command' dialog showing up.

### 2. Change directory

Move to project directory in the firmware source.

cd tmk_keyboard/{'keyboard' or 'converter'}/

### 3. Make

Build firmware using GNU `make` command. You'll see `_.hex` file in that directory unless something unexpected occurs in build process.

里面很清楚地讲解了制作固件的步骤。

第一步,打开调试终端,在Windows下面就是打开cmd,然后第二步就是cd到tmk_keyboard/{'keyboard' or 'converter'}/这个目录,比如说GH60就是\tmk_keyboard_custom-master\keyboard\gh60这个目录。

然后使用make -f Makefile.clean

make -f Makefile.

命令就可以生成一个_.hex文件,我们就可以把它烧录进去了。

我们可以看到GH60下面有keymap_hhkb.c等很多keymap_打头的c文件,我们把下载得到的c文件加上_xxx后缀就好了,然后放到GH60目录下面。

Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document(you can find in top README.md)
and existent keymap files.

To build firmware binary hex file with a certain keymap just do `make` with `KEYMAP` option like:

$ make KEYMAP=[poker|poker_set|poker_bit|plain|hasu|spacefn|hhkb|]

按照文档里面的说法,我们只需要 $ make KEYMAP =就可以了。

回到

[1] = ACTION_MACRO(),
[2] = ACTION_MACRO(),
[3] = ACTION_MACRO(),

这三条语句,我们需要给他们加上自己写的函数、

首先在keyboard文件夹下面搜索ACTION_MACRO,找到一个keymap_hasu.c里面有这个语句使用,

[8] = ACTION_MACRO(ALT_TAB),                      // Application switching

//  [x] = ACTION_MACRO(HELLO),                          // Macro: say hello

//  [x] = ACTION_MACRO(VOLUP),                          // Macro: media key

/*

* Macro definition

*/

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)

{

switch (id) {

case HELLO:

return (record->event.pressed ?

MACRO( I(0), T(H), T(E), T(L), T(L), W(255), T(O), END ) :

MACRO_NONE );

case VOLUP:

return (record->event.pressed ?

MACRO( D(VOLU), U(VOLU), END ) :

MACRO_NONE );

case ALT_TAB:

return (record->event.pressed ?

MACRO( D(LALT), D(TAB), END ) :

MACRO( U(TAB), END ));

}

return MACRO_NONE;

}

照猫画虎:

[1] = ACTION_MACRO(PASSWORD1),
[2] = ACTION_MACRO(MAIL),
[3] = ACTION_MACRO(PASSWORD2),

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)

{

switch (id) {

case PASSWORD1:

return (record->event.pressed ?

MACRO( I(0), T(H), T(E), T(L), T(L), W(255), T(O), END ) :     //密码改T()括号里面的字符,下同

MACRO_NONE );

case MAIL:

return (record->event.pressed ?

MACRO( I(0), T(H), T(E), T(L), T(L), W(255), T(O), END ) :

MACRO_NONE );

case PASSWORD2:

return (record->event.pressed ?

MACRO( I(0), T(H), T(E), T(L), T(L), W(255), T(O), END ) : 

MACRO_NONE );

}

return MACRO_NONE;

}

这里我使用了两个密码,一个邮箱名,大家按自己所需改T()

case MAIL:

return (record->event.pressed ?

MACRO( I(0), T(p), T(a), T(l), T(e), T(2), T(5), T(2), T(6), T(@), T(f), T(o), T(x), T(m), T(a), T(i), T(l), T(.), T(c), T(o), W(255), T(m), END ) :

MACRO_NONE );

我不知道这个W(255)等待时间是要每隔4个等待一次还是最后等待一次就可以了,现在先试一下最后等待一次,这里我的邮箱是pale2526@foxmail.com,大家可以看到。

然后我发现在Windows下面用cmd或者powershell都出报错,看了make还需要在linux或者缺少什么组件,待研究待更
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  DIY GH60