|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - управление сигналом DTR на COM порте - реализация bat\cmd или vbs (а лучше c++) |
|
CMD/BAT - управление сигналом DTR на COM порте - реализация bat\cmd или vbs (а лучше c++)
|
Новый участник Сообщения: 8 |
управление сигналом DTR на COM1 (Аппаратный перезапуск модемов (Watchdog таймер) iRZ MC52iT, MC52iWDT и iRZ MC52PU)
http://faq.radiofid.ru/topics/36-app...-i-irz-mc52pu/ Функция реализуется путём восьмикратного поднятия-опускания сигнала DTR в течение заданного времени. Рекомендуемые значения: 0.5 сек импульс, 0.5 сек пауза Помогите, нужно реализовать на CMD(приоритет с использованием sleep.exe)/vbs, можно WMI а лучше на C++ (скомпилированный exe) через CMD я так понимаю нельзя заблокировать порт (handle) это не работает: Скрытый текст
@ echo on
mode com1 dtr=off mode com1 sleep 2 mode com1 dtr=on sleep -m 500 mode com1 dtr=off sleep -m 500 mode com1 dtr=on sleep -m 500 mode com1 dtr=off sleep -m 500 mode com1 dtr=on sleep -m 500 mode com1 dtr=off sleep -m 500 mode com1 dtr=on sleep -m 500 mode com1 dtr=off sleep -m 500 mode com1 dtr=on sleep -m 500 mode com1 dtr=off sleep -m 500 mode com1 dtr=on sleep -m 500 mode com1 dtr=off sleep -m 500 mode com1 dtr=on sleep -m 500 mode com1 dtr=off sleep -m 500 mode com1 dtr=on sleep -m 500 mode com1 dtr=off sleep 2 pause exit и этот Скрытый текст
@ echo on
echo %time% echo Wait 500 ms (n*0.01sec)... for /l %%i in (1,1,8) do ( mode com1 dtr=on > nul call :sleep 50 mode com1 dtr=off > nul call :sleep 50 ) echo %time% pause exit /b :sleep :: пауза в сотых долях сек setlocal call :gettick set /a finish=%errorlevel%+%1 if %finish% geq 8640000 set finish=0 :slplabel call :gettick if %errorlevel% lss %finish% goto slplabel endlocal & exit /b :gettick :: долей сек, прошедших с начала дня setlocal set t=%time: =0% set /a tick=1%t:~9,2%-100+(1%t:~6,2%-100)*100+(1%t:~3,2%-100)*6000+(1%t:~0,2%-100)*360000 pause endlocal & exit /b %tick% есть на vbs через OLE DynamicWrapperX - не работает Скрытый текст
"SETDTR = 5 ' Set DTR high
CLRDTR = 6 ' Set DTR low ' открываем нужный нам порт COM1 hFile = Wrap.CreateFile("COM1", GENERIC_WRITE, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0) ' опускаем DTR s = Wrap.EscapeCommFunction(hFile, 6) cnt=1 ' запускаем цикл до 8 Do While cnt<9 WScript.Sleep 500 'кол-во мc s = Wrap.EscapeCommFunction(hFile, SETDTR) WScript.Sleep 500 'кол-во мc s = Wrap.EscapeCommFunction(hFile, CLRDTR) cnt=cnt+1 Loop Wrap.CloseHandle(hFile)" Скрипт на perl и python : Скрытый текст
Для Linux можно использовать следующий Perl-скрипт:
---------------------------DTR8X.pl---------------------------------------- #!/usr/bin/perl -w # yum install perl-Device-SerialPort # Fedora # apt-get install libdevice-serialport-perl # Debian # ./DTR8X.pl /dev/ttyUSB0 # syntax use Device::SerialPort; my $device = '/dev/ttyS0'; # default device my $milliseconds = 500; # 0.5s delay my $count = 8; $device = $ARGV[0] if ($#ARGV == 0); # get device from command line my $port=new Device::SerialPort($device) || die "new($device): $! "; for (my $i = 0; $i <= $count; $i++) { $port->pulse_dtr_off($milliseconds); } Для обоих операционных систем подойдет скрипт на Python: import serial import time s = serial.Serial() s.port = 'com2' s.timeout = 2 s.open() s.setDTR(False) for i in range(8): s.setDTR(True) time.sleep(0.5) s.setDTR(False) |
|
Отправлено: 23:47, 17-09-2017 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата anatolysn:
что конкретно не работает, как не работает эта команда что выдает? |
|
Отправлено: 00:21, 18-09-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать anatolysn, AFAIK mode и не должен давать результат, т.к. он только настраивает порт, а сигналы шлются при его использовании.
|
Отправлено: 09:28, 18-09-2017 | #3 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать модем не перезагружается.
А через CMD послать сигнал можно вообще DTR длительностью 0,5 сек? |
------- Отправлено: 19:09, 18-09-2017 | #4 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать anatolysn,
если в модеме (или не важно в чем) есть такая команда и поддерживается режим командной строки, то конечно можно. Вы поймите, cmd не всемогущий, как раз наоборот. Это как сервисный центр с небольшим набором штатных инструментов и никто не запрещает принести новый продвинутый инструмент и починить им, только в таком случае чаще и сервисный центр меняют на тот где именно эти инструменты штатные. |
|
Отправлено: 09:20, 19-09-2017 | #5 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Цитата anatolysn:
если вам нужен скомпилированный exe - какая разница на каком языке он был написан, и чем не устраивает расположенный по вашей ссылке? |
|
Отправлено: 10:03, 19-09-2017 | #6 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать не устраивает потому что окно само не закрываеться
|
------- Отправлено: 20:46, 26-09-2017 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Управление региональными настройками через cmd - BAT | denshik | Скриптовые языки администрирования Windows | 1 | 14-03-2017 14:09 | |
Любой язык - [решено] CMD/BAT+VBS завершение процессов | dinis.grek | Скриптовые языки администрирования Windows | 6 | 14-07-2014 07:25 | |
Любой язык - Написать на bat или vbs собирателя любого текста вводимого с клавиатуры | THEDOGG | Скриптовые языки администрирования Windows | 3 | 10-06-2014 22:20 | |
CMD/BAT - [решено] открытие диалога выбора файла без mshta.exe (на cmd или js,vbs) | AUTO-NEK | Скриптовые языки администрирования Windows | 14 | 23-05-2011 12:48 | |
Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов | 0bject | Скриптовые языки администрирования Windows | 614 | 19-01-2009 21:58 |
|