打开网络接口驱动程序意味着什么?

时间:2016-04-08 02:10:09

标签: networking network-programming drivers .net-micro-framework network-interface

要使用GHI网络接口驱动程序,我们首先需要调用Open()。打开网络接口意味着什么? The documentation除了需要方法调用之外什么也没说。

E.g。

var wiFiRs9110 = new WiFiRS9110(
    SPI.SPI_module.SPI2,
    GHI.Pins.G120.P1_10,
    GHI.Pins.G120.P2_11,
    GHI.Pins.G120.P1_9, 4000);

wiFiRs9110.Open(); // What does this do?

wiFiRs9110.EnableStaticIP(IpAddress, SubnetMask, GatewayAddress);

1 个答案:

答案 0 :(得分:1)

你可以想象一块硬件在使用之前需要进行一些初始化。

他们可以选择在构造函数中集成Open()的代码,在Close()方法中集成Dispose(),但随后:

  • 所有影响如何硬件/驱动程序/类初始化的参数必须在构造函数中传递(事件处理程序在这里是一个很好的例子,你不想错过第一个事件)
  • 你不能"发布" (或Close())网络界面而不处理对象,因此如果您想再次访问它,则必须再次将相同的参数传递给新实例
  • 如果出现任何问题,构造函数将不得不抛出异常。在传递无效参数时让构造函数抛出更有意义,并且在硬件没有响应时抛出Open()方法更有意义。

还有一些不那么明显的问题"开始"构造函数中的某些东西,可能不适用于这些驱动程序:

  • 接口无法定义构造函数,因此界面不能完全代表您尝试构建的内容
  • 当继承一个"启动"的类时从构造函数中,如果你想以"以不同的方式开始",则没有父构造函数可以调用