如何使用C#从嵌入式系统(Windows CE 6.0)中的设备接收自定义消息
本文关键字:自定义消息 何使用 嵌入式 系统 CE Windows | 更新日期: 2023-09-27 17:57:35
我有一个连接了指纹传感器的设备。该设备运行的是windows CE 6.0。我目前正在使用C#为该设备开发一个应用程序。
我的问题是:
我使用pInvoke初始化与传感器的通信。然而,我仍然困惑于如何配置我的应用程序,以便在触摸传感器时实现。换句话说,如何在应用程序中捕获由传感器触发的事件。
非常感谢任何建议。
**更新(当我点击关闭窗口按钮时,试图自动告诉我的表单该做什么)
public partial class Form1 : Form
{
internalMessageWindow msgReceived;
public Form1()
{
InitializeComponent();
this.msgReceived = new internalMessageWindow(this);
}
private void Form1_Load(object sender, EventArgs e)
{
msgReceived.MsgEvntArg += new EventHandler<MessageGetEvent>(messageWindow_MsgEvntArg);
}
void messageWindow_MsgEvntArg(object sender, MessageGetEvent e)
{
MessageBox.Show(e.message.ToString());
}
}
public class MessageGetEvent : EventArgs
{
private Message _message;
public MessageGetEvent(Message msg)
{
_message = msg;
}
public Message message
{
get { return _message; }
}
}
public class internalMessageWindow : MessageWindow
{
public const int WM_CLOSE = 0x0010;
Form referedForm;
public event EventHandler<MessageGetEvent> MsgEvntArg;
public internalMessageWindow(Form referedForm)
{
this.referedForm = referedForm;
}
protected override void WndProc(ref Message msg)
{
if (MsgEvntArg != null)
MsgEvntArg(this, new MessageGetEvent(msg));
//switch (msg.Msg)
//{
// // If message is of interest, invoke the method on the form that
// // functions as a callback to perform actions in response to the message.
// case WM_CLOSE:
// if (MsgEvntArg != null)
// MsgEvntArg(this, new MessageGetEvent(msg));
//
// break;
//}
base.WndProc(ref msg);
}
}
您应该提供更多关于传感器以及它如何连接到板/处理器的信息。它可能需要一个驱动程序(例如,如果它是通过USB连接的),或者你可能需要了解应该使用哪个接口和驱动程序来交换信息。如果是UART,windows CE提供标准API,如果是另一条总线(I2C、SPI等),您可能需要了解如何与总线驱动程序接口(一些公司提供应用程序库来实现这一点)。