pcANYWHERE 8.0国际键盘支持与通信协议概述.pdfVIP

pcANYWHERE 8.0国际键盘支持与通信协议概述.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

pcANYWHERE8.0版本(Mako)扩展了国际键盘支持,并解决了许多键盘问题。本文档包含pcA远

程端与主机之间键盘通信协议的概述。同时,还列出了需要处理的一些特殊情况。

Mako之前的主机仅依靠键盘扫描码信息来合成按键。主机和键盘类型由用户在程序安装期间识

别。同时,还必须安装相应的键盘驱动程序。使用扫描码映射表(TERM.CPP中的ScanCD[][]),只要

键盘类型不同,端就会根据键盘类型将给定的扫描码转换为对应的主机扫描码。如果键盘类型相同,

则不进行映射。虽然这种方法对大多数键有效,但某些重要的组合键(如IME和Kana切换)并不总是

有效。此外,日文Kana模式要求某些键更改其映射。

Mako版本新增了对VK代码的支持。VK代码是一种更佳的传输键盘数据的方式,因为它了一种与键盘

驱动程序无关的方式来表示特定的按键组合。只要主机为Mako或更新版本,即可处理VK代码数据包。当

前在支持DBCS的系统上支持的键盘类型包括:US101、日文106、日文NEC、韩文103。

设备通过一组预定义的序列与主机通信。每个序列包含一个字节(Leadinbyte),一个序

列类型标识字节,随后是特定序列的数据。例如,一个ACK序列的格式如下:0x6F(Leadin),0x06

(ACK),0x11(被确认的序列号)。有关非键盘序列的完整列表,请参考SEQUENCE.DOC文件。

键盘扫描码由设备直接发送给主机,而无需打包成序列。例如,如果用户在PC上输入‘abc’,则发送给主

机的扫描码字节如下:0x1E(‘A’键按下扫描码),0x9E(‘A’键释放扫描码),0x30(‘B’键按下),0xB0

(‘B’键释放),0x2E(‘C’键按下),0xAE(‘C’键释放)。对于扩展键(右Alt、右Ctrl、Insert、

Delete、Home、End、PageUp、PageDown),第一个(按下)扫描码之前会有一个扩展键字节(0xE0)。

因此,如果用户按下右Alt键,发送给主机的字节如下:0xE0(扩展键字节),0x38(Alt键按下扫描码),

0xB8(Alt键释放扫描码)。请注意,目前无法发送扫描码0x6F,这会使主机误认为是序列而非键盘数据。幸运的是,

键盘不会生成该扫描码。

为了解决日语和韩语键位映射问题,需要将VK代码发送到主机。决定不将VK代码打包成序列(以保持发

送到主机所需字节数最少)。VK代码以3字节包的形式发送到主机。第一个字节是VK代码字节,第二

个字节是选项字节,第三个字节是实际的VK代码。例如,右Alt键按下发送的VK代码包如下所示:0xE2

_

(VK代码字节),0x06(标志:扩展、键按下、Alt按下),0x12(VKMENU键码)。这里有一个

小问题,因为VK代码可能需要是0x6F(与序列字节相同)。为克服此问题,端会将0x6F的VK代

码转换为0。主机知道将其视为预期的VK代码(0x6F)。同样重要的是,标志字节不会是0x6F。为防

止这种情况,决定不使用标志字节的第6位(正如SCANCODE.H中选项位定义注释中所述)。

Mako主机当前VK代码数据包接收状态:(1)VK代码检测状态,(2)期望VK代码标志字节状态,

(3)期望VK代码状态。(参见AWHSEQ项目,SEQINPUT.CPP文件,KeyboardHandler()方法)。

VK代码前导字节表示VK代码数据包的开始。随着每个附加字节的接收,VK数据包状态将递进。一旦

完整数据包被接收,主机将使用VKCodeHandler()和StuffVKCode()方法合成按键。

pcANYWHERE8.0release(Mako)hasexpandedinternationalkeyboardsupportandhasaddressedanumberof

keyb

文档评论(0)

ericxiao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档