Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MSComm и Com-порт, остановить ввод данных 
:(
    Опции темы
polundra
Дата 15.5.2008, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 30.4.2008

Репутация: нет
Всего: нет



VS-2005. Делаю ввод данных с Com-порта, используя MSComm:

        Dim MSComm1 As MSComm
        Dim Buffer As String
        Dim Today
        MSComm1 = New MSComm
        MSComm1.CommPort = 1  
        MSComm1.Settings = "38400,N,8,1"
        MSComm1.InputLen = 0
        ' Открытие последовательного порта.
        MSComm1.PortOpen = True
        Buffer = ""
        Do
            Do
                S = S & MSComm1.Input
            Loop Until InStr(S, vbCrLf)
            Console.WriteLine(S)  
' Вывод данных 
        Loop Until False
        MSComm1.PortOpen = False
 
Как  сделать, чтобы по нажатию клавиши ввод из порта  можно было остановить? 

PM MAIL   Вверх
polundra
Дата 22.5.2008, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 30.4.2008

Репутация: нет
Всего: нет



Продолжаю вопросы по теме:
1) Как осуществить чтение данных из  Com-порта, пока определенный символ на придет (MS-Comm или еще как) ?
2) Как организовать "вечный" цикл, выход из которого по нажатию Buttona будет происходить?
PM MAIL   Вверх
kosten_spb
Дата 23.5.2008, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 2.5.2008

Репутация: нет
Всего: нет



Цитата(polundra @  22.5.2008,  12:32 Найти цитируемый пост)
2) Как организовать "вечный" цикл, выход из которого по нажатию Buttona будет происходить? 

сделать цикл в отдельном потоке
Цитата(polundra @  22.5.2008,  12:32 Найти цитируемый пост)
1) Как осуществить чтение данных из  Com-порта, пока определенный символ на придет (MS-Comm или еще как) ?

посмотри тут, может найдешь чего полезного

PM MAIL WWW ICQ   Вверх
polundra
Дата 28.5.2008, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 30.4.2008

Репутация: нет
Всего: нет



Сделал примерно желаемое. По нажатию Button1 начинает читать из порта, по нажатию Button2 - перестает

Imports System
Imports System.IO.Ports
Imports System.Threading

Public Class Form1
    Dim _continue As Boolean
    Dim _serialPort As SerialPort
    Dim message As String
    Const Wrap = Chr(13) & Chr(10)
    Private readThread As Thread

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = False
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        _continue = True
        readThread = New Thread(AddressOf Read)
        readThread.IsBackground = True
        readThread.Start()
      End Sub

    Public Sub Read()
        _serialPort = New SerialPort()
        _serialPort.BaudRate = 38400
        _serialPort.ReadTimeout = 50000
        _serialPort.Open()
        FileOpen(2, "test", OpenMode.Output)
        While (_continue)
            Try
                message = _serialPort.ReadLine()
                Console.WriteLine(message)
                Print(2, message + Wrap)
            Catch ex As ObjectDisposedException
            End Try
            Thread.Sleep(100)
        End While
        _serialPort.Close()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        _continue = False
    End Sub
End Class

Это сообщение отредактировал(а) polundra - 29.5.2008, 15:20
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0448 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.