2009年09月30日

FT245RL VB2005サンプル

FT245RL VBサンプル

秋月電子さんで扱っている 「USB-パラレル変換モジュール FT245RL」 は
簡単に外部装置とのI/O接続ができる便利なモジュールです。
これは、従来数万円出さないと手に入らなかった一般的なI/Oボードの代わりにもなります。


試作するために、秋月電子さんから簡単なVisualBasicのサンプルも提供されています。
が、本当に始めての方にはわかりづらいかもしれませんし、現在は、VisualBasic 2008が主流になりつつあるので、そのままのサンプルでは使いづらいかもしれません。

今回は、VisualBasic 2005にて、出力だけの更に簡単なサンプルを作ってみました。
オリジナルプロジェクトを、VisualBasic 2005 のアップデートウイザードで変換後、
Module1.bas 内の 「Declare Function」で一部 「as Any」 を 「as Integer」 に修正しました。
また、メインフォーム内ではコントロール配列がらみの変更も行っています。

記事 「FT245RL VB2010サンプル」 はこちら 右http://micom.hamazo.tv/e7047623.html


Option Strict Off
Option Explicit On

Friend Class frmUsbPara
    Inherits System.Windows.Forms.Form
   
    Dim ftstatus As Integer
    Dim lngnumDevs As Integer
    Dim strDescription As New VB6.FixedLengthString(256)
    Dim strSerialNumber As New VB6.FixedLengthString(256)
   
   
    '----------------------------------------------------------------------------------------------------
    Private Sub CMD_FT_Close_Click()
        If FT_Close(lngHandle) <> FT_OK Then Exit Sub
    End Sub
   
    '----------------------------------------------------------------------------------------------------
    Public Sub CMD_FT_Open_Click()
        Me.LoggerList.Items.Clear()
       
        '----------------------------------------------------------------------------------------------------
        FT_Close(lngHandle)
       
        '----------------------------------------------------------------------------------------------------
        If FT_GetNumDevices(lngnumDevs, vbNullString, FT_LIST_BY_NUMBER_ONLY) <> FT_OK Then
            LoggerList.Items.Add("FT_ListDevices failed status = " & ftstatus)
            Exit Sub
        Else
            LoggerList.Items.Add("Number of devices=" & lngnumDevs)
        End If
       
        '----------------------------------------------------------------------------------------------------
        If FT_ListDevices(0, strDescription.Value, FT_LIST_BY_INDEX Or FT_OPEN_BY_DESCRIPTION) <> FT_OK Then
            LoggerList.Items.Add(("ListDevices failed"))
            Exit Sub
        Else
            LoggerList.Items.Add(("Description " & strDescription.Value))
        End If
       
        '----------------------------------------------------------------------------------------------------
        If FT_ListDevices(0, strSerialNumber.Value, FT_LIST_BY_INDEX Or FT_OPEN_BY_SERIAL_NUMBER) <> FT_OK Then
            LoggerList.Items.Add(("ListDevices failed"))
            Exit Sub
        Else
            LoggerList.Items.Add(("Serial Number " & strSerialNumber.Value))
        End If
       
        '----------------------------------------------------------------------------------------------------
        If FT_Open(0, lngHandle) <> FT_OK Then
            LoggerList.Items.Add("FT_Open Failed status=" & ftstatus)
            Exit Sub
        Else
            'LoggerList.AddItem "FT_Open OK"
        End If
       
        '----------------------------------------------------------------------------------------------------
        If FT_SetBaudRate(lngHandle, 9600) <> FT_OK Then
            LoggerList.Items.Add("FT_SetBaudRate Failed status=" & ftstatus)
            Exit Sub
        Else
            'LoggerList.AddItem "FT_SetBaudRate OK"
        End If
       
        '----------------------------------------------------------------------------------------------------
        If FT_SetBitMode(lngHandle, &HF0s, 1) <> FT_OK Then
            LoggerList.Items.Add("FT_SetBitMode Failed status=" & ftstatus)
            Exit Sub
        Else
            'LoggerList.AddItem "FT_SetBitMode OK"
        End If
       
        If FT_SetBitMode(lngHandle, &HFFs, 1) <> FT_OK Then '全出力ポートへ
            Exit Sub
        End If
    End Sub
   
   
    '----------------------------------------------------------------------------------------------------   
    Private Sub OutputPort(ByRef tmp As Byte)
        On Error Resume Next
       
        Dim tp_byte(0) As Byte
        Dim i As Integer
       
        tp_byte(0) = tmp
        If FT_Write(lngHandle, tp_byte(0), 1, lngBytesWritten) <> FT_OK Then Exit Sub
       
        For i = 0 To 7
            If tp_byte(0) And (2 ^ i) Then
                Me.Label_Led(i).ForeColor = Color.Red
            Else
                Me.Label_Led(i).ForeColor = Color.WhiteSmoke
            End If
        Next
    End Sub
   

    '----------------------------------------------------------------------------------------------------
    Private Label_Led() As System.Windows.Forms.Label

    Private Sub frmUsbPara_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
        CMD_FT_Open_Click()

        'コントロール配列の作成
        Me.Label_Led = New System.Windows.Forms.Label(8) {}

        'コントロールの配列にインスタンスを代入
        Me.Label_Led(0) = Me.Label0
        Me.Label_Led(1) = Me.Label1
        Me.Label_Led(2) = Me.Label2
        Me.Label_Led(3) = Me.Label3
        Me.Label_Led(4) = Me.Label4
        Me.Label_Led(5) = Me.Label5
        Me.Label_Led(6) = Me.Label6
        Me.Label_Led(7) = Me.Label7

        OutputPort(CByte(NumericUpDown1.Value))
    End Sub
   
   
    '----------------------------------------------------------------------------------------------------
    Private Sub frmUsbPara_FormClosed(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        CMD_FT_Close_Click()
        Me.Close()
        End
    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




タグ :FT245RLVB2005

同じカテゴリー(Windowsアプリ開発)の記事
ノートPC充電80%制御
ノートPC充電80%制御(2017-10-21 00:33)


上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

削除
FT245RL VB2005サンプル
    コメント(0)