Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Передача данных через com port, слежение за com портом / 1 сообщений из 1, страница 1 из 1
06.03.2008, 11:22
    #35174850
kiv-1980
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача данных через com port, слежение за com портом
Создал данную темку возможно дублируя часть вопросов, которые уже задавались, но у меня случай немного другого характера и я не нашел выхода к сожалению на форуме.
Проблема заключается в следующем имеется аппарат для работы через com-порт, все описание под него есть и пароли, и даже есть частичный код с С++, по работе с ним, к сожалению с портами работал мало, а проблема назревает очень остро.
Сори за большое вступление.
Мне нужно попытаться установить постоянное соединение с аппаратом, частично выход нашел взяв готовый проект по ссылкам, которые накопал тута на форуме user_control_com_port. Соединение есть, более того принимаю команды от аппарата, в цифровом коде собственно. Теперь проблема в следующем нужно отправить команды на порт и считывать от него ответы, при этом делать это регулярно поддерживая постоянное соединение, есть входные параметры:

Код: plaintext
1.
2.
3.
4.
5.
6.
int OpenSmena(char* portname, short number, char* name,char* pwd)

Int PrintDoc(char* portname,char* spwd, int ntype, char* sdate, char* stime, _
                 char* number, char* checknumb, char* usluga, char* kodotd, _
                  double nsum, double finalsum, double paidsum, double sumchange)

int PrintReport(char* portname, short nreptype, short nntapetype, char* pwd)

Ответ о нормальном прохождении собственно return res; в C++
0 - удачное завершение.

Код использую для соединения следующий, повторюсь брал готовый:
Код: plaintext
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.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
Option Explicit

Private Sub ARCComm1_DataIn()
    Dim ans As String
    ans = ARCComm1.GetData
    If chkHEX.Value <>  0  Then
        ans = ReturnHEX(ans)
    End If
    txtRec.Text = txtRec.Text & ans & vbCrLf
    txtRec.SelStart = Len(txtRec)
End Sub

Private Sub Cmd_Click(Index As Integer)
On Error GoTo handelcmd
    Select Case Index
        Case  0  'Open Com Port
            ARCComm1.ComPort = cmbPort.List(cmbPort.ListIndex)
            ARCComm1.ComSettings = txtComSet.Text
            If ARCComm1.InitCom() Then
                SetControllsLockStatus "CLOSE", False
                SetControllsLockStatus "OPEN", True
            End If
        Case  1  'Close Com Port
            ARCComm1.FinCom
            SetControllsLockStatus "CLOSE", True
            SetControllsLockStatus "OPEN", False
        Case  2  'Send to com port
            If Not ARCComm1.WriteData(txtSend) Then
                MsgBox "Error sending data!"
            End If
            txtSend.SetFocus
    End Select
    Exit Sub
handelcmd:
    MsgBox Err.Description,  16 , "Error#" & Err.Number
    Exit Sub
End Sub

Private Sub Form_Load()
On Error GoTo handelload
    cmbPort.AddItem "COM1:"
    cmbPort.AddItem "COM2:"
    cmbPort.AddItem "COM3:"
    cmbPort.AddItem "COM4:"
    cmbPort.ListIndex =  0 
    Exit Sub
handelload:
    MsgBox Err.Description,  16 , "Error#" & Err.Number
    Exit Sub
End Sub

Sub SetControllsLockStatus(TheTAGValue As String, TheLockStatus As Boolean)
On Error GoTo handelSetControllsLockStatus
    Dim xs As Control
    For Each xs In Me
        If xs.Tag = TheTAGValue Then
            xs.Enabled = TheLockStatus
        End If
    Next
    Exit Sub
handelSetControllsLockStatus:
    MsgBox Err.Description,  16 , "Error#" & Err.Number
    Exit Sub
End Sub

Function ReturnHEX(TheString As String) As String
    Dim i As Integer, RtnStr As String
    RtnStr = ""
    For i =  1  To Len(TheString)
        RtnStr = RtnStr & Right$("00" & Hex$(Asc(Mid$(TheString, i,  1 ))),  2 ) & " "
    Next
    ReturnHEX = RtnStr
End Function
Буду благодарен за помощь, может кто решал данную проблему и сможет выложить приблизительный код для работы.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Передача данных через com port, слежение за com портом / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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