0
私はCanFestivalに基づいてCANバスクライアントアプリケーションを呼び出そうとしています。CanFestival readNetworkDict()が失敗する
私はCANサーバreadNetworkDict(から読み取ろう)次のコード
offset = d->firstIndex->SDO_CLT;
lastIndex = d->lastIndex->SDO_CLT;
if (offset == 0) {
MSG_ERR(0x1AC6, "No SDO client index found for nodeId ", nodeId);
return 0xFF;
}
に失敗し、これが私の辞書にSDO_CLTです。
const quick_index GoldTwitter_firstIndex = {
3, /* SDO_SVR */
0, /* SDO_CLT */
4, /* PDO_RCV */
5, /* PDO_RCV_MAP */
6, /* PDO_TRS */
7 /* PDO_TRS_MAP */
};
私はいくつかの基本的な質問があります。
SDO_CLTとは何ですか?
辞書生成に問題があることを示しているか、実行時に初期化する必要がありますか?
を...?このエラーは、ネットワーク上の他のノードのオブジェクト辞書にpingを実行するために使用するSDOを理解していないクライアントに関係していると思います。設定されていない可能性があります。ご使用のノードまたは通信しようとしているノードのエラーが報告されていますか?この特定のCANopenスタックの経験はありません。 – Lundin
SDOクライアントは、SDO操作の実行に使用される「コンテキスト」です。通常、オブジェクト辞書(@JMA answerで示すように)で静的に定義したり、writeLocalDict()で同じ情報を書き込んで動的に定義します。 – ntd