创建托管驱动
创建托管驱动
我们今天来介绍一下,如何来使用.net MF来创建与各种硬件设备通讯的托管的驱动程序。
托管驱动是通过标准的工业连接器与硬件通讯的类。 例如, 你可以创建托管驱动通过GPIO,i2c,让你的程序与硬件平台通讯。
托管驱动的主要目标是通过连接进行信息的交换。
例如:一个通过GPIO连接的按键的驱动表示一个按键的状态,当我们点击这个键时,它会通知.net MF关于这个按键的事件,
你的应用程序也会得到这个按键的消息。
我们来看下面的例子:
public class Button : IDisposable
{
protected InterruptPort m_interruptPort;
//--//
public Button( Cpu.Pin pin, GPIOInterruptEventHandler callback )
{
m_interruptPort = new InterruptPort( pin, true, Port.ResistorMode.PullUp, Port.InterruptMode.InterruptEdgeLow );
if(callback != null)
{
m_interruptPort.OnInterrupt += callback;
}
}
public Cpu.Pin Id
{
get
{
return m_interruptPort.Id;
}
}
public void Dispose()
{
m_interruptPort.Dispose();
}
}
这个类提供了一个为按键连接GPIO引脚的驱动。当应用程序调用按键的构造器时,它必须明确引脚的参数来确认是哪个引脚与这个按键通讯。
应用程序中也实现了回调函数中也实现了相应的参数。当按键按下时,.net mf自动调用回调函数。应用程序通过回调函数来反应按键按下的事件。
如上例所述,托管驱动必须管理输入与输出来实现设备与连接的通讯。
如果某设备通过I2C连接,那么你的驱动将从你的应用程序中接收命令。驱动将会解释这此命令,并把它们发送硬件的引脚并执行它们。如果这个解释的过程需要从引脚返回某此状态
那么驱动将会把这此返回信息发送到你的应用程序。