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

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

Ответить
Настройки темы
помогите с управлением COM-портом

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


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

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


Изменения
Автор: Demka_DV
Дата: 09-09-2010
Описание: Добавление
Очень хотелось попробовать работу Autoit c виртуальным или физическими COM портами.
Я взял CommMG.au3 и commg.dll указанных на страничке http://www.autoitscript.com/forum/in...howtopic=45842
ссылка (http://www.mosaiccgl.co.uk/AutoItDow...et=COMMGv2.zip)
Пишу утилиту обращения PC к ECU автомобиля по протоколу ISO 9141-2 с подключенным преобразователем USB-K-Line

После подключения к разъему диагностики автомобиля и хост-компьютеру происходит инициализации, в виде специальной посылки. Это является простым методом для определения факта подключения.
Иначе называется ('Send 0x33 (00110011) at rate of 5 baud (LSB) with a Start Bit and a Stop bit)
после отправки 0x33 на скорости 5 baut, затем требуется переключить скорость работы порта на 10400 baud?, после чего начинается обмен данными с ECU автомашины
Вопрос.

в CommMG.au3 имеется функция _CommSendBreak(), вот описание:
;================================================================================================
; Function Name: SendBreak($iDowTime,$iUpTime)
; NB Simulates the break signal used by some equipment to indicate the start of a sequence
; Not tested so might Not work. Any feedback welcome - PM martin on Autoit forum

; Description: sets the TX line low for $iDowTime, then sets it high for $iUpTime

; Parameters: $iDowTime - integer: the number of ms to hold the TX line down
; $iUpTime - integer: the number of ms to hold the line up for before returning
; if $iDowTime or $iUpTime is zero then does nothing and returns
; Returns: on success returns 1
; on failure returns 0 and sets @error to
; = 1 if one of params is zero
; = 2 1 unable to use the DLL file,
; = 3 unknown "return type" from dll
; = 4 "function" not found in the DLL file.

; Notes : Not tested!
;================================================================================================
функция позволяет задавать длительность перевода линии Tx в состояние (0) или (1)....подскажите как мне эмулировать передачу данных (0x33) на скорости 5 baud..
длительность импульсов нашел в инернете..порядка 200 ms. , если я все правильно понял, то эмуляция означает следующее...
'Send 0x33 (00110011) at rate of 5 baud (LSB) with a Start Bit and a Stop bit

'Send Startbit
Set K line low (0)
Pause 200ms

'Now to send out 0x33
'Send out bit0
Set K line high (1)
pause 200ms
'Send out bit1
Set K line low (1)
pause 200ms
'Send out bit2
Set K line low (0)
pause 200ms
'Send out bit3
Set K line low (0)
pause 200ms
'Send out bit4
Set K line low (1)
pause 200ms
'Send out bit5
Set K line low (1)
pause 200ms
'Send out bit6
Set K line low (0)
pause 200ms
'Send out bit7
Set K line low (0)
pause 200ms

'Send Stopbit
Set K line high (1)
Pause 200ms


можно ли это программно организовать?
как вариант может поставить перемычку на DTR и использовать функцию _CommSetDTR()
очень жду ваших решений..

привожу лог работы порта из другой рабочей программы
COM port is opened
In/out queue size 1024/512
Purge the serial port: RXABORT, RXCLEAR, TXABORT, TXCLEAR
Set timeouts: ReadInterval=-1, ReadTotalTimeoutMultiplier=0, ReadTotalTimeoutConstant=0, WriteTotalTimeoutMultiplier=0, WriteTotalTimeoutConstant=5000
Baud rate 19200
RTS off
DTR on
Data bits=8, Stop bits=1, Parity=None
Set chars: Eof=0x1A, Error=0x00, Break=0x00, Event=0x00, Xon=0x11, Xoff=0x13
Handflow: ControlHandShake=(DTR_CONTROL), FlowReplace=(), XonLimit=256, XoffLimit=256
Baud rate 10400
RTS off
DTR on
Data bits=8, Stop bits=1, Parity=None
Set chars: Eof=0x1A, Error=0x00, Break=0x00, Event=0x00, Xon=0x11, Xoff=0x13
Handflow: ControlHandShake=(DTR_CONTROL), FlowReplace=(), XonLimit=256, XoffLimit=256
Purge the serial port: RXABORT, RXCLEAR
Break on
Break off
Break off
Break on
Break on
Break off
Break off
Break on
Break on
Break off

U (0x55)
ў (0xA2)
ў¦ (0xA2A6)
Baud rate 10400
RTS off
DTR on
Data bits=8, Stop bits=1, Parity=None
Set chars: Eof=0x1A, Error=0x00, Break=0x00, Event=0x00, Xon=0x11, Xoff=0x13
Handflow: ControlHandShake=(DTR_CONTROL), FlowReplace=(), XonLimit=256, XoffLimit=256

жирным шрифтом выделил интересующий вопрос

Отправлено: 10:49, 09-09-2010

 

Аватара для Creat0R

Must AutoIt


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

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


Код заключайте в соответствующие теги.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 21:31, 09-09-2010 | #2



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

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


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


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

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


Вы безусловно правы в части оформления, только код я не отправлял, представил только логическую схему и лог порта, а основной вопрос был по функциям CommMG.au3 и организации отправки значения 0x33 на скорости 5 baut.

Отправлено: 09:32, 10-09-2010 | #3


Аватара для Creat0R

Must AutoIt


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

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


Цитата Demka_DV:
код я не отправлял »
А это что:

Цитата:
'Send Startbit
Set K line low (0)
Pause 200ms

....
?

Не важно код AutoIt'а это или нет, длинный текст, например тот же лог нужно заключать в тег кода. Также можно помещать в цитату, либо в тег more. Иначе пропадает желаение читать ваш пост, всё перемешано на первый взгляд, и разбирать ну никак не хочется (это же для вас не в пользу, те кто захотят помочь только из за этого могу выйти из темы и пойти дальше по своим делам ).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 10:11, 10-09-2010 | #4



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Система - Помогите найти программу управлением включения и выкл. монитора severagent007 Программное обеспечение Windows 3 18-03-2011 19:09
Route/Bridge - [решено] Помогите!Подскажите! Существует ли свитч или хаб с USB портом(для подключения 3G) bishopik Сетевое оборудование 2 12-11-2009 20:35
Профи - помогите разобраться с удаленным управлением. SaDen Сетевые технологии 3 17-03-2006 10:10
работа с com-портом spartan Железо во FreeBSD 11 24-02-2005 23:25
Проблемы с ИК-портом SNV Мобильные ОС, смартфоны и планшеты 10 06-11-2004 16:51




 
Переход