用VB做的云台控制程序
我用VB编了个控制云台的程序,请大师帮着看看,
'PELCD_P 解码器控制协议
'向上:A0 01 00 08 00 40 AF 46 A0 01 00 00 00 00 AF 0E
'向下:A0 01 00 10 00 40 AF 5E A0 01 00 00 00 00 AF 0E
'向左:A0 01 00 04 40 00 AF 4A A0 01 00 00 00 00 AF 0E
'向右:A0 01 00 02 40 00 AF 4C A0 01 00 00 00 00 AF 0E
'变倍(wide)大:A0 01 00 40 00 00 AF 4E A0 01 00 00 00 00 AF 0E
'变倍小(tele):A0 01 00 20 00 00 AF 2E A0 01 00 00 00 00 AF 0E
'调焦大(far): A0 01 01 00 00 00 AF 0F A0 01 00 00 00 00 AF 0E
'调焦小(near):A0 01 02 00 00 00 AF 0C A0 01 00 00 00 00 AF 0E
'光圈小(close):A0 01 08 00 00 00 AF 06 A0 01 00 00 00 00 AF 0E
'光圈大(open):A0 01 04 00 00 00 AF 0A A0 01 00 00 00 00 AF 0E
Option Explicit
Dim sData() As Byte
Dim OverButton As Boolean
Private Sub camclose_Click()
ReDim sData(15)
sData(0) = &HA0
sData(1) = &H1
sData(2) = &H8
sData(3) = &H0
sData(4) = &H0
sData(5) = &H0
sData(6) = &HAF
sData(7) = &H6
sData(8) = &HA0
sData(9) = &H1
sData(10) = &H0
sData(11) = &H0
sData(12) = &H0
sData(13) = &H0
sData(14) = &HAF
sData(15) = &HE
MSComm1.OutBufferCount = 0
MSComm1.Output = sData '...按下命令钮,发送命令
End Sub
Private Sub camdown_Click()
ReDim sData(15)
sData(0) = &HA0
sData(1) = &H1
sData(2) = &H0
sData(3) = &H10
sData(4) = &H0
sData(5) = &H40
sData(6) = &HAF
sData(7) = &H5E
sData(8) = &HA0
sData(9) = &H1
sData(10) = &H0
sData(11) = &H0
sData(12) = &H0
sData(13) = &H0
sData(14) = &HAF
sData(15) = &HE
MSComm1.OutBufferCount = 0
MSComm1.Output = sData '...按下命令钮,发送命令
End Sub
Private Sub camfar_Click()
ReDim sData(15)
sData(0) = &HA0
sData(1) = &H1
sData(2) = &H1
sData(3) = &H0
sData(4) = &H0
sData(5) = &H0
sData(6) = &HAF
sData(7) = &HF
sData(8) = &HA0
sData(9) = &H1
sData(10) = &H0
sData(11) = &H0
sData(12) = &H0
sData(13) = &H0
sData(14) = &HAF
sData(15) = &HE
MSComm1.OutBufferCount = 0
MSComm1.Output = sData '...按下命令钮,发送命令
End Sub
Private Sub camleft_Click()
ReDim sData(15)
sData(0) = &HA0
sData(1) = &H1
sData(2) = &H0
sData(3) = &H4
sData(4) = &H40
sData(5) = &H0
sData(6) = &HAF
sData(7) = &H4A
sData(8) = &HA0
sData(9) = &H1
sData(10) = &H0
sData(11) = &H0
sData(12) = &H0
sData(13) = &H0
sData(14) = &HAF
sData(15) = &HE
MSComm1.OutBufferCount = 0
MSComm1.Output = sData '...按下命令钮,发送命令
End Sub
Private Sub camnear_Click()
ReDim sData(15)
sData(0) = &HA0
sData(1) = &H1
sData(2) = &H2
sData(3) = &H0
sData(4) = &H0
sData(5) = &H0
sData(6) = &HAF
sData(7) = &HC
sData(8) = &HA0
sData(9) = &H1
sData(10) = &H0
sData(11) = &H0
sData(12) = &H0
sData(13) = &H0
sData(14) = &HAF
sData(15) = &HE
MSComm1.OutBufferCount = 0
MSComm1.Output = sData '...按下命令钮,发送命令
End Sub
Private Sub camopen_Click()
ReDim sData(15)
sData(0) = &HA0
sData(1) = &H1
sData(2) = &H4
sData(3) = &H0
sData(4) = &H0
sData(5) = &H0
sData(6) = &HAF
sData(7) = &HA
sData(8) = &HA0
sData(9) = &H1
sData(10) = &H0
sData(11) = &H0
sData(12) = &H0
sData(13) = &H0
sData(14) = &HAF
sData(15) = &HE
MSComm1.OutBufferCount = 0
MSComm1.Output = sData '...按下命令钮,发送命令
End Sub
Private Sub camright_Click()
ReDim sData(15)
sData(0) = &HA0
sData(1) = &H1
sData(2) = &H0
sData(3) = &H2
sData(4) = &H40
sData(5) = &H0
sData(6) = &HAF
sData(7) = &H4C
sData(8) = &HA0
sData(9) = &H1
sData(10) = &H0
sData(11) = &H0
sData(12) = &H0
sData(13) = &H0
sData(14) = &HAF
sData(15) = &HE
MSComm1.OutBufferCount = 0
MSComm1.Output = sData '...按下命令钮,发送命令
End Sub
Private Sub camtele_Click()
ReDim sData(15)
sData(0) = &HA0
sData(1) = &H1
sData(2) = &H0
sData(3) = &H20
sData(4) = &H0
sData(5) = &H40
sData(6) = &HAF
sData(7) = &H2E
sData(8) = &HA0
sData(9) = &H1
sData(10) = &H0
sData(11) = &H0
sData(12) = &H0
sData(13) = &H0
sData(14) = &HAF
sData(15) = &HE
MSComm1.OutBufferCount = 0
MSComm1.Output = sData '...按下命令钮,发送命令
MSComm1.PortOpen = False
End Sub
Private Sub camup_Click()
ReDim sData(15)
sData(0) = &HA0
sData(1) = &H1
sData(2) = &H0
sData(3) = &H8
sData(4) = &H0
sData(5) = &H40
sData(6) = &HAF
sData(7) = &H46
sData(8) = &HA0
sData(9) = &H1
sData(10) = &H0
sData(11) = &H0
sData(12) = &H0
sData(13) = &H0
sData(14) = &HAF
sData(15) = &HE
MSComm1.OutBufferCount = 0
MSComm1.Output = sData '...按下命令钮,发送命令
End Sub
Private Sub Camwide_Click()
ReDim sData(15)
sData(0) = &HA0
sData(1) = &H1
sData(2) = &H0
sData(3) = &H40
sData(4) = &H0
sData(5) = &H0
sData(6) = &HAF
sData(7) = &H4E
sData(8) = &HA0
sData(9) = &H1
sData(10) = &H0
sData(11) = &H0
sData(12) = &H0
sData(13) = &H0
sData(14) = &HAF
sData(15) = &HE
MSComm1.OutBufferCount = 0
MSComm1.Output = sData() '...按下命令钮,发送命令
MSComm1.PortOpen = False
End Sub
Private Sub Form_Load()
'设置com
MSComm1.CommPort = 4
MSComm1.Settings = "9600,n,8,1"
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
MSComm1.RThreshold = 1
MSComm1.InputMode = comInputModeBinary '设置为2进制接收,是接收&H00 - &HFF必要条件
MSComm1.PortOpen = True
OverButton = True
MSComm1.InputLen = 0
End Sub
不知这样写是否合适,实际调试时,按camtele按钮提示“8018”错误,但小弟没有找到错误所在,
在现场调试时,好像除了向下能动作外,其它都没有反应,不知何原因。