1.dll の配置場所配布時はプログラムの実行フォルダーへ配置 2. 開発環境での使用 プロジェクトのプロパティーで [USBPIO.dll] を参照追加してください 開発環境 dll ファイルの場所 VB.Net Express Edition 境プロジェクトのフォルダ \bin\release VB.Netebugビルドの場合プロジェクトのフォルダ \bin\debug VB.Net Releaseビルドの場合プロジェクトのフォルダ \bin\release 3. クラスライブラリの利用方法 変数の定義 MY_BENDER_IDとMY_PRODUCT_IDはハードウェアーで異なります デバイスの初期化 [hid_ini] デバイスのリセット [hid_reset] Result = USBPIO.hid_reset(HIDHandle) デバイスの デバイスのクローズ デバイスのクローズ [hid_close] USBPIO.dll の使用方法 Public Class Form1 Public Const MY_VENDER_ID As Short = &H4D8 Public Const MY_PRODUCT_ID As Integer = &HF0B8 Public Const INVALID_HANDLE_VALUE As Integer = -1 Public Const DBT_DEVICEREMOVECOMPLETE As Integer = &H8004 Public Const DBT_DEVICEARRIVAL As Integer = &H8000 Public Const WM_DEVICECHANGE As Integer = &H219 Dim HIDHandle As Integer Dim Result As Boolean '----------------------------------------------------------------------------- Dim USBPIO As New USBPIO.Class1() 'USBPIO(USBPIO.dll) USB 装置を初期化する目的のUSB 装置はベンダー IDとプロダクトIDで識別する引数 1:OPENしたいUSB 装置のベンダー ID 4 桁の16 進数引数 2:OPENしたいUSB 装置のプロダクトID 4 桁の16 進数返り値 :USB 装置のハンドル該当するIDのUSB 装置が無ければFalse USB 装置をリセットする引数 1:USB 装置のハンドル Integer USB 装置を CLOSE する引数 1:USB 装置のハンドル Integer 返り値 : 該当する ID の USB 装置が無ければ False USBPIO.hid_close(HIDHandle) USB 装置の着脱通知を登録 [hid_register_notification] USB 装置が取り外されたとき そのお知らせがこのプログラム宛に来るように登録する引数 1: 通知するクラス通常はメインフォームでよいので Me.Handle を渡せばよい返り値 : 正常終了は True 異常終了は False USBPIO.hid_register_notification(Me.Handle) USB 装置の着脱通知を解除する [hid_unregister_notification] 通常はプログラムを終了せるときに呼び出す USBPIO.hid_unregister_notification
着脱された USB 装置が自分の USB 装置であるかを調べる [hid_mydevice_notification] 通常はプログラムを終了させるとき 脱着時に呼び出す引数 1: 通知メッセージ返り値 : 自分 True 自分でない False USBPIO.hid_mydevice_notification(m) デバイスバッファーへの出力 [hid_out] USB 装置へ出力する引数 1:USB 装置のハンドル Integer 引数 2: 出力ポート 1~8 Integer 引数 3:ON/OFF 0 1 Integer 返り値 : 正常終了は True 異常終了は False Result = USBPIO.hid_out(HIDHandle, 1~8, 0) または Result = USBPIO.hid_out(HIDHandle, 1~8, 1) デバイスバッファーからの入力 [hid_inp] USB 装置から入力する引数 1:USB 装置のハンドル Integer 返り値 :XXXXString 1~4 をビットで返します 1:ON 0:OFF デバイスバッファーからのアナログ入力 [hid_inpa] USBPIO.dll の使用方法 USB 装置からアナログ入力する引数 1:USB 装置のハンドル Integer 引数 2: アナログチャンネル 0,1,2,3,4 Integer (AN0,AN1,AN2,AN3,AN4 から入力します ) value = USBPIO.hid_inpA(HIDHandle,0~4) LCD の初期化 [lcd_ini] 液晶表示器の初期化処理引数 1:USB 装置のハンドル Integer Result = USBPIO.lcd_ini(HIDHandle) LCD の消去 [lcd_cls] 液晶表示器の表示をすべて消去してカーソルを HOME へ移動引数 1:USB 装置のハンドル Integer Result = USBPIO.lcd_cls(HIDHandle) LCD へコマンドを送信 [lcd_cmd] 液晶表示器へコマンド送信する引数 1:USB 装置のハンドル Integer 引数 2: コマンド Byte Result = USBPIO.lcd_cmd(HIDHandle,command) LCD へ文字を送信 [lcd_str] 液晶表示器のカーソル位置へ 1 文字送信する引数 1:USB 装置のハンドル Integer 引数 2:LCD 表可能な半角文字 String Result = USBPIO.lcd_str(HIDHandle, String)
USBPIO.dll の使用方法 LCD へ文字を送信 [lcd_byte] 液晶表示器のカーソル位置へ 1 文字送信する引数 1:USB 装置のハンドル Integer 引数 2:LCD 表キャラクターコード Byte Result = USBPIO.lcd_byte(HIDHandle, Byte) LCD のカーソル位置を移動 [lcd_csmov] 液晶表示器のカーソル位置を移動引数 1:USB 装置のハンドル Integer 引数 2: 行 Integer 引数 3: 桁 Integer Result = USBPIO.lcd_csmov(HIDHandle,row,col) LCD の表示をシフト [lcd_csshift] 液晶表示器の表示をシフト引数 1:USB 装置のハンドル Integer 引数 2: 右左 string R,L 引数 3: 数 Integer シフトする数 Result = USBPIO.lcd_csshift(HIDHandle,"R"or"L",COUNT)
Form_Load イベン デバイスの接続状況を確認接続済 :Label1をグリーン未接続 :Label1を赤 HIDHandle USB 装置のハンドル OnDeviceChange イベント デバイスの脱 接続 デバイスの初期化 未接続 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load USBPIO.hid_register_notification(Me.Handle) If HIDHandle <> INVALID_HANDLE_VALUE Then Label1.ForeColor = Color.Green Else Label1.ForeColor = Color.Red Private Sub OnDeviceChange(ByVal m As Message) If (m.wparam.toint32 = DBT_DEVICEARRIVAL) Then If HIDHandle = INVALID_HANDLE_VALUE Then If HIDHandle <> INVALID_HANDLE_VALUE Then Label1.ForeColor = Color.Green ElseIf (m.wparam.toint32 = DBT_DEVICEREMOVECOMPLETE) Then If USBPIO.hid_mydevice_notification(m) Then If (HIDHandle <> INVALID_HANDLE_VALUE) Then Label1.ForeColor = Color.Red HIDHandle = INVALID_HANDLE_VALUE 'MsgBox("exception : On device change") OUT1_ON_Click~OUT8_ON_Click イベント 出力処理 (ON) ( USBPIO.hid_out(HIDHandle, 1, 1) ポート OUT1_OFF_Click~OUT8_OFF_Click イベント 出力処理 (OFF) ( USBPIO.hid_out(HIDHandle, 1, 0) ポート ON OFF Private Sub OUT1_ON_Click(sender As System.Object, e As System.EventArgs) Handles OUT1_ON.Click '********** '* LED1 * '********** Result = USBPIO.hid_out(HIDHandle, 1, 1) OUT1_ON.FlatStyle = FlatStyle.Standard OUT1_ON.BackColor = Color.Red Private Sub OUT1_OFF_Click(sender As System.Object, e As System.EventArgs) Handles OUT1_OFF.Click Result = USBPIO.hid_out(HIDHandle, 1, 0) OUT1_ON.BackColor = SystemColors.ButtonFace OUT1_ON.FlatStyle = FlatStyle.System Timer_Tick イベント入力処理 XXXX SW1=ON の時 0001 SW2=ON の時 0010 SW1とSW2がON の時 0011 Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick On Error Resume Next '********************* '* Input 状況検索 * '********************* Dim value As String = "" Dim SW(4) As Integer Dim i As Integer
LCD 液晶表示処理 初期化接続時最初に実行 消去実行時即時に処理 コマンド送信実行時即時に処理 LCD の仕様を確認くださいカーソルの移動シフト表示 文字送信実行時即時に処理 1 文字の送信を行ないます複数の文字表示の場合は連続して送ってください 文字キャラクターコード送信実行時即時に処理 1 文字分のキャラクターコードを送信します カーソルの移動 表示のシフト ' 初期化 Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click Result = USBPIO.lcd_ini(HIDHandle) 消去 Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click Result = USBPIO.lcd_cls(HIDHandle) ' コマンド送信 Private Sub Button5_Click(sender As System.Object, e As System.EventArgs) Handles Button5.Click Dim CM As Byte CM = CByte(Convert.ToInt32(LCD_CMD.Text, 16)) Result = USBPIO.lcd_cmd(HIDHandle, CM) End ' 文字送信 Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click Dim i As Integer Dim msg As String For i = 1 To Len(LCD_TEXT.Text) msg = Mid(LCD_TEXT.Text, i, 1) Result = USBPIO.lcd_str(HIDHandle, msg) Next i End ' 文字キャラクターコード送信 Private Sub Button8_Click(sender As System.Object, e As System.EventArgs) Handles Button8.Click Dim BY As Byte BY = CByte(Convert.ToInt32(LCD_BYTE.Text, 16)) Result = USBPIO.lcd_byte(HIDHandle, BY) End ' カーソルの移動 Private Sub CS_MOVE_Click(sender As System.Object, e As System.EventArgs) Handles CS_MOVE.Click Result = USBPIO.lcd_csmov(HIDHandle, CInt("0" & Trim(ROW.Text)), CInt("0" & Trim(COL.Text))) ' 表示のシフト Private Sub CS_SHIFT_Click(sender As System.Object, e As System.EventArgs) Handles CS_SHIFT.Click Result = USBPIO.lcd_csshift(HIDHandle, RL, CInt("0" & Trim(SHIFT_CNT.Text)))