![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| polundra |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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 Как сделать, чтобы по нажатию клавиши ввод из порта можно было остановить? |
|||
|
||||
| polundra |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 30.4.2008 Репутация: нет Всего: нет |
Продолжаю вопросы по теме:
1) Как осуществить чтение данных из Com-порта, пока определенный символ на придет (MS-Comm или еще как) ? 2) Как организовать "вечный" цикл, выход из которого по нажатию Buttona будет происходить? |
|||
|
||||
| kosten_spb |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 2.5.2008 Репутация: нет Всего: нет |
сделать цикл в отдельном потоке
посмотри тут, может найдешь чего полезного |
||||
|
|||||
| polundra |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |