📄 ac1057.bas
字号:
Attribute VB_Name = "A1057"
Public Declare Function AC_OpenDriver_VB Lib "aciont.dll" () As Long
Public Declare Function AC_CloseDriver_VB Lib "aciont.dll" (ByVal HANDLE As Long) As Long
Public Declare Function AC1057_SetIOState_VB Lib "aciont.dll" (ByVal portio As Long, ByVal Base As Long, ByVal IOState As Long) As Long
Public Declare Function AC1057_InputIOData_VB Lib "aciont.dll" (ByVal portio As Long, ByVal Base As Long, ByVal channel As Long) As Long
Public Declare Function AC1057_OutputIOData_VB Lib "aciont.dll" (ByVal portio As Long, ByVal Base As Long, ByVal channel As Long, ByVal Data As Long) As Long
Public Declare Function AC1057_ADSampleAverage_VB Lib "aciont.dll" (ByVal portio As Long, ByVal Base As Long, ByVal channel As Long, ByVal Times As Long) As Long
Global NTportio As Long 'NT驱动句柄
Global BaseAC1057 As Integer
Global AC1057IOOutData As Integer
Global AC1057IOOutHData As Integer
'屏
Public COM As String, R As String, W As String
Public Declare Function SetWindowPos& Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
Public Declare Function GetTickCount Lib "kernel32" () As Long
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Public Sub Delay(ByVal Seconds As Single)
Dim PauseTime As Long, Start As Long
PauseTime = Round(Seconds * 1000)
Start = GetTickCount
Do While GetTickCount < Start + PauseTime
DoEvents
Loop
End Sub
Public Sub SendLed(ByVal OldStr As String, XNo As Integer)
Dim SendData(22) As Byte
Dim StrLen As Byte
Dim Str As String
Dim hz As Integer
Dim i As Byte, j As Byte, High As Byte, Low As Byte
Dim a$
SendData(0) = &H1: SendData(1) = &H55
SendData(2) = &HAA: SendData(3) = &H55
SendData(4) = &HAA: SendData(5) = XNo
SendData(22) = &HD
Str = OldStr
SendData(6) = LenB(StrConv(Str, vbFromUnicode))
If SendData(6) >= 16 Then SendData(6) = 16
If SendData(6) < 16 Then 'Center
sp$ = Space(8 - SendData(6) / 2)
Str = sp$ & Str
' SendData(6) = Len(sp$) + SendData(6)
End If '
StrLen = Len(Str)
j = 6
For i = 1 To StrLen
a$ = Mid(Str, i, 1)
hz = Asc(a$)
High = Int(hz / 256) And &HFF
Low = hz And &HFF
If High > 0 Then
SendData(j) = High: j = j + 1
SendData(j) = Low: j = j + 1
Else
SendData(j) = Low: j = j + 1
End If
If j >= 22 Then j = 22: Exit For
Next i
AC1957.CommLED.Output = SendData
AC1957.CommLED.OutBufferCount = 0
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -