08.04.2004, 10:19 | #1 |
Участник
|
Проблема с activeX mscomm32
Всем доброго времени суток!
Очень нужна помощь - не могу никак разобраться... Есть такое устройство - весовой терминал. Работает через Com-порт. Используется компонент ActiveX msmcomm32 В инструкции к терминалу пишется: "в последовательный канал нужно послать команду 10H. В ответ на данную команду терминал выдаст строку из 9 байт символьного формата" - в котором и содержится нужная мне информация. То есть получается так - посылаешь на com-порт команду - обратно получаешь строку, в которой содержится вес. Как это реализовать в аксапте - может кто нибудь подсказать? Как послать на com-порт команду? MSMComm.Output() - что в него нужно передать? программа написанная на VB - все прекрасно работает. Пытаюсь изобразить подобное в аксапте- ничего не работает... код на VB: Private Sub Command1_Click() //кнопка которая посылает команду на порт MSComm1.Output = Chr(16) End Sub Private Sub DialButton_Click() // активизация ком-порта и ожидание информации Dim Number$, Temp$ Dim X As Integer DialButton.Enabled = False QuitButton.Enabled = False CancelButton.Enabled = True MSComm1.Settings = "9600,N,8,1" Status = " " On Error Resume Next MSComm1.PortOpen = True If Err Then MsgBox "COM: not available. Change the CommPort property to another port." Exit Sub End If Label1 = "Порт открыт" Do MSComm1.InBufferCount = 0 Do dummy = DoEvents() If MSComm1.InBufferCount >= 9 Then BUFFER$ = MSComm1.Input Status = Mid$(BUFFER, 2, 7) Print #1, Status Close #1 Exit Do End If If CancelFlag Then Exit Do End If Loop If CancelFlag Then CancelFlag = False Exit Do End If Loop Status = "" Label1 = "Порт закрыт" MSComm1.PortOpen = False DialButton.Enabled = True QuitButton.Enabled = True CancelButton.Enabled = False ' Status = Temp$ End Sub |
|
08.04.2004, 12:23 | #2 |
1C
|
Интересно, как вы пытаетесь подобное изобразить в Ax?
Есть класс WinAPI. Он может работать с внешними DLL-ками, которых можно и реализовать доступ к COM порту. |
|
08.04.2004, 14:57 | #3 |
Moderator
|
Судя по тому, что это ActiveX - это dll - ка реализует некий COM-сервер. Его и используйте - как работать с COM объектами в Аксапте здесь уже не раз писалось.
И потом - вы же этот код в VB не просто так пишете ? Скорее всего COM сервер был подключен в разделе References проекта VB. |
|
|
|