私は主に National Instruments の Labwindows CVI をコンパイラとして使用しています。
デバイスへのインターフェイスを作成する必要があり、すべての異なるレジスタの構造体の外観を作成する道を歩み始めました。
// Interface.h
typedef enum Color{
White,
Black,
Blue
};
typedef struct Register1{
int Bit1:1;
int Bit2:2;
Color col;
} Register1;
// Interface.c
BuildSendMessage(Register1 temp)
{
unsigned int iTemp;
iTemp = temp.Bit1 << 7 + temp.Bit2 << 5 + temp.col;
}
// sample.c
Register1 reg1;
reg1.Bit1 = 0;
reg1.Bit2 = 1;
reg1.col = White;
// Pass to function where message is built up
BuildSendMessage(reg1);
次に、呼び出し元の関数に構造体を入力し、その構造体を関数に渡します。ここで、すべてのビット シフトを行い、アドレスなどをメッセージに追加して、通信インターフェイス経由で送信します。
これを改善することはできますか? さらに情報を隠して、構造体に関数を設定する必要がありますか? 私は多くの読書をしてきましたが、これは間違いなくいくつかの改善に役立つ可能性があります.