Ermes Publicado 21 de Octubre del 2014 Reportar Share Publicado 21 de Octubre del 2014 Recogido de un post mío antiguo (alla por el 2007) que seguro que hoy en día a alguien le viene bien. He preferido copy/paste que hacer un bump en este caso, pero si alguien quiere ver el original es este http://www.escuadron111.com/new/index.php?/topic/2885-programacion-tm/ Lo he revisado muy por encima, con lo que lo mismo hay algún gazapo que otro. Simplemente mirad todo lo que se puede hacer con esa "bestia" ======== Bueno, pues tenia por ahi unos "tips" de programacion que se me terminaran perdiendo, con lo que me he decidido a ponerlos por aqui, que seguro que vienen bien.NOTA: La mayoria de las partes de codigo han sido recuperadas de los foros de programacion de FrugalWorld, los Xfiles de DonUlfonso, los perfiles de Bob Church, Jagstang, J. Hallows, etc... Boton con dos funciones dependiendo del tiempo que se pulsa =========================================================== BTN S3 KD(X1) DLY(300) KU(X1) DEF X2 (X1 AND NOT S3) BTN X2 Pinky_switch (quick release) Cuando se pulsa S1 genera una pulsacion instantanea de X1. Esa provoca que X1* se ponga en on. Se mantiente asi hasta que 300ms despues se activa X10 y genera otro pulso de X1 haciendo que X1* se ponga a off Con la siguiente linea se consigue que si sueltas S1 dentro de esos 300ms se active X3 y por tanto la funcion correspondiente: DEF X2 (X1* AND NOT S1) BTN X2 Pinky_switch (quick release) Lo mismo pero con otro botón que no sea el pinky P.ej. boton S1: pulsacion corta (menos de 2 segundo) MSL Step / Pulsacion larga TrimReset BTN S1 KD(X1) DLY(2000) KU(X1) DEF X2 (X1 AND NOT S1) DEF X3 (S1 AND NOT X1) <-- Mantengo S1 y X1 se ha desactivado, es decir, 2seg mas tarde Rem --- ahora asigno las funciones a las variables BTN X2 MSL_Step BTN X3 TrimReset Al hacer un doble click y mantener mueve RudderTrim. El siguiente doble-click mueve el AileronTrim ================================================================================================= Con cada doble-click vamos cambiando el estado de X3* BTN H1L /T KD(X1) DLY(350) KU(X1) /T KD(X2) DLY(350) KU(X2) BTN H1R /T KD(X9) DLY(350) KU(X9) /T KD(X10) DLY(350) KU(X10) DEF X3 (X1 AND X2) OR (X9 AND X10) DEF X4 DELAY(400) (H1L OR H1R) DEF X5 (X4 AND H1L) AND X3* DEF X6 (X4 AND H1L) AND NOT X3* BTN X5 RudderTrimLeft BTN X6 AileronTrimLeft DEF X7 (X4 AND H1R) AND X3* DEF X8 (X4 AND H1R) AND NOT X3* BTN X7 RudderTrimRight BTN X8 AileronTrimRight Con un doble click de S1 ejecuto Trim_Reset DEF X1 (NOT X1* AND H1L) OR (X1* AND X40) DEF X2 (NOT X2* AND H1L AND X1*) OR (X2* AND X40) DEF X40 DELAY(350) (X1* OR X2*) DEF X3 (X1 AND X2) AND H1L BTN X3 Trim_Reset Selector de dos estados============================ Hay ocasiones en las que es necesario utilizar distintas funciones para cada boton en funcion del avion que se este volando. Por ejemplo, en aviones como el A10 que no tiene selector de programas de CMS podriamos utilizar esos botones.Esa misma tecnica es la que utlizo para configurar si voy a utilizar las IVC (internal voice comms) o TeamSpeak. Es como si fuera un interruptor, en nuestro caso de dos estados, que se puede seleccionar en cualquier momento (generalmente al principio, si es que queremos llegar a hablar algo )Selecciono el tipo de comunicacion RogerWilco o IVC (por defecto) pulsando simultaneamente H2U y H3U Rem X1 hace de indicador de estado de la seleccion que queramos. DEF X1 ( H2U AND H3U ) Rem toggle indicator -> (default) Ingame-Comms / RogerWilco DEF X52 (T2 AND NOT S3) AND NOT X1* DEF X53 (T3 AND NOT S3) AND NOT X1* DEF X54 (T2 AND NOT S3) AND X1* DEF X55 (T2 AND NOT S3) AND X1* BTN X52 Transmit_Comm1 Rem BTN X53 Transmit_Comms2 Rem BTN X54 RogerWilco BTN X55 Chat NOTA: el indicador '*' significa que cambia de estado 'on-->off-->on...' el flag correspondiente (X1*) cada vez que se activa X1.P. ej. DEF X1 S1 __ ________ S1 ___| |___| |__ __ ________ X1 ___| |___| |__ ______ X1* ___| |___________ ^ ^ | | cambios de estado Selector de modos (tres estados o modos)======================================== Conseguimos que X1 este activo una vez que se haya presionado H1L, y hasta que se presione H1U o H1R. BTN H1L /I KD (X1) KU (X2) KU (X3) REM MODE 1 /O ^ BTN H1U /I KU (X1) KD (X2) KU (X3) REM MODE 2 /O ^ BTN H1R /I KU (X1) KU (X2) KD (X3) REM MODE 3 /O ^ Tan solo tendríamos que utilizar los flags X1, X2 y X3 como "master" de cada modo. Es decir, usarlos con un AND a cada comando que le quisiéramos poner esa condición 4 Citar Enlace al comentario Compartir en otros sitios web More sharing options...
MrWell Publicado 22 de Octubre del 2014 Reportar Share Publicado 22 de Octubre del 2014 Jodo que bueno, muchas gracias Citar Bueno, lo de siempre ¿no?... 20 millas y al turrón.http://www.victor-pozo.com/imagenes/Otras/Red-4.jpg Enlace al comentario Compartir en otros sitios web More sharing options...
magami Publicado 22 de Octubre del 2014 Reportar Share Publicado 22 de Octubre del 2014 Gracias Ermes! Seguro que a mi me vendra de perlas, esta tarde me pongo a ello!!! Citar Enlace al comentario Compartir en otros sitios web More sharing options...
Publicaciones recomendadas
Join the conversation
Puede publicar ahora y registrarse más tarde. Si tiene una cuenta, iniciar sesión para publicar con su cuenta.