[решено] Чтение из COM порта

Ответить
Аватара пользователя
w3d1

[решено] Чтение из COM порта

Сообщение w3d1 »

Как можно выставить таймауты для чтения ком-порта?

Нашел такое:
http://www.autoitscript.com/forum/index.php.htm?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.
Аватара пользователя
Alex2103

Re: [решено] Чтение из COM порта

Сообщение Alex2103 »

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

Re: [решено] Чтение из COM порта

Сообщение Alex2103 »

Вот она:





Код:

Код: Выделить всё

;================================================================================
;
; 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
Аватара пользователя
Alex2103

Re: [решено] Чтение из COM порта

Сообщение Alex2103 »

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



Вся проблема в том, что непонятно что в длл-ке (см первое сообщение) зашито, есть ли там эта настройка.

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

Вернуться в «AutoIt»