0

要使用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

您可以想象一塊硬件在使用之前需要一些初始化。

他們可能選擇的代碼在構造Open()Close()Dispose()方法整合,但後來:

  • 影響如何硬件/驅動器/類初始化所有參數必須在構造函數中傳遞(事件處理程序在這裏是一個很好的例子,你不想錯過第一個事件)
  • 你不能「釋放」(或者Close())網絡接口而不處理對象,所以如果你想再次訪問它,你必須再次將相同的參數傳遞給新的實例
  • 如果出現任何問題,構造函數將不得不拋出異常。在傳遞無效參數時拋出構造函數會更有意義,並且在硬件沒有響應時拋出一個Open()方法。

也有一些不太明顯的問題,從構造方法中的「啓動」的東西,這可能並不適用於這些驅動程序:

  • 接口不能定義構造函數,所以接口就不能完全代表什麼你試圖構建
  • 當從構造函數中繼承「開始」的類時,如果要「以不同的方式啓動」,則沒有父構造函數可以調用