gpt4 book ai didi

c# - Synaptics 触控板签名

转载 作者:太空宇宙 更新时间:2023-11-03 11:04:24 25 4
gpt4 key购买 nike

我想使用 Synaptics SDK 来使用触摸板来捕获签名。我正在尝试捕捉触摸的绝对 X 和 Y 位置,以便我可以跟踪人们抬起手指并将其放在其他地方。我知道我可以访问触摸板,因为我可以禁用它并访问触摸板的尺寸。

下一步是获取绝对 X 和 Y 坐标。根据Synaptics PS/2 TouchPad Interfacing Guide (第 22 页)有一个“绝对模式”,我可以在其中获取此信息。到目前为止,我似乎无法访问它。我不知道如何将其设置为该模式。

我正在使用 C# 在 Visual Studio Express 2012 中进行开发。

此外,我似乎无法激活任何事件。我正在尝试注册这样的事件:

using SYNCOMLib;
using SYNCTRLLib;

SYNCTRLLib.SynAPICtrl SynAPICtrl1 = new SynAPICtrl();
SYNCTRLLib.SynDeviceCtrl SynDeviceCtrl1 = new SynDeviceCtrl();
SYNCTRLLib.SynDisplayCtrl SynDisplayCtrl1 = new SynDisplayCtrl();

SynAPICtrl1.OnNotify += SynAPICtrl1_OnNotify;
SynDeviceCtrl1.OnPacket += SynDeviceCtrl1_OnPacket;
SynDisplayCtrl1.OnMessage += SynDisplayCtrl1_OnMessage;

我的函数只是将函数名称记录到控制台:

private void SynDisplayCtrl1_OnMessage(SynDisplayMessage eMessage)
{
Console.WriteLine("SynDisplayCtrl1_OnMessage");
}

private void SynAPICtrl1_OnNotify(SynNotificationReason eReason)
{
Console.WriteLine("SynAPICtrl1_OnNotify");
}

private void SynDeviceCtrl1_OnPacket()
{
Console.WriteLine("SynDeviceCtrl1_OnPacket");
}

这些函数都不会被调用(或者至少控制台中不会记录任何内容)。我对 Visual Studio 和 C# 还很陌生,所以解决方案可能非常简单。

提前致谢!

编辑:这是 Synaptics SDK 的链接以防万一。

最佳答案

我关注了 this site 上的信息并将其转换为以下 C#。

在我的代码顶部:

using SYNCOMLib;
using SYNCTRLLib;

在我的功能之外,所以它们是全局的

SynAPICtrl SynTP_API = new SynAPICtrl();
SynDeviceCtrl SynTP_Dev = new SynDeviceCtrl();
SynPacketCtrl SynTP_Pack = new SynPacketCtrl();
int DeviceHandle;

在我的构造函数中

SynTP_API.Initialize();
SynTP_API.Activate();
DeviceHandle = SynTP_API.FindDevice(new SynConnectionType(), new SynDeviceType(), 0);
SynTP_Dev.Select(DeviceHandle);
SynTP_Dev.Activate();
SynTP_Dev.OnPacket += SynTP_Dev_OnPacket;

最后是处理事件的函数

private void SynTP_Dev_OnPacket()
{
if (SynTP_Dev.LoadPacket(SynTP_Pack) == 1)
{
Console.WriteLine(SynTP_Pack.FingerState);
Console.WriteLine(SynTP_Pack.X);
Console.WriteLine(SynTP_Pack.Y);
}
}

我将更改一些变量名称以使它们更直观一些,但这段代码工作得很好。

关于c# - Synaptics 触控板签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16442480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com