⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 data.bas

📁 提供给入门级别的GPRS编程人员
💻 BAS
📖 第 1 页 / 共 2 页
字号:
Attribute VB_Name = "mod_data"
Option Explicit
Public Type data '发送接收数据包
       startcode(0 To 2) As Byte
       sigcode(0 To 4) As Byte
       numbytes As Byte
       sigoreader(0 To 1) As Byte
       senddata() As Byte
       endcode(0 To 1) As Byte
End Type
Global mytype As data
Public Sub init_startcode() '初始化包开始符
mytype.startcode(0) = &H57
mytype.startcode(1) = &H41
mytype.startcode(2) = &H3A
End Sub
Public Sub init_sigcode(ByRef pack_sigcode() As Byte) '初始化识别码
Dim i As Long
For i = 0 To 4 Step 1
mytype.sigcode(i) = pack_sigcode(i)
Next i
End Sub

Public Sub init_numbytes(ByVal packnumbytes As Byte) '初始化字节数
mytype.numbytes = packnumbytes
End Sub
Public Sub init_sigoreader(ByRef packsigoreader() As Byte) '初始化命令符
mytype.sigoreader(0) = packsigoreader(0)
mytype.sigoreader(1) = packsigoreader(1)
End Sub

Public Sub init_senddata(ByRef pack_senddata() As Byte) '初始化数据
ReDim mytype.senddata(0 To UBound(pack_senddata)) As Byte
Dim i As Long
For i = 0 To UBound(pack_senddata) Step 1
mytype.senddata(i) = pack_senddata(i)
Next i
End Sub
Public Sub init_endcode() '初始化包结束符
mytype.endcode(0) = &HD
mytype.endcode(1) = &HA
End Sub


Public Function reg_pctocenter(ByRef senddata() As Byte) As Byte()  '主机向数据中心请求注册的信息包
Dim strdata As String '数据的字符串形式
Dim i As Long '循环变量
Dim numdata As Long '数据个数
Dim pack_sigcode(0 To 4) As Byte
Dim packnumbytes As Byte
Dim packsigoreader(0 To 1) As Byte
Dim pack_senddata() As Byte
Dim tempdata() As Byte
ReDim tempdata(0 To 13 + UBound(senddata)) As Byte

 '3字节开始符+5字节识别码+1字节字节数+2字节命令符+数据所占字节数+2字节结束符号=13+numdata-1=12+ numdata


For i = 0 To 4 Step 1  '识别码(规定值)
pack_sigcode(i) = &HAA
Next i
packnumbytes = 63 '初始化字节数(每种命令给一个固定的数值)

'命令符(每种命令为不同的命令符作改动)
packsigoreader(0) = &H82
packsigoreader(1) = &H1  '(01/02/10数据丢失已经解决)

init_startcode
init_sigcode pack_sigcode
init_numbytes packnumbytes
init_sigoreader packsigoreader
init_senddata senddata
init_endcode

For i = 0 To 2 '开始符
tempdata(i) = mytype.startcode(i)
Next i

For i = 0 To 4 Step 1
tempdata(i + 3) = mytype.sigcode(i) '识别码
Next i

tempdata(8) = mytype.numbytes '字节数

'命令符
tempdata(9) = mytype.sigoreader(0)
tempdata(10) = mytype.sigoreader(1)

'数据
For i = 0 To UBound(mytype.senddata) Step 1
tempdata(i + 11) = mytype.senddata(i)
Next i

'结束符
tempdata(12 + UBound(mytype.senddata)) = mytype.endcode(0)
tempdata(13 + UBound(mytype.senddata)) = mytype.endcode(1)


reg_pctocenter = tempdata
End Function

Public Function ip_pctocenter(ByRef senddata() As Byte) As Byte()  '主机向数据中心登记IP的信息包
Dim strdata As String '数据的字符串形式
Dim i As Long '循环变量
Dim numdata As Long '数据个数
Dim pack_sigcode(0 To 4) As Byte
Dim packnumbytes As Byte
Dim packsigoreader(0 To 1) As Byte
Dim pack_senddata() As Byte
Dim tempdata() As Byte
ReDim tempdata(0 To 13 + UBound(senddata)) As Byte

 '3字节开始符+5字节识别码+1字节字节数+2字节命令符+数据所占字节数+2字节结束符号=13+numdata-1=12+ numdata


For i = 0 To 4 Step 1  '识别码(规定值)
pack_sigcode(i) = &HAA
Next i
packnumbytes = 16 '初始化字节数(每种命令给一个固定的数值)

'命令符(每种命令为不同的命令符作改动)
packsigoreader(0) = &H82
packsigoreader(1) = &H2  '(01/02/10数据丢失已经解决)

init_startcode
init_sigcode pack_sigcode
init_numbytes packnumbytes
init_sigoreader packsigoreader
init_senddata senddata
init_endcode

For i = 0 To 2 '开始符
tempdata(i) = mytype.startcode(i)
Next i

For i = 0 To 4 Step 1
tempdata(i + 3) = mytype.sigcode(i) '识别码
Next i

tempdata(8) = mytype.numbytes '字节数

'命令符
tempdata(9) = mytype.sigoreader(0)
tempdata(10) = mytype.sigoreader(1)

'数据
For i = 0 To UBound(mytype.senddata) Step 1
tempdata(i + 11) = mytype.senddata(i)
Next i

'结束符
tempdata(12 + UBound(mytype.senddata)) = mytype.endcode(0)
tempdata(13 + UBound(mytype.senddata)) = mytype.endcode(1)


ip_pctocenter = tempdata
End Function

Public Function qrryip_pctocenter(ByRef senddata() As Byte) As Byte()  '主机向数据中心请求所属DTU_IP的信息包
Dim strdata As String '数据的字符串形式
Dim i As Long '循环变量
Dim numdata As Long '数据个数
Dim pack_sigcode(0 To 4) As Byte
Dim packnumbytes As Byte
Dim packsigoreader(0 To 1) As Byte
Dim pack_senddata() As Byte
Dim tempdata() As Byte
ReDim tempdata(0 To 13 + UBound(senddata)) As Byte

 '3字节开始符+5字节识别码+1字节字节数+2字节命令符+数据所占字节数+2字节结束符号=13+numdata-1=12+ numdata


For i = 0 To 4 Step 1  '识别码(规定值)
pack_sigcode(i) = &HAA
Next i
packnumbytes = 22 '初始化字节数(每种命令给一个固定的数值)

'命令符(每种命令为不同的命令符作改动)
packsigoreader(0) = &H82
packsigoreader(1) = &H3 '(01/02/10数据丢失已经解决)

init_startcode
init_sigcode pack_sigcode
init_numbytes packnumbytes
init_sigoreader packsigoreader
init_senddata senddata
init_endcode

For i = 0 To 2 '开始符
tempdata(i) = mytype.startcode(i)
Next i

For i = 0 To 4 Step 1
tempdata(i + 3) = mytype.sigcode(i) '识别码
Next i

tempdata(8) = mytype.numbytes '字节数

'命令符
tempdata(9) = mytype.sigoreader(0)
tempdata(10) = mytype.sigoreader(1)

'数据
For i = 0 To UBound(mytype.senddata) Step 1
tempdata(i + 11) = mytype.senddata(i)
Next i

'结束符
tempdata(12 + UBound(mytype.senddata)) = mytype.endcode(0)
tempdata(13 + UBound(mytype.senddata)) = mytype.endcode(1)


qrryip_pctocenter = tempdata
End Function

Public Function buypower_pctodtu(ByRef senddata() As Byte) As Byte()  '主机向DTU输入购电量
Dim strdata As String '数据的字符串形式
Dim i As Long '循环变量
Dim numdata As Long '数据个数
Dim pack_sigcode(0 To 4) As Byte
Dim packnumbytes As Byte
Dim packsigoreader(0 To 1) As Byte
Dim pack_senddata() As Byte
Dim tempdata() As Byte
ReDim tempdata(0 To 13 + UBound(senddata)) As Byte

 '3字节开始符+5字节识别码+1字节字节数+2字节命令符+数据所占字节数+2字节结束符号=13+numdata-1=12+ numdata


For i = 0 To 4 Step 1  '识别码(规定值)
pack_sigcode(i) = &H5A
Next i
packnumbytes = 40 '初始化字节数(每种命令给一个固定的数值)

'命令符(每种命令为不同的命令符作改动)
packsigoreader(0) = &H82
packsigoreader(1) = &HA1 '(01/02/10数据丢失已经解决)

init_startcode
init_sigcode pack_sigcode
init_numbytes packnumbytes
init_sigoreader packsigoreader
init_senddata senddata
init_endcode

For i = 0 To 2 '开始符
tempdata(i) = mytype.startcode(i)
Next i

For i = 0 To 4 Step 1
tempdata(i + 3) = mytype.sigcode(i) '识别码
Next i

tempdata(8) = mytype.numbytes '字节数

'命令符
tempdata(9) = mytype.sigoreader(0)
tempdata(10) = mytype.sigoreader(1)

'数据
For i = 0 To UBound(mytype.senddata) Step 1
tempdata(i + 11) = mytype.senddata(i)
Next i

'结束符
tempdata(12 + UBound(mytype.senddata)) = mytype.endcode(0)
tempdata(13 + UBound(mytype.senddata)) = mytype.endcode(1)


buypower_pctodtu = tempdata
End Function
Public Function collect_pctodtu(ByRef senddata() As Byte) As Byte()  '主机向DTU采集数据
Dim strdata As String '数据的字符串形式
Dim i As Long '循环变量
Dim numdata As Long '数据个数
Dim pack_sigcode(0 To 4) As Byte
Dim packnumbytes As Byte
Dim packsigoreader(0 To 1) As Byte
Dim pack_senddata() As Byte

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -