跳至內容
測試伺服器
開發伺服器

緩衝區擷取不完整:錯誤 3774873620 GX 狀態 0xe1000014#

這個錯誤相當常見,但通常可以迅速修正。要修正此錯誤,請依照以下步驟操作:

  1. 將封包大小調整為 1500。
  2. 請逐步增加該數值,直到出現所述的錯誤為止。
  3. 將數值調低至一個穩定值。

這不會影響幀率,但能提升資料傳輸的穩定性與效率。

相機上的「封包大小」與網卡上的「幀」或「MTU」是同義詞。巨幀(Jumbo Frames)是指大於 1500 位元的封包。從歷史上來看,

  • 10BaseT 以太網每封封包最多支援 576 位元組,
  • 100BaseT 支援每封封包 1500 位元組,且
  • 理論上,千兆乙太網路每封封包最多可支援 16000 位元組。

其好處在於,當封包較大時,CPU 需要解包的封包數量較少,因此 CPU 負載也較低。

但一個常見的問題是,不同的網路介面卡(NIC)和交換器支援的封包大小各不相同,且傳輸品質往往也有所差異。因此,找出最理想的封包大小取決於系統本身。

  • 如果封包大小過小,則交換機或網路介面卡(NIC)內建的緩衝區可能會被淹沒,導致封包遭丟棄。
  • 如果封包大小過大,交換機或網路介面卡(NIC)可能無法支援,並會將該封包丟棄。

無論哪種情況,當封包被丟失時,Basler 的驅動程式會偵測到此狀況,並要求攝影機重新傳送該封包。但若問題嚴重,即使如此仍無法成功,該封包便會永久遺失。這將導致「緩衝區抓取不完整 - 3774873620 GX 狀態 0xe1000014」的錯誤。

通常而言,當處理天然包含大量資料的大型影像時,約 500 的封包大小會過小。而且我們發現,除了我們的相機之外,鮮少有裝置支援 16000 位元的封包。因此,從 1500 開始通常是個不錯的做法。若您發現 CPU 負載高於預期,可以適度提高此數值。

其他提示:

  • 在pylon API 中,我們提供了一些函式,可用於檢查統計資料,例如丟失的封包數量、重新傳送的封包數量等。監控這些資料會非常實用。
  • 您也可以啟用 AutoPacketSize 相機中的參數,它將嘗試自行協商出一個可行的封包大小。

返回知識文章