Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Чтение из COM порта

Ответить
Настройки темы
[решено] Чтение из COM порта

Новый участник


Сообщения: 18
Благодарности: 0

Профиль | Отправить PM | Цитировать


Как можно выставить таймауты для чтения ком-порта?
Нашел такое: http://www.autoitscript.com/forum/index.php?showtopic=45842&st=0&p=341916&#entry341916

там есть:
Код: Выделить весь код
;gets characters received returning when one of these conditions is met: 	
;receive @CR, received 20 characters or 200ms has elapsed 	
$instr = _CommGetString()
не могу понять как увеличить время или количество символов и вообще убрать возврат по @CR.

Отправлено: 14:46, 10-09-2009

 

Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


_CommGetString() возвращает строку. _CommReadByte() возвращает байт. Про время не понял...в том примере видимо _CommGetString() было в цикле с периодом в 200мс.

Отправлено: 16:03, 10-09-2009 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 18
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вот она:

Код: Выделить весь код
;================================================================================
;
; Function Name:  _CommGetstring()
; Description:    Get whatever characters are available received by the port for the selected channel
; Parameters:     none
; Returns:  on success the string and @error is 0
;           if input buffer empty then empty string returned
;           on failure an empty string and @error set to the error set by DllCall
; Notes: Use GetLIne to get a whole line treminated by @CR or a defined character.
;=================================================================================

Func _Commgetstring()
	;get a string NB could be part of a line depending on what is in buffer
	Local $vDllAns
	;$sStr1 = ''
	;$vDllAns = DllCall($hDll,'str','GetByte')
	$vDllAns = DllCall($hDll, 'str', 'GetString')

	If @error <> 0 Then
		SetError(1)
		ConsoleWrite('error in _commgetstring' & @CRLF)
		Return ''
	EndIf
	Return $vDllAns[0]
EndFunc   ;==>_Commgetstring

Отправлено: 07:44, 11-09-2009 | #3


Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


w3d1, смотри выше

Отправлено: 08:06, 11-09-2009 | #4

w3d w3d вне форума

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


В том-то и дело, что цикла там нет

Вся проблема в том, что непонятно что в длл-ке (см первое сообщение) зашито, есть ли там эта настройка.
По обсуждению из http://www.autoitscript.com/forum/index.php?showtopic=45842&st=0&p=341916&#entry341916 не понял, а вопросы задавать - не настолько хорошо английский знаю.

Отправлено: 18:38, 11-09-2009 | #5


Новый участник


Сообщения: 18
Благодарности: 0

Профиль | Отправить PM | Цитировать


Сделал через MsComm32.ocx

Отправлено: 12:36, 18-09-2009 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Чтение из COM порта

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Чтение строки из файла в переменную Николя Скриптовые языки администрирования Windows 42 17-01-2010 19:42
Разное - [решено] Бесконечное чтение любых СD-DVD. Серый Волк Microsoft Windows Vista 12 25-11-2008 05:26
Прочие БД - [решено] Чтение текущего пользователя в строку ЕвгенийN Программирование и базы данных 1 23-05-2008 06:01
[решено] Чтение-запись битого файла vit777 Видео и аудио: обработка и кодирование 3 19-12-2007 09:45
чтение данных из COM-порта в лог romez777 Программирование в *nix 0 28-11-2007 15:57




 
Переход