Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

компонент Mscomm

272
22 мая 2004 года
vladsoft
512 / / 20.08.2000
У меня такой вопрос: Я делаю программу для связи двух компьютеров по телефонной линии. Подскажите пожалуйста, как сделать так, чтобы моя прога не просто набирала номер, но и соединялась и чтобы можно было одновременно отсылать файлы в оба направления (компонент MSCOMM).
319
24 мая 2004 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by vladsoft
У меня такой вопрос: Я делаю программу для связи двух компьютеров по телефонной линии. Подскажите пожалуйста, как сделать так, чтобы моя прога не просто набирала номер, но и соединялась и чтобы можно было одновременно отсылать файлы в оба направления (компонент MSCOMM).


поищи инфу о RS232, вобщем в MSComm задаешь параметры соединения - скорость, стоповые биты, четные, кол-во битов информации все это делаешь либо статически через свойства компонента, либо динамически через свойство Settings . потом открываешь порт через свойство PortOpen, потом шлешь данные через OutPut.

на втором компе ставишь событие OnComm, вроде, и делаешь Input.

ремарка, для текстовых строк порядок именно такой, для любой бинарной информации не уверен что так будет работать.

319
24 мая 2004 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by xelos

поищи инфу о RS232, вобщем в MSComm задаешь параметры соединения - скорость, стоповые биты, четные, кол-во битов информации все это делаешь либо статически через свойства компонента, либо динамически через свойство Settings . потом открываешь порт через свойство PortOpen, потом шлешь данные через OutPut.

на втором компе ставишь событие OnComm, вроде, и делаешь Input.

ремарка, для текстовых строк порядок именно такой, для любой бинарной информации не уверен что так будет работать.



да, если ты в .NET пишешь, то лучше пользуйся АПИ функциями - надежней.

272
24 мая 2004 года
vladsoft
512 / / 20.08.2000
Цитата:
Originally posted by xelos


да, если ты в .NET пишешь, то лучше пользуйся АПИ функциями - надежней.


у тебя нет конкретной реализации, примеры там разные и все такое..Пишу в VB6 и подпробнее про api, какие там функции используются....

319
25 мая 2004 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by vladsoft

у тебя нет конкретной реализации, примеры там разные и все такое..Пишу в VB6 и подпробнее про api, какие там функции используются....


вот кусок древней программы, еще с VB4.0, определяемый первый свободный порт, конфигурируем его:

Код:
'recehrche de ports disponibles
'parmi 4 ports à partir de dernier
For I = 4 To 1 Step -1
'etablir drapeau
    Disp = True
'choisir port
    MSComm1.CommPort = I
'ouvrir port
    MSComm1.PortOpen = True
'fermer port
    MSComm1.PortOpen = False
'si une erreur n'etait pas generée numéro du port -> NmPrt
    If Disp = True Then NmPrt = I
'prochain port
Next I
'choisir premier port disponible
MSComm1.CommPort = NmPrt
'si l'erreur etait generée 8 foi
If ErrCount = 8 Then
'message
    MsgBox "Pas de port disponible", vbCritical
'arrêter le programme
    End
End If
' 1200 bauds, parité, 7 bits de données et 1
' bit d'arrêt.
MSComm1.Settings = "1200,E,7,1"
' Indique au contrôle qu'il doit lire la totalité du
' tampon lors de l'utilisation de la propriété Input.
MSComm1.InputLen = 1

и ждем сообщения с порта:

Код:
Private Sub MSComm1_OnComm()
Select Case Comm1.CommEvent
'----------Erreurs--------------
        Case comBreak '
        ' Un signal d'arrêt a été reçu.
        ' Insère ici le code de gestion d'un signal
        ' d'arrêt.
        Case comCDTO
        ' Erreur de délai d'attente Détection de porteuse.
        Case comCTSTO
        ' Erreur de délai d'attente Prêt à émettre.
        Case comDSRTO
        ' Erreur de délai d'attente Modem prêt.
        Case comFrame
        ' Erreur de dépassement du délai imparti.
        Case comOverrun
        ' Perte de données.
        Case comRxOver
        ' Dépassement de la capacité du tampon de
        ' réception.
        Case comRxParity

' Erreur de parité.
        Case comTxFull
        ' Tampon de transmission plein.
   
' ----------------Evénements--------------
        Case comEvCD
        ' Modification dans la ligne Détection de
        ' porteuse.
        Case comEvCTS
        ' Modification dans la ligne Prêt à émettre.
        Case comEvDSR
        ' Modification dans la ligne Modem prêt.
        Case comEvRing
        ' Modification dans l'Indicateur d'appel.
       
       
        Case comEvReceive
        ' Nombre de caractères spécifiés par la propriété

        Case comEvSend
        ' Nombre de caractères spécifiés par la propriété
        ' SThreshold dans le tampon de transmission.
    End Select

End Sub

процедура пустая, как видишь, но логика такая...
272
25 мая 2004 года
vladsoft
512 / / 20.08.2000
Цитата:
Originally posted by xelos

вот кусок древней программы, еще с VB4.0, определяемый первый свободный порт, конфигурируем его:

Код:
'recehrche de ports disponibles
'parmi 4 ports à partir de dernier
For I = 4 To 1 Step -1
'etablir drapeau
    Disp = True
'choisir port
    MSComm1.CommPort = I
'ouvrir port
    MSComm1.PortOpen = True
'fermer port
    MSComm1.PortOpen = False
'si une erreur n'etait pas generée numéro du port -> NmPrt
    If Disp = True Then NmPrt = I
'prochain port
Next I
'choisir premier port disponible
MSComm1.CommPort = NmPrt
'si l'erreur etait generée 8 foi
If ErrCount = 8 Then
'message
    MsgBox "Pas de port disponible", vbCritical
'arrêter le programme
    End
End If
' 1200 bauds, parité, 7 bits de données et 1
' bit d'arrêt.
MSComm1.Settings = "1200,E,7,1"
' Indique au contrôle qu'il doit lire la totalité du
' tampon lors de l'utilisation de la propriété Input.
MSComm1.InputLen = 1

и ждем сообщения с порта:

Код:
Private Sub MSComm1_OnComm()
Select Case Comm1.CommEvent
'----------Erreurs--------------
        Case comBreak '
        ' Un signal d'arrêt a été reçu.
        ' Insère ici le code de gestion d'un signal
        ' d'arrêt.
        Case comCDTO
        ' Erreur de délai d'attente Détection de porteuse.
        Case comCTSTO
        ' Erreur de délai d'attente Prêt à émettre.
        Case comDSRTO
        ' Erreur de délai d'attente Modem prêt.
        Case comFrame
        ' Erreur de dépassement du délai imparti.
        Case comOverrun
        ' Perte de données.
        Case comRxOver
        ' Dépassement de la capacité du tampon de
        ' réception.
        Case comRxParity

' Erreur de parité.
        Case comTxFull
        ' Tampon de transmission plein.
   
' ----------------Evénements--------------
        Case comEvCD
        ' Modification dans la ligne Détection de
        ' porteuse.
        Case comEvCTS
        ' Modification dans la ligne Prêt à émettre.
        Case comEvDSR
        ' Modification dans la ligne Modem prêt.
        Case comEvRing
        ' Modification dans l'Indicateur d'appel.
       
       
        Case comEvReceive
        ' Nombre de caractères spécifiés par la propriété

        Case comEvSend
        ' Nombre de caractères spécifiés par la propriété
        ' SThreshold dans le tampon de transmission.
    End Select

End Sub

процедура пустая, как видишь, но логика такая...


спасибо почитаю разбирусь....и отвечу....

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог