このアプリケーションは、組み込み制御および監視システム用のWindowsベースのC#ユーザーインターフェイスです。列挙型を使用してビット配列をインデックス化する
組み込みシステム(C言語で記述)は、c#アプリケーションに送信するフォールトのテーブルを保持します。障害テーブルは、各障害ごとに1ビットを含み、構造内に格納されます。私は、今
typedef struct
{
BYTE FaultsIAmNotInterestedIn0[14];
BYTE PowerSupplyFaults[4];
BYTE FaultsIAmNotInterestedIn1[5];
BYTE MachineryFaults[2];
BYTE FaultsIAmNotInterestedIn2[5];
BYTE CommunicationFaults[4];
}FAULT_TABLE;
:のみ、私たちが興味を持っているフォールト・ビットの数がありますので、構造が以下のように表すことができる - 今すぐユーザーインターフェーステーブルの観点から、ややまばらです私が興味を持って各故障ビットインデックスにできるようにしたいCIでこれを行うために列挙を使用します。
typedef enum
{
FF_PSU1 = offsetof(FAULT_TABLE,PowerSupplyFaults)*8,
FF_PSU2,
FF_PSU3,
FF_PSU4,
FF_PSU5,
FF_PSU6,
FF_PSU7,
FF_PSU8,
FF_PSU9,
FF_PSU10,
FF_PSU11,
FF_PSU12,
FF_PSU13,
FF_MACHINERY1 = offsetof(FAULT_TABLE,MachineryFaults)*8,
FF_MACHINERY2,
FF_MACHINERY3,
FF_MACHINERY4,
FF_MACHINERY5,
FF_MACHINERY6,
FF_MACHINERY7,
FF_MACHINERY8,
FF_MACHINERY9,
FF_MACHINERY10,
FF_COMMS1 = offsetof(FAULT_TABLE,CommunicationFaults)*8,
FF_COMMS2,
FF_COMMS3,
FF_COMMS4,
FF_COMMS5,
FF_COMMS6,
FF_COMMS7,
FF_COMMS8,
FF_COMMS9,
FF_COMMS10,
FF_COMMS11,
FF_COMMS12,
FF_COMMS13
}FAULT_FLAGS;
は、私は同様の列挙を作成することができます方法は、データ構造に基づいて、ありますC#?
.netのどのバージョンあなたはameworkを使用しますか? –