📄 智能家居控制系统vb代码.txt
字号:
/*****************************************************************************
* 智能家居控制系统VB上的代码
* 作者 :梦想科技*老高
* Email:9902013327@163.com
* 单片机采用AT89S52,晶振频率为:12.00MHz。
/******************************************************************************/
PC上位机调试程序
Private Declare Function TextToSms Lib "SMSDLL.dll" (ByVal csc As String, ByVal ToNum As String, ByVal smsnr As String, ByVal flash As Integer, ByVal reportit As Integer, ByRef sms_len As Integer, ByVal retSms As String) As Integer
Private Declare Function About Lib "SMSDLL.dll" ()
Private Declare Function SmsToText Lib "SMSDLL.dll" (ByVal sms As String, ByVal csca As String, ByRef caca_len, ByVal ToNum As String, ByRef ToNum_len As Integer, ByVal sendtime As String, ByRef time_len As Integer, ByVal smsnr As String) As Integer
Dim i(6) As Byte 'tl
Dim display() As Byte 'tl
Dim test As Byte 'tl
Dim j As Byte
Private Sub Command1_Click()
'将信息编码成一条短消息
Dim s As String
Dim s1 As String
Dim s2 As String
Dim r As Integer
Dim f As Integer
Dim sms_len As Integer
r = CInt(Check1.Value)
f = CInt(Check2.Value)
Dim rsms As String * 400
If Text3.Text = "" Then
MsgBox "请输入短消息内容"
Exit Sub
End If
'rsms = "11111"
ret = TextToSms(Text1.Text, Text2.Text, Text3.Text, r, f, sms_len, rsms)
Text5.Text = "短消息长度:" + CStr(sms_len) & vbCrLf & "PDU内容:" + rsms
MsgBox "总字数:" & ret & vbCrLf & "短消息长度:" + CStr(sms_len) + vbCrLf & "PDU内容:" & rsms
' Dim i
' i = 98
' testit s, s1
' MsgBox s1
End Sub
Private Sub Command2_Click()
'About
Dim csca As String * 30
Dim csca_len As Integer
Dim num As String * 30
Dim num_len As Integer
Dim sendtime As String * 30
Dim time_len As Integer
Dim nr As String * 300
Dim nr_len As Integer
Dim i As Integer
i = SmsToText(Text4.Text, csca, csca_len, num, num_len, sendtime, time_len, nr)
MsgBox "返回值:" & i & vbCrLf & "短消息内容:" & Left(nr, i)
End Sub
Private Sub Command3_Click()
End Sub
Private Sub Command4_Click()
On Error Resume Next
Dim comm As Integer '端口号
comm = GetSetting(App.Title, "setting", "Com", 1)
MSComm1.CommPort = comm
Dim s As String
Dim s1 As String
Dim s2 As String
Dim r As Integer
Dim f As Integer
r = 0
f = 0
Dim sms_len As Integer
If Check1.Value = vbChecked Then
r = 1
Else
r = 0
End If
If Check2.Value = vbChecked Then
f = 1
' MsgBox "f=1"
Else
f = 0
End If
'MsgBox "r= " + r + " f= " + f
'Exit Sub
Dim i As Integer
Dim rsms As String * 400
If Text3.Text = "" Then
MsgBox "请输入短消息内容"
Text3.SetFocus
Exit Sub
End If
If Text2.Text = "" Then
MsgBox "请输入对方手机号码"
Text2.SetFocus
Exit Sub
End If
'rsms = "11111"
ret = TextToSms(Text1.Text, Text2.Text, Text3.Text, r, f, sms_len, rsms)
If ret = 0 Then
MsgBox ("短消息编码错误")
Exit Sub
End If
Text5.Text = "短消息长度:" + CStr(sms_len) & vbCrLf & "PDU内容:" + rsms
'开始发送
Dim time1
With MSComm1
If .PortOpen = False Then
.PortOpen = True
End If
If .PortOpen = True Then
time1 = Now()
.Output = "at+cmgs=" + CStr(sms_len) + vbCrLf
s = .Input
Do Until (InStr(s, ">") > 0 Or DateDiff("S", time1, Now()) > 5) '5秒钟内是否能检测到>,如果没有检测到则可能没有接TC35modem
DoEvents
s = s + .Input
Loop
If InStr(s, ">") > 0 Then '如果发送接收到>符 则继续发送内容
s = ""
.Output = Left(rsms, ret) '去掉空字符
DoEvents
For i = 1 To 100
'少等片刻.
DoEvents
Next
.Output = Chr(26) '发送^Z
ElseIf InStr(UCase(s), "ERROR") > 0 Then '如果发送接收到>符 则继续
MsgBox "发送出错", vbInformation, "发送出错"
Else
MsgBox "TC35 MODEM没有响应,请检查断口是否正确", vbInformation, "发送出错"
End If
time1 = Now()
s = .Input
Do Until (InStr(s, "OK") > 0 Or DateDiff("S", time1, Now()) > 5) '检查是否发送成功
DoEvents
s = s + .Input
Loop
If InStr(s, "+CMGS:") > 0 Then
' MsgBox "报警发送"
Else
MsgBox "指定时间内未检测到发送成功标志," + vbCrLf + "发送可能失败,请检查连接状况或网络状态。", vbInformation, "发送出错"
End If
.PortOpen = False
End If
End With
Exit Sub
err1:
comm = InputBox("请确认端口号是否正确", "打开端口出错", MSComm1.CommPort)
MSComm1.CommPort = comm
SaveSetting App.Title, "setting", "Com", comm
End Sub
Private Sub Command5_Click()
Dim comm As Integer
comm = InputBox("请输入端口号", "设置通信端口", MSComm1.CommPort)
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
MSComm1.CommPort = comm
SaveSetting App.Title, "setting", "Com", comm
End Sub
Private Sub Form_Load()
Text3_Change
'Text2.Text = GetSetting(App.Title, "setting", "num", "17000165165123")
End Sub
Private Sub Form_Unload(Cancel As Integer)
SaveSetting App.Title, "setting", "num", Text2.Text
End
End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
Private Sub Frame3_DragDrop(Source As Control, X As Single, Y As Single) 'tl
End Sub
Private Sub Label6_Click() 'tl
End Sub
Private Sub Label7_Click()
End Sub
Private Sub MSComm2_OnComm() 'tl
End Sub
Private Sub Text3_Change()
Label5.Caption = "字数 : " & Len(Text3.Text)
End Sub
Private Sub Timer1_Timer() 'tl
Label7.ForeColor = RGB(255, 0, 0)
If MSComm2.PortOpen = False Then
MSComm2.PortOpen = True
End If
If MSComm2.InBufferCount > 0 Then
display = MSComm2.Input
Label6.Caption = display(0) 'Abs(display(0))
Label8.Caption = Abs(display(1)) & " " & Abs(display(2)) & " " & Abs(display(3)) & " " & Abs(display(4)) & " " & Abs(display(5)) & " " & Abs(display(6)) & " " & Abs(display(7)) & " " & Abs(display(8)) & " " & Abs(display(9))
If display(0) = 254 Then
If display(6) = 0 Then
Text3.Text = "报警"
Else
Text3.Text = "提示"
End If
For j = 0 To 9
display(j) = 0
Next j
'Command4_Click
End If
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -