1

BACnet Proxyおよびエージェントを実行するとMasterDriver、次のエラー メッセージが表示されます。

master_driver.driver エラー: デバイス名の取得に失敗しました: RuntimeError('Device communication aborted: segmentationNotSupported')

誰かがこのエラーを解決するのを手伝ってくれますか?

4

1 に答える 1

1

BACnet には、メッセージのサイズにサイズ制限があります。メッセージ サイズには、BACnet 仕様に基づくいくつかの異なる有効な値があります。デバイスがいずれかのデバイスでサポートされているサイズを超えるメッセージを送信する必要がある場合、メッセージを小さな断片に分割することがあります。これが機能するには、両方のデバイスがセグメンテーションをサポートしている必要があります。サポートしていない場合、表示されているエラーが発生します。

このエラーの原因は、スクレイピングされているデバイスがセグメンテーションをサポートしていないことと、ドライバーによって一度にスクレイピングされるポイントの数 (デフォルトではすべてのポイント) により、送信または受信のいずれかでセグメンテーションを回避するには大きすぎるメッセージが作成されることです。

BACnet ドライバーは現在、手動セグメンテーションをサポートしており、ドライバーで構成されているポイント数を減らすことなく、このデバイスの制限を克服しています。BACnet デバイス構成の driver_config セクションで max_per_request 設定を設定できます。設定はデバイスごとであるため、影響を受けるすべてのデバイスに max_per_request を含める必要があります。典型的な値は 20 です。エラーが続く場合は、より低い値を試してください。

BACnet ドライバーの将来の機能強化として、このケースを自動検出し、理想的な max_per_request 値を自動的に設定することが計画されています。

編集

max_per_request 引数が VOLTTRON 3.0 の後に追加されたことにも言及する必要があります。3.5RC1 または開発ブランチのいずれかを実行する必要があります。

于 2016-08-15T22:19:09.750 に答える