FT232のbit bang modeをC#で使うための関数など調査した。 C#のコードを探したんだけど、適当なものがない。
FTDIのサイトからC#のwrapperのソースコードが入手できたので、それからの予想。 必要な関数は、以下の6個だと思う。
デバイスのOpen
private FT_STATUS tFT_Open(UInt32 index, ref IntPtr ftHandle)
baud rateの設定
private FT_STATUS tFT_SetBaudRate(IntPtr ftHandle, UInt32 dwBaudRate)
Bit bangモード設定
private FT_STATUS tFT_SetBitMode(IntPtr ftHandle, byte ucMask, byte ucMode)
(ucMaskで入出力を設定。 ucModeでモードを設定
非同期bit bangモード public const byte FT_BIT_MODE_ASYNC_BITBANG = 0x01;)
デバイスのリセット
private FT_STATUS tFT_ResetDevice(IntPtr ftHandle)
データの書き込み
private FT_STATUS tFT_Write(IntPtr ftHandle, byte[] lpBuffer, UInt32 dwBytesToWrite, ref UInt32 lpdwBytesWritten)
lpdwBytesWrittenは書き込んだバイト数
クローズ
private FT_STATUS tFT_Close(IntPtr ftHandle)
手順としては、
①tFT_Openでデバイスをオープン ftHandleにハンドルを取得
②tFT_SetBaudRateでボーレートを設定
③tFT_SetBitModeで出力ピンと非同期モードを設定
④tFT_ResetDEviceでリセット
⑤tFT_Writeでデータの送信
⑥データの送信が終わったらtFT_Closeでデバイスのクローズ
エラー処理とかは、とりあえず省略。 こんなんで、うまくいくかな..。