Кричалка в UR5EQF

Информация, так или иначе связанная с радио, но не подходящая в существующие разделы
Ответить
  • Автор
  • Сообщение
Не в сети
Аватара пользователя
Сообщения: 298
Зарегистрирован: 27 дек 2010 14:51

Re: Кричалка в UR5EQF

Сообщение EW1GR »

в самом логе никак...
как вариант написать простенькую программку по отлову нажатия F1 и воспроизведение нужного файла
_________________
-=Александр=-
− − · · ·   · · · − −   − − · · − −

Не в сети
Аватара пользователя
Сообщения: 645
Зарегистрирован: 12 ноя 2011 14:02
Откуда: KO13WQ
Контактная информация:

Re: Кричалка в UR5EQF

Сообщение EW4RF »

там вроде есть рекордер... он же и воспроизводит файлы...сам не пользовался.
_________________
ЕW4RF 73:)

Не в сети
Аватара пользователя
Сообщения: 298
Зарегистрирован: 27 дек 2010 14:51

Re: Кричалка в UR5EQF

Сообщение EW1GR »

EW4RF, проблема не записать, а воспроизвести когда трансивер включен на передачу
_________________
-=Александр=-
− − · · ·   · · · − −   − − · · − −

Не в сети
Аватара пользователя
Сообщения: 298
Зарегистрирован: 27 дек 2010 14:51

Re: Кричалка в UR5EQF

Сообщение EW1GR »

Как продвигается прожка?
_________________
-=Александр=-
− − · · ·   · · · − −   − − · · − −

Не в сети
Аватара пользователя
Site Admin
Сообщения: 2564
Зарегистрирован: 26 май 2009 04:38
Откуда: РБ

Re: Кричалка в UR5EQF

Сообщение EW2CC »

Хм... Этот порт (у меня два порта) вообще то занят программой лога и стучать надо как раз в этот порт, как обошли данную проблему ?
_________________
73! Сергей ex.EU2A, UC2CBT, UC2-009-602, Citizen Band - Лайнер, 251. On the air since 1980
Site Admin QRZ.BY

Не в сети
Аватара пользователя
Site Admin
Сообщения: 2564
Зарегистрирован: 26 май 2009 04:38
Откуда: РБ

Re: Кричалка в UR5EQF

Сообщение EW2CC »

Плохо.
У меня USB Unicom Dual
А так задумка просто супер !
_________________
73! Сергей ex.EU2A, UC2CBT, UC2-009-602, Citizen Band - Лайнер, 251. On the air since 1980
Site Admin QRZ.BY

Не в сети
Аватара пользователя
Сообщения: 298
Зарегистрирован: 27 дек 2010 14:51

Re: Кричалка в UR5EQF

Сообщение EW1GR »

EW2CC писал(а):Хм... Этот порт (у меня два порта) вообще то занят программой лога и стучать надо как раз в этот порт, как обошли данную проблему ?
оба порта заняты логом?
_________________
-=Александр=-
− − · · ·   · · · − −   − − · · − −

Не в сети
Аватара пользователя
Site Admin
Сообщения: 2564
Зарегистрирован: 26 май 2009 04:38
Откуда: РБ

Re: Кричалка в UR5EQF

Сообщение EW2CC »

Да!
По одному UART, по второму PTT и прочее
UART по зеркалу выдаётся для управления УМ и антенным коммутатором
Всё это реализовано прямо в интерфейсе, минуя комп.
Можно конечно PTT использовать в протоколе UART, но ! есть задержка, что не очень мне нравится.
_________________
73! Сергей ex.EU2A, UC2CBT, UC2-009-602, Citizen Band - Лайнер, 251. On the air since 1980
Site Admin QRZ.BY

Не в сети
Аватара пользователя
Сообщения: 298
Зарегистрирован: 27 дек 2010 14:51

Re: Кричалка в UR5EQF

Сообщение EW1GR »

EW2CC писал(а): А так задумка просто супер !
Сергей, у китайцев видел простенький mp3 плеер с управлением по уарт, говорят к ардуино прикрутить нет проблем ;)
если с умом подойти то там можно фраз на разных языках записать от cq и заканчивая прощаниями ;)
_________________
-=Александр=-
− − · · ·   · · · − −   − − · · − −

Не в сети
Сообщения: 120
Зарегистрирован: 03 ноя 2011 05:54
Контактная информация:

Re: Кричалка в UR5EQF

Сообщение raxp »

...есть у меня скриптик на VBS по контролю DLP-проектора, ничего кроме регистрации DynWrapX не нужно. Блокнот, вот и весь IDE :-):. В скрипте как раз реализован перехват клавиш, отсылка команд в порт, контроль DTR/RTS и речевой синтез. Думаю вполне можно приспособить под вашу задачу:

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

' Mitsubishielectric_Projector_EW270U_2.VBS
' Демонстрационный скрипт управления проектором Mitsubishielectric EW270U over RS-232 c голосовым сопровождением
' Поддержка следующих команд: включение-выключение, управление громкостью, переключения кадров и завершения скрипта
' Видео: http://www.youtube.com/watch?v=28PkWiXksl8, http://www.youtube.com/watch?v=9yZGb18nDzM
'
' Разработчик: Бадло Сергей Григорьевич aka raxp
' H-page: http://raxp.radioliga.com
'
' Зависимости: 
' · Win OS 32/64-bit 
' · COM-сервер DynWrapx.dll
' · SAPI (для озвучивания используется интерфейс по-умолчанию)
' · Физический RS-232 or virtual COM over USB
' · Подключенный проектор Mitsubishielectric моделей EW270U/EW230U-ST/EX240U/ES200U
'
' Региcтрация интерфейсов (обязательно первично однократно): 
' · в данном скрипте задайте порт подключения проектора
' · запустите regdynwrapx.bat (на Windows Vista/7/8/8.1 запускать правой кнопкой мыши от имени Администратора)
' Использование: 
' · запустите run_Mitsubishielectric_Projector_EW270U_2.cmd
' · для завершения нажмите 'Escape'


' Список команд
cmdon      = chr(13)&"*pow=on#"&chr(13)  ' активируем проектор 'Space'
cmdoff     = chr(13)&"*pow=off#"&chr(13) ' вырубаем проектор 'Space'
cmdup      = chr(13)&"*up#"&chr(13)      ' 'Up'
cmddown    = chr(13)&"*down#"&chr(13)    ' 'Down'
cmdleft    = chr(13)&"*left#"&chr(13)    ' 'Left'
cmdright   = chr(13)&"*right#"&chr(13)   ' 'Right'
cmdvolup   = chr(13)&"*vol=+#"&chr(13)   ' громкость больше '+'
cmdvoldown = chr(13)&"*vol=-#"&chr(13)   ' громкость меньше '-'

' подключаем голосовое сопровождение
' при надоедливости голоса speakon = false
Dim Speak
speakon = true ' разрешаем голосовое сопровождение
Set Speak = CreateObject("sapi.spvoice")
' регистрируем COM объект DynamicWrapperX в тихом режиме
Dim WshShell 
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run ("regsvr32.exe dynwrapx.dll /s"),3, true
' создаем объект DynamicWrapperX
Set Wrap = CreateObject("DynamicWrapperX.2")
Wrap.Register "user32.dll", "GetAsyncKeyState", "i=l", "f=s", "r=l"

' Настройка порта COM6, на котором проектор
port = "COM6"
' регистрируем функи для работы с портом
Wrap.Register "KERNEL32.DLL", "CreateFile", "i=sllllll", "r=l"
Wrap.Register "KERNEL32.DLL", "WriteFile", "i=lslll", "r=l" ' ANSI
' вариант с Unicode - Wrap.Register "KERNEL32.DLL", "WriteFile", "i=lllll", "r=l"
Wrap.Register "KERNEL32.DLL", "CloseHandle", "i=l", "r=l"
Wrap.Register "KERNEL32.DLL", "EscapeCommFunction", "i=hu", "r=l"
' забиваем аттрибуты
GENERIC_WRITE = 1073741824
FILE_SHARE_READ = 1
FILE_SHARE_WRITE = 2
OPEN_EXISTING = 3
FILE_ATTRIBUTE_NORMAL = 128
cbWritten = " "
pcbWritten = Wrap.StrPtr(cbWritten)
' открываем нужный нам порт COMn
hFile = Wrap.CreateFile(port, GENERIC_WRITE, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)
' отключаем сигналы на DTR/RTS
Wrap.EscapeCommFunction hFile, 4
Wrap.EscapeCommFunction hFile, 6

' Информируем пользователя о начале работы
if (speakon = true) then 
Speak.Speak "Готов измываться над проектором."
End if

p = true

' запускаем бесконечный цикл по условию нажатия 'Escape' с задержкой
Do While Wrap.GetAsyncKeyState(27) = "0"

'задержка на кол-во миллисекунд
WScript.Sleep 500 
' отлавливаем нажатие SPace (пробела)
probel = Wrap.GetAsyncKeyState(32)
' отлавливаем нажатие Up 
upt = Wrap.GetAsyncKeyState(38)
' отлавливаем нажатие Down 
downt = Wrap.GetAsyncKeyState(40)
' отлавливаем нажатие Left 
leftt = Wrap.GetAsyncKeyState(37)
' отлавливаем нажатие Right 
rightt = Wrap.GetAsyncKeyState(39)
' отлавливаем нажатие Add (+) key
plus = Wrap.GetAsyncKeyState(187)
' отлавливаем нажатие SUBTRACT (-) key
minus = Wrap.GetAsyncKeyState(189)


if (probel = "1") then 
 p = not p

 if (p = false) then 
  ' активируем проектор
  Wrap.WriteFile hFile, cmdon, Len(cmdon), pcbWritten, 0
  ' озвучиваем
  if (speakon = true) then 
   Speak.Speak "Проектор включен."
  End if
 End if

 if (p = true) then 
  ' вырубаем проектор
  Wrap.WriteFile hFile, cmdoff, Len(cmdoff), pcbWritten, 0
  ' озвучиваем
  if (speakon = true) then 
   Speak.Speak "Проектор выключен."
  End if
 End if
End if

if (upt = "1") then 
 ' посылаем
 Wrap.WriteFile hFile, cmdup, Len(cmdup), pcbWritten, 0
 ' озвучиваем
 if (speakon = true) then 
  Speak.Speak "Вверх."
 End if
End if

if (downt = "1") then 
 ' посылаем
 Wrap.WriteFile hFile, cmddown, Len(cmddown), pcbWritten, 0
 ' озвучиваем
 if (speakon = true) then 
  Speak.Speak "Вниз."
 End if
End if

if (leftt = "1") then 
 ' посылаем
 Wrap.WriteFile hFile, cmdleft, Len(cmdleft), pcbWritten, 0
 ' озвучиваем
 if (speakon = true) then 
  Speak.Speak "Влево."
 End if
End if

if (rightt = "1") then 
 ' посылаем
 Wrap.WriteFile hFile, cmdright, Len(cmdright), pcbWritten, 0
 ' озвучиваем
 if (speakon = true) then 
  Speak.Speak "Вправо."
 End if
End if

if (plus = "1") then 
 ' посылаем
 Wrap.WriteFile hFile, cmdvolup, Len(cmdvolup), pcbWritten, 0
 ' озвучиваем
 if (speakon = true) then 
  Speak.Speak "Громкость больше."
 End if
End if

if (minus = "1") then 
 ' посылаем
 Wrap.WriteFile hFile, cmdvoldown, Len(cmdvoldown), pcbWritten, 0
 ' озвучиваем
 if (speakon = true) then 
  Speak.Speak "Громкость меньше."
 End if
End if

Loop ' завершение цикла

' закрываем порт
Wrap.CloseHandle(hFile)
' озвучиваем
if (speakon = true) then 
 Speak.Speak "Программа завершена."
End if
Начиная с семерок запуск из под админа командным скриптом (cmd):

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

@echo off
Set "xOS=x64"& If "%PROCESSOR_ARCHITECTURE%"=="x86" If Not Defined PROCESSOR_ARCHITEW6432 Set "xOS=x32"
echo System is %xOS%
echo.

if "%xOS%"=="x64" start "" "%windir%\syswow64\wscript.exe" "%~dp0Mitsubishielectric_Projector_EW270U_2.vbs"
if "%xOS%"=="x32" start "" "%windir%\system32\wscript.exe" "%~dp0Mitsubishielectric_Projector_EW270U_2.vbs"
Единственно чего нет, выбора куда воспроизводить аудио, но подозреваю, что это некритично. Если не нужен речевой синтез, а нужно воспроизводить именно аудиофайлы, то так:

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

Set wavv = CreateObject("SAPI.SpVoice")
set sap = CreateObject("SAPI.SpFileStream")
sap.Open "katalog\my1.wav"
wavv.SpeakStream sap
sap.Close
\

зы: да, сам скрипт регистрации:

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

@echo off
echo This script must be run with Admin Privilegies
echo.

:: Checking system version
Set "xOS=x64"& If "%PROCESSOR_ARCHITECTURE%"=="x86" If Not Defined PROCESSOR_ARCHITEW6432 Set "xOS=x32"
echo System is %xOS%
echo.

:: Unregistering old DynwrapX library ver 1.0
regsvr32 /u /s "%windir%\system32\dynwrapx.dll"

if "%xOS%"=="x64" call :Reg_x64
if "%xOS%"=="x32" call :Reg_x32

echo.
pause
exit /B


:Reg_x32
  echo Registering x32 library

  copy /y "%~dp0dynwrapx\32\dynwrapx.dll" "%windir%\System32\*"
  regsvr32 /s "%windir%\System32\dynwrapx.dll"

  if %errorlevel%==0 (echo Registration - OK.) else (echo Registration - FAILED !!! Code: %errorlevel%)

Exit /B


:Reg_x64
  echo Registering x32 library

  copy /y "%~dp0dynwrapx\32\dynwrapx.dll" "%windir%\SysWOW64\*"
  regsvr32 /s "%windir%\SysWOW64\dynwrapx.dll"

  if %errorlevel%==0 (echo Registration - OK.) else (echo Registration - FAILED !!! Code: %errorlevel%)

  echo.
  echo Registering x64 library

  copy /y "%~dp0dynwrapx\64\dynwrapx.dll" "%windir%\System32\*"
  regsvr32 /s "%windir%\System32\dynwrapx.dll"

  if %errorlevel%==0 (echo Registration - OK.) else (echo Registration - FAILED !!! Code: %errorlevel%)
Exit /B
_________________
Белорусский журнал «Радиолюбитель»
UR3QQJ https://qrz.com/db/UR3QQJ

Не в сети
Аватара пользователя
Сообщения: 298
Зарегистрирован: 27 дек 2010 14:51

Re: Кричалка в UR5EQF

Сообщение EW1GR »

похоже кричалка вместе с национальным ВебСДР с защитой от левых подключений накрылись медным тазом?
_________________
-=Александр=-
− − · · ·   · · · − −   − − · · − −

Не в сети
Аватара пользователя
Сообщения: 449
Зарегистрирован: 06 июн 2013 12:56

Re: Кричалка в UR5EQF

Сообщение ew3ew »

EW1GR писал(а):похоже кричалка вместе с национальным ВебСДР с защитой от левых подключений накрылись медным тазом?
Думается, нам очень скоро предстоит стать свидетелями гораздо более грандиозных проектов.

Не в сети
Аватара пользователя
Сообщения: 449
Зарегистрирован: 06 июн 2013 12:56

Re: Кричалка в UR5EQF

Сообщение ew3ew »

EW8SA писал(а):...Да и зачем оно ВАМ???...
За коллег переживаю :smu:sche_nie:
Ответить