.NET プラットフォーム用 Python である IronPython のベータ版を、マイクロソフトが公開した。.NET のライブラリは開発言語を問わず、.NET のコードから呼び出すことができる。C# で書いたクラスライブラリを、Visual Basic .NET から呼び出せる。
IronPython で NI-DAQmx というI/Oデバイス用の .NET API を呼び出してみた。A/D変換ボード 2 チャンネルから電圧を測定して、CSV ファイルに書き込むコードは以下のとおり。ちなみに、NI-DAQmx はハードウェアなしでも動作するが、インストーラが数百メガバイトあるので、わざわざダウンロードしないように。
"""continuous.py
Instruction:
1. Save this file under IronPython folder.
2. In command prompt, navigate to IronPython folder, then type
IronPythonConsole.exe continuous.py
3. You will have a file "foo.csv" which contains the acquisition result.
"""
import clr
clr.AddReferenceToFile(r"C:\Program Files\National Instruments\MeasurementStudioVS2003\DotNET\Assemblies\Current\NationalInstruments.DAQmx.dll")
from NationalInstruments.DAQmx import *
task = Task()
task.AIChannels.CreateVoltageChannel("Dev1/ai0:1",
"",
AITerminalConfiguration.Differential,
-10,
10,
AIVoltageUnits.Volts)
task.Timing.ConfigureSampleClock("",
1000,
SampleClockActiveEdge.Rising,
SampleQuantityMode.ContinuousSamples,
1000)
reader = AnalogMultiChannelReader(task.Stream)
f = file("foo.csv", "w")
task.Start()
for i in range(20):
data = reader.ReadMultiSample(10)
for x in range(10):
print $gt;>f, data[0,x], ",", data[1,x]
task.Stop()