2012-02-23 16 views
-1

Visual C++を使用してLACボードにコマンドを送信しようとしています。 LAC Configの6ページでは、バッファが3バイトのパケットで送信されると記載されています。3バイトパケットでデータを送信

Buffer[0]=Control 

Buffer[1]=Data Low 

Buffer[2]=Data High 

これはどういう意味ですか、これらの値をそれぞれどのように設定する必要があるのでしょうか?

おかげ

答えて

1

あなたが読めば、あなたはそれが次の表示されますが、それらのそれぞれの詳細な説明に続いて、すべての制御コードのリストを、来ます。このマニュアルでは、おそらくウェブサイトのどこかにサンプルコードがあると述べています。

一般に、値を設定するのはちょっと難しいです。​​は、おそらく0から255の値しか保持できないことを意味する符号なし8ビットデータ型に解決されるtypedefまたはマクロです.2バイトは最大65535の値を表すことができます。ただし、 255の場合は、それを上位バイトと下位バイトに分解する必要があります。これは次の方法で行うことができます。

unsigned int value = 512; 
BYTE low_byte = 0xff & value; 
BYTE high_byte = value >> 8; 
+0

yeaコントロールコードが表示されます。バッファ[0]を制御コードに設定すると、バッファ[0] = 0x03またはバッファ[0] = SET_ACCURACYのような処理をしますか?他の2つのバッファ値はどのように設定されますか?彼らが持っているサンプルコードはLabViewのコードですが、Visual C++を使っています...私は呼び出して、彼らにはC++の例はないと言いました... – moesef

+0

@moesef:これは制御コード 'SET_ACCURRACY'が値 '1 '(' 0x01'は '1'のためのちょうど16進数です)。そしてそれは 'buffer [0]'に入ります。データ部分は、マニュアルで説明されているように、各コマンドに固有です。 –

+0

のように、リニアアクチュエーターにマニュアルのように途中まで伸ばしたいと思ったら、私は 'Buffer [0] = 0x20;バッファ[1] = 512;バッファ[2] = 512; '?しかし、 'BYTE Buffer [3]'ならば、intは正しいバイトに変換されますか?これは私が欲しいものですか?助けてくれてありがとうBTW。 – moesef

関連する問題