📄 irqfunc.bas
字号:
Attribute VB_Name = "IrqFunc"
Option Explicit
''''''''''''''''''''''''''''''''''''''''''''
'Count的中断副程式
'当设定的位元组数到达时,引发此函式的执行
'此函式会将结果显示在接收区中
'此函式里面不可设定中断点,否则会崩溃
''''''''''''''''''''''''''''''''''''''''''''
Public Sub CntIrq(ByVal Port As Long)
Dim rlen&, i&
Dim buf(0 To 511) As Byte
rlen = sio_read(Port, buf(0), 512)
If rlen = 0 Then Exit Sub
For i = 0 To rlen - 1
Form1.txtReceive.Text = Form1.txtReceive.Text + CStr(buf(i)) + vbCrLf
Next
End Sub
''''''''''''''''''''''''''''''''''''''''''''
'硬体状态的中断副程式
'当设定的状态改变时,引发此函式的执行
'此函式会将结果显示在Shape物件中
'此函式里面不可设定中断点,否则会崩溃
''''''''''''''''''''''''''''''''''''''''''''
Public Sub ModemIrq(ByVal Port As Long)
Dim ret%
ret = sio_lstatus(Port) '读取状态
If ret < 0 Then
MsgBox "状态错误", vbCritical + vbOKOnly, "系统警告"
Else
If (ret And S_DSR) > 0 Then
Form1.spDSR.FillColor = RGB(255, 0, 0)
Else
Form1.spDSR.FillColor = RGB(0, 0, 0)
End If
If (ret And S_CD) > 0 Then
Form1.spCD.FillColor = RGB(255, 0, 0)
Else
Form1.spCD.FillColor = RGB(0, 0, 0)
End If
If (ret And S_RI) > 0 Then
Form1.spRI.FillColor = RGB(255, 0, 0)
Else
Form1.spRI.FillColor = RGB(0, 0, 0)
End If
If (ret And S_CTS) > 0 Then
Form1.spCTS.FillColor = RGB(255, 0, 0)
Else
Form1.spCTS.FillColor = RGB(0, 0, 0)
End If
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -