==75757677787980818276IOCはdrvAsynI2Cを使って電圧レジスタを読み込むだけのお手軽仕様で。デフォルトのまま変えないで、BusVoltageレジスタを読み込むだけのIOCを作成。通常測定で使用するレジスタは以下のようになっている。datesheet]を参照。===9293RELEASEファイルは、使用するドライバサポートを追加。$(EPICS_BASE)/../modules/instruments/bbb/drvAsynI2C99}}}100101I2Cを使うので対応したものを設定。===105106プロトコルファイルはdrvAsynI2Cの例題にあったものをコピーして使用。"%02r";124}125}}}126127始めは、実験時にi2cgetで取得できたように、リトルエンディアンのデータが出力されるかと思ったが、データは普通の値として取得できたので、エンディアン変換等の後処理をする必要はなかった。===130131DBファイルは、streamdeviceでレジスタを読み込んで、電圧変換するだけ。[[br]]132一応、configurationレジスタの設定も作成してあるが、いまのところ使っていない。===170171src/MakefileにDBDとlibを設定する。===187188st.cmdは、送信先のデバイスを{{{drvAsynI2CConfigure}}}にするだけで、いつものstreamdeviceと時と同じ。===221222make後にst.cmdを実行するが、I2Cデバイスへのアクセスは通常はrootでしか許可されていないので、IOCの起動はrootで実行する必要がある。[[br]]223もしくは専用のユーザーを作成し、I2Cデバイスへのアクセスを許可する設定をするしかないが、今回はrootで実行する。224225IOCを起動後、cagetしてみる。[[br]]226入力電圧は、3.3V電源。2693233}}}234235テスタの読み値で3.37Vなのでほぼ同じ。