powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Перевод строки в формат PDU
2 сообщений из 2, страница 1 из 1
Перевод строки в формат PDU
    #39555166
Zelda1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, уважаемое сообщество. Есть программа, которая отсылает смс сообщения через модем, который подключен к комм порту.
Открыть порт и отослать AT-команды мне удалось, но возникли проблемы с кодированием сообщения в формат PDU. Текст для сообщения берется из текст бокса. Подскажите, как лучше сформировать сообщение.
...
Рейтинг: 0 / 0
Перевод строки в формат PDU
    #39555186
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только для английских

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
Public Function txt2pdu(ByVal stxt As String) As String
For Y = 1 To Len(stxt)
        X = Dec2Bin(Asc(Mid(stxt, Y, 1)))
        'If X = "100000" Then X = "0100000"
        Text = X & Text
        Next Y
    'Debug.Print Text
    l = Len(Text)
    s = l - 7
    out = Bin2Hex(Mid(Text, s, 8))
    Do Until s <= 8
    s = s - 8
    out = out & Bin2Hex(Mid(Text, s, 8))
    Loop
    out = out & Bin2Hex(Mid(Text, 1, s - 1))
    'Debug.Print out
    
    X = Hex(Len(stxt))
    If Len(X) = 1 Then
            X = "0" & X
        End If
    'Debug.Print X & out
    txt2pdu = X & out
End Function
Public Function Dec2Bin(ByVal nDec As Integer) As String
    'This function is the same then Hex2Bin,
    '     but it has been copied to speed up proce
    '     ss
    Dim i As Integer
    Dim j As Integer
    Dim sHex As String
    Const HexChar As String = "0123456789ABCDEF"
    
    sHex = Hex(nDec) 'That the only part that is different


    For i = 1 To Len(sHex)
        nDec = InStr(1, HexChar, Mid(sHex, i, 1)) - 1


        For j = 3 To 0 Step -1
            Dec2Bin = Dec2Bin & nDec \ 2 ^ j
            nDec = nDec Mod 2 ^ j
        Next j
    Next i
    'Remove the first unused 0
    i = InStr(1, Dec2Bin, "1")
    If i <> 0 Then Dec2Bin = Mid(Dec2Bin, i)
    If Len(Dec2Bin) = 6 Then Dec2Bin = "0" & Dec2Bin
End Function
Public Function Bin2Hex(ByVal sBin As String) As String
    Dim i As Integer
    Dim nDec As Long
    sBin = String(4 - Len(sBin) Mod 4, "0") & sBin 'Add zero to complete Byte


    For i = 1 To Len(sBin)
        nDec = nDec + CInt(Mid(sBin, Len(sBin) - i + 1, 1)) * 2 ^ (i - 1)
    Next i
    Bin2Hex = Hex(nDec)
    If Len(Bin2Hex) Mod 2 = 1 Then Bin2Hex = "0" & Bin2Hex
End Function
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Перевод строки в формат PDU
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]