'---------------------------------------------------
' R_USBシリーズ
'
' 簡易警報プログラム
'
' copyright(c) 2001 ....RabbitHouse
'---------------------------------------------------
'
' 定数宣言
Const RUSB_ID As Byte = 0: 'RUSBボード番号
Const MAIL_USER As String = "username": 'メールプロファイル名
Const MAIL_PASS As String = "password": 'ログオンパスワード
Const MAIL_TO As String = "xxx@docomo.ne.jp": '携帯のメールアドレス
'
' 変数宣言
Dim refNum As Long: 'リファレンス番号
Private Sub Form_Load()
' オープン処理
refNum = RUSB_Open(RUSB_ID) 'ボード番号を指定してオープンする
If (refNum = -1) Then
MsgBox "指定のRUSBデバイスがありません"
End
End If
Timer1.Interval = 5000
End Sub
Private Sub Form_Unload(Cancel As Integer)
' クローズ処理
If (refNum >= 0) Then RUSB_Close refNum 'リファレンス番号によりクローズ
End Sub
Private Sub Command1_Click()
' 動作テスト
Send_mail Rd_port()
End Sub
Private Sub Timer1_Timer()
' 定時チェック
Dim ret As Long
ret = Rd_port()
If ret > 0 Then
Send_mail ret
MsgBox "警報発生 CODE = " + Right$("000" + Hex$(ret), 4)
Unload Me
End If
End Sub
Private Function Rd_port() As Long
' リード処理
Dim ret As Integer
Dim rdA As Byte 'リードデータA
Dim rdB As Byte 'リードデータB
Dim urdA As Byte '↑エッジ保持データA
Dim urdB As Byte '↑エッジ保持データB
Dim drdA As Byte '↓エッジ保持データA
Dim drdB As Byte '↓エッジ保持データB
ret = RUSB_Read(refNum, rdA, rdB, urdA, urdB, drdA, drdB) 'リファレンス番号によりリード
If (ret = RUSB_NO_ERR) Then
Rd_port = rdB * 256 + rdA
Else
Rd_port = -1
End If
End Function
Private Sub Send_mail(inpdata As Long)
' メールサーバにログオンします
With MAPISession1
.UserName = MAIL_USER
.Password = MAIL_PASS
.SignOn
If Err <> 0 Then
MsgBox "ログオン失敗: " + Error$
Else
' 携帯にメールを送信します
With MAPIMessages1
.SessionID = MAPISession1.SessionID
.Compose
.RecipDisplayName = MAIL_TO
.RecipAddress = MAIL_TO
.MsgSubject = "警報メール"
.MsgNoteText = "CODE = " + Right$("000" + Hex$(inpdata), 4)
.Send False
End With
.SignOff
End If
End With
End Sub
|