メニュー
▼ アクセス(地図)
▼ Windowsアプリ開発 ▼ マイコン開発 ▼ CGI・PHP制作 |
▼ サイトマップ(全投稿記事)
▼ タイトル(画像一覧) ▼ 事業内容 |

お問い合わせメールフォームが開きます。
2016年09月22日
FT245RL VB2010サンプル

久々にUSB-パラレル変換基板(AE-FT245RL)を使用することになり、以前の記事を見直したのですが、若干わかりずらい感じがあったので再度投稿しておきたいと思います。
以前の記事

今回はVisualBasic2010で動作確認しました。
フォームは下記のように最小限のオブジェクトを配置。

【ソースコード Module1.vb】
Module Module1
Public Declare Function FT_ListDevices Lib "FTD2XX.DLL" _
(ByVal arg1 As Integer, ByVal arg2 As String, ByVal dwFlags As Integer) As Integer
Public Declare Function FT_GetNumDevices Lib "FTD2XX.DLL" Alias "FT_ListDevices" _
(ByRef arg1 As Integer, ByVal arg2 As String, ByVal dwFlags As Integer) As Integer
Public Declare Function FT_Open Lib "FTD2XX.DLL" _
(ByVal intDeviceNumber As Short, ByRef lngHandle As Integer) As Integer
Public Declare Function FT_Close Lib "FTD2XX.DLL" _
(ByVal lngHandle As Integer) As Integer
Public Declare Function FT_SetBaudRate Lib "FTD2XX.DLL" _
(ByVal lngHandle As Integer, ByVal lngBaudRate As Integer) As Integer
Public Declare Function FT_SetBitMode Lib "FTD2XX.DLL" _
(ByVal lngHandle As Integer, ByVal intMask As Byte, ByVal intMode As Byte) As Integer
Public Declare Function FT_GetBitMode Lib "FTD2XX.DLL" _
(ByVal lngHandle As Integer, ByRef intData As Integer) As Integer
Public Declare Function FT_ResetDevice Lib "FTD2XX.DLL" _
(ByVal lngHandle As Integer) As Integer
Public Declare Function FT_Write Lib "FTD2XX.DLL" _
(ByVal lngHandle As Integer, ByRef lpszBuffer As Byte, ByVal lngBufferSize As Integer, ByRef lngBytesWritten As Integer) As Integer
Public Declare Function FT_Read Lib "FTD2XX.DLL" _
(ByVal lngHandle As Integer, ByRef lpszBuffer As Byte, ByVal lngBufferSize As Integer, ByRef lngBytesReturned As Integer) As Integer
Public Const FT_OK As Short = 0
Public lngHandle As Long
Public lngBytesWritten As Integer
End Module
------------------------------------------------
【ソースコード Form1.vb】
Public Class Form1
Public Function CMD_FT_Open() As Boolean
Dim ftstatus As Short
FT_Close(lngHandle)
ftstatus = FT_Open(0, lngHandle)
If ftstatus <> FT_OK Then
LoggerList.Items.Add("FT_Open Failed status=" & ftstatus)
Return False
End If
'----------------------------------------------------------------------------------------------------
ftstatus = FT_SetBaudRate(lngHandle, 9600)
If ftstatus <> FT_OK Then
LoggerList.Items.Add("FT_SetBaudRate Failed status=" & ftstatus)
Return False
End If
'----------------------------------------------------------------------------------------------------
'D0~D3を出力、D4~D7を入力に設定
ftstatus = FT_SetBitMode(lngHandle, &HFS, 1)
If ftstatus <> FT_OK Then
LoggerList.Items.Add("FT_SetBitMode Failed status=" & ftstatus)
Return False
End If
CMD_FT_Open = True
End Function
Private Sub InputPort()
Dim ftstatus As Short
Dim tp_byte As Byte
ftstatus = FT_GetBitMode(lngHandle, tp_byte)
If ftstatus <> FT_OK Then
LoggerList.Items.Add("FT_GetBitMode Failed status=" & ftstatus)
Else
LoggerList.Items.Add("FT_GetBitMode OK (" & tp_byte & " )")
End If
LoggerList.SelectedIndex = LoggerList.Items.Count - 1
End Sub
Private Sub OutputPort(ByRef tmp As Byte)
Dim ftstatus As Short
Dim tp_byte(0) As Byte
tp_byte(0) = tmp
ftstatus = FT_Write(lngHandle, tp_byte(0), 1, lngBytesWritten)
If ftstatus <> FT_OK Then
LoggerList.Items.Add("FT_Write Failed status=" & ftstatus)
Else
LoggerList.Items.Add("FT_Write OK (" & tmp & " )")
End If
LoggerList.SelectedIndex = LoggerList.Items.Count - 1
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
InputPort()
End Sub
Private Sub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown1.ValueChanged
OutputPort(CByte(NumericUpDown1.Value))
End Sub
Private Sub Form1_FormClosed1(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
FT_Close(lngHandle)
End
End Sub
Private Sub Form1_Load_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.LoggerList.Items.Clear()
CMD_FT_Open()
End Sub
End Class