Bueno, llegó el relecillo y funciona a la perfección, aunque ha costado un poco hacerle funcionar desde el RocketLauncher como quería
Pegafun...
Lo primero, lo conectamos al ordenador (en Win7 me pidió reiniciar, Win10 no) y ejecutamos el 'GuiApp_English.exe' dándole a 'Find device' para buscar el ID del relé, en mi caso 'HURTM' (hay que abrir la pestaña hacia abajo)
Desde este mismo programa podemos probar el funcionamiento.
Teniendo el ID nos creamos un par de archivos .bat para llamarlos luego desde el Rocket, yo he creado una carpeta con lo necesario:
CODE
08/08/2013 04:33 7.680 CommandApp_USBRelay.exe
09/07/2013 09:21 70.656 GuiApp_English.exe
06/04/2021 19:37 37 Rele1_Off.bat
06/04/2021 19:36 36 Rele1_On.bat
08/08/2013 04:27 13.312 usb_relay_device.dll
18/01/2013 16:37 799.232 XCGUI.dll
Los ejecutables podemos descargarlos al final de esta güeb:
www.openhacks.com/page/productos/i...omputer-ControlRele1_On.batCODE
CommandApp_USBRelay HURTM open 01
Rele1_Off.batCODE
CommandApp_USBRelay HURTM close 01
Podemos probar cómo funcionan desde una ventana CMD llamándolos.
Si buceamos un poco por inet sobre cómo hacerlo funcionar desde el RocketLauncher llegaremos al 'User Functions Init.ahk' y que ahí dentro hay que programar las llamadas a nuestros
Rele1_On.bat y
Rele1_Off.bat, en principio parece fácil pero no conseguía discriminar el sistema y la llamada también se las trae. Yo tengo varios sistemas en Hyperspin de juegos de pistolas, uno de ellos 'Gun Games', lo he programado con este de momento, con esto ya añadir otros sistemas es fácil. Cada vez que lanzamos un juego del sistema Gun Games activa el relé y al salir del juego lo desactiva.
User Functions Init.ahkCODE
; Use this function to define any code you want to run in every module on start
StartGlobalUserFeatures(){
Log("StartGlobalUserFeatures - Starting")
Log(systemName)
Log("No systemName aquí, WTF?")
Log("StartGlobalUserFeatures - Ending")
}
Log("systemName aquí sí, WTF?")
Log(systemName)
If (systemName = "Gun Games"){
Log("Activando Rele LEDs IR")
Run("Rele1_On.bat","D:\Arcade\Tools\USB_Rele\")
}
; Use this function to define any code you may need to stop or clean up in every module on exit
StopGlobalUserFeatures(){
Log("StopGlobalUserFeatures - Starting")
Log("Desactivando Rele LEDs IR")
Run("Rele1_Off.bat","D:\Arcade\Tools\USB_Rele\")
Log("StopGlobalUserFeatures - Ending")
}
; Use this function to define any code you want to run before Pause starts
StartPauseUserFeatures(){
Log("StartPauseUserFeatures - Starting")
; INSERT CODE HERE
Log("StartPauseUserFeatures - Ending")
}
; Use this function to define any code you may need to stop or clean up after Pause ends
StopPauseUserFeatures(){
Log("StopPauseUserFeatures - Starting")
; INSERT CODE HERE
Log("StopPauseUserFeatures - Ending")
}
Bueno, las llamadas a los
bat son las órdenes
Run que se las traen cómo hay que definirlas, lo curioso es que en principio entendí que hay que meter la orden
If para discriminar el sistema entre las órdenes
CODE
StartGlobalUserFeatures(){
Log("StartGlobalUserFeatures - Starting")
............
Log("StartGlobalUserFeatures - Ending")
}
Resulta que ahí dentro, la variable
systemName no tiene 'valor' ninguno y el If no funciona ahí, no entiendo porqué. Las órdenes Log son textos que se guardan en el log del RocketLauncher y ayudan un montón para perseguir estas cosas, entre comillas lo que pongamos va al log y si no hay comillas es una variable, la que nos interesa
Log(systemName) a ver si nos escribe el nombre del sistema que arrancamos, si miramos el log con este User Functions Init.ahk y buscamos nuestros textos, tendremos:
CODE
15:37:26:397 | MD | INFO | +0 | StartGlobalUserFeatures - Starting
15:37:26:397 | MD | INFO | +0 |
15:37:26:397 | MD | INFO | +0 | No systemName aquí, WTF?
15:37:26:397 | MD | INFO | +0 | StartGlobalUserFeatures - Ending
15:37:25:447 | MD | INFO | +0 | systemName aquí sí, WTF?
15:37:25:447 | MD | INFO | +0 | Gun Games
15:37:25:447 | MD | INFO | +0 | Activando Rele LEDs IR
Aquí vemos el resultado, que no aparece el nombre del sistema en un sitio y por ello si ponemos ahí el If no funciona, en el otro sí aparece el nombre del sistema y ahí sí nos funcionará el If. Las lineas con Log si quereis podeis borrarlas del User Functions Init.ahk. Seguramente se puede hacer la llamada directamente al .exe con los parámetros y no usar el .bat, y a malas por lo que veo se puede hacer que corte el relé si pausamos el juego. Ala, tenéis deberes
...