Primera Incursión en SIOC

Bien, ya tenemos nuestro entrenador conectado a nuestra tarjeta Master, conectamos el USB, parece que nuestro sistema no ha dado errores.... así que vamos a hacer nuestro primer acercamiento a la programación.

Opencockpits ofrece dos tipos de Software para controlar nuestras tarjetas, a saber: El software IOCards y el SIOC. El primero es muuy fácil de usar, pero también muuuy corto a la hora de hacer ciertas cosas. El SIOC, sin embargo, es mas voluble pero a su vez mas complicado de programar.

Según he leído por algún lado, pueden correr los dos softwares a la vez, pero yo no lo he probado, así que no puedo decir nada al respecto de eso. Es mas, como el SIOC puede hacer mas cosas que el otro, no merece la pena usar ambos a la vez.

En este Blog, nos vamos a centrar en el lenguaje SIOC que es el que he elegido para hacer funcionar todo el 'tinglao'.

Lo primero que tenemos que hacer es bajarnos la última versión de SIOC de la página de opnencockpits e instalarla en nuestro ordenador, no debemos tener ningún problema. También es muuuuuy conveniente descargarse los manuales y tutoriales para saber por donde vamos.

Bien, una vez que tenemos instalado el SIOC, ahora es el momento de ir probando nuestro 'tinglado'. conectamos de alguna manera un interruptor entre las patillas 1 y 10 del conector J3 de nuestra placa Master (yo lo hice con el entrenador) y un diodo LED con una resistencia de unos 440 ohm en serie entre los pines 2 y 3 del conector J2 (ojo con la polaridad del diodo, la conexión correcta sería... pin 3 --> resistencia, resistencia --> Ánodo del diodo, cátodo del diodo --> pin 2).

No es necesario conectar todavía una fuente de alimentación a la placa Master, pues el consumo del diodo es muy pequeño (entre 10 y 15 mA) y el mismo puerto USB puede con el, no obstante, siempre es mejor hacerlo, pero... cuidado con la polaridad.

Lo primero que tenemos que hacer es comprobar que el Hardware funciona, para ello usaremos la aplicación Controlador.

Para empezar, debemos editar el fichero Controlador.ini que se encuentra en la carpeta raíz del SIOC, esto se puede hacer con el bolck de notas mismamente.


Las líneas que estan entre corchetes estan comentadas, esto quiere decir que el sistema las obvia y solo sirven para dar mas información al programador. En cuanto a los parámetros, podéis dejar los que se ven.

Ahora llega el momento de arrancar el controlador.exe. Es posible que os dé un error en el arranque (a mí me dá Unable to start IO.SYS. Error code=1275), pero aunque 'acojona' no tiene mas consecuencias.



Para que empiece a funcionar oprimimos el botón Start. En ese momento, si accionamos el interruptor, debe salirnos que se ha activado la entrada 1, despues, en el campo IN/DPLAY metemos un 11 (primera salida) y al dar al botón ON debe encenderse el LED, al dar al botón OFF apagarse, si es este el caso.... enhorabuena, vamos por buen camino, pero todavía queda un trecho que recorreremos juntos. Damos al botón Exit y salimos de la aplicación.

 Hasta ahora, hemos comprobado que nuestro Hardware funciona, nos queda el camino de programar en SIOC.

Antes de programar con el Sioc, debemos configurarlo.



EL SIOC.INI

Este fichero se encuentra en el directorio (carpeta) raíz del SIOC y en el se ajustan varios parámetros que hacen que nuestro sistema funcione correctamente. Vamos a verlo por bloques.


 Como veis, las líneas que estan entre corchetes estan comentadas, esto quiere decir que el sistema las obvia y solo sirven para dar mas información al programador, lo cual no es poco.

El SIOC.INI distribuye la informaciónen varios bloques que vamos a ver a continuación.

1º bloque: SIOC

Bien, el primer parámetro programable es el puerto del servidor IOCP, el que dice IOCP_port=8092, Yo nunca he cambiado este parámetro y siempre me ha ido bien.

Luego se configura el Tiempo de respuesta máximo de los paquetes IOCP, IOCP_timeout=4000 que tampoco debe cambiarse.

El siguiente es el Arranque minimizado en la barra dice... Minimized=No, si cambiamos el No por un Yes, al arrancar el SIOC, no presentará la pantalla de inicio y se minimizará directamente, Yo lo tengo en No porque me gusta ver que todo ha arrancado bien, despues siempre se puede minimizar, juas.

 Vamos a pasar el siguiente que es para el retraso de ciertas variables, esto se usa conjuntamente con otro software llamado Project Magenta, es un software de pago... y de mucho pago, así que ni me molesto.

El siguiente parámetro, Fichero de configuracion si es importante, este parámetro le dice al SIOC el fichero que alberga la programación y donde se encuentra, la línea que dice  CONFIG_FILE=.\Pruebas\MOONEYCR3.ssi comunica al SIOC que el fichero que alberga la programación se llama MOONEYCR3.SSI y se encuentra en la carpeta Pruebas que se localiza en la carpeta raíz del SIOC (  .\  ). Como veis, yo he creado una carpeta para albergar mis ficheros, pues en la carpeta raíz del SIOC vienen muchos ejemplos que no me quiero cargar, y al hacer los míos se dificulta su localización despues. Mas tarde hablaremos de este fichero.

En este caso, vamos a hacer uno nuevo, así que de momento lo dejaremos como sigue CONFIG_FILE=.\prueba.SSI

 2º Bloque: IOCARDS MODULE

 En este bloque no debe cambiarse nada, pues el primer parámetro es para desactivar las IOCards, que aunque no las usamos no pasa nada por tenerlas activadas, y el segundo parámetro es para conectar la tarjeta Master al puerto paralelo. De un tiempo a esta parte, los PC ya no disponen siquiera de ese tipo de puerto, este parámetro debe ser por reminiscencias del pasado.

3º Bloque: CARDS CONFIG

Este bloque si tiene importancia, como veis tiene muchas líneas comentadas explicando la configuración (en Español e Ingles) del parámetro... MASTER=0,4,3,30. A continuación pasamos a comentar lo que significan esos 'numeritos'.   

  1. Indice device: Como sólo tenemos una tarjeta USB conectada, lo dejaremos a cero, cuando tengamos mas módulos, ya veremos la diferencia.
  2. Tipo: este lo dejaremos a 4, que es el que corresponde a la tarjeta USBExpansion.
  3. Número de tarjetas: En mi caso, como tengo tres tarjetas conectadas he colocado un 3, si sólo teneis una, colocad un 1
  4. Número device: Si sólo tenéis una tarjeta USB de opencockpits conectada podeis poner un 0 tranquilamente, ya veremos mas adelante los cambios que tendremos que hacer si conectais otra tarjeta USB.
 Es decir, que vuestra línea puede quedar de la siguiente manera: MASTER=0,4,1,0

4º Bloque: Otras tarjetas.

En este bloque le decimos al SIOC si tiene otras tarjetas USB conectadas, de que tipo y sus parámetros para que funcionen correctamente, como no teneis ninguna, es mejor no tocarla de momento, cuando conectemos una USBDCmotors como tengo yo, ya comentaremos los cambios.

5º Bloque: FSUIPC MODULE

El FSUIPC es un software que hace de 'mediador' entre el Flight Simulator y el resto del PC, como es el SIOC. Realmente al programar, no 'hablamos' con el FS, sino con el FSUIPC o un servidor IOCP (que ya hablaremos de ello). El FSUIPC no viene instalado de base en el FS, pero lo utilizan muchas cosas, como algunos aviones o el IVAP, si no lo tienes instalado, puedes bajártelo de la página de Peter Dowson, tiene dos versiones, una básica y otra de pago, en mi caso con la básica es mas que suficiente, no he necesitado la de pago.

Pero bueno, no es necesario cambiar ningún parámetro de este módulo a no ser que no queramos 'hablar' con el simulador o que se aletargue mucho una respuesta en o de nuestros paneles, con lo que se podría cambiar el tiempo de refresco.

5º, 7º y 8º Bloques: Clientes IOCP

No debemos tocar nada si no tenemos varios ordenadores conectados con el FS o tenemos algún problema con el protocolo IOCP, entraremos en detalle cuando usemos este bloque.

9º Bloque: Módulo de sonido

En este bloque se configuran los sonidos que se pueden usar y como, de momento lo dejaremos así, cuando nos metamos con el copiloto virtual ya lo tocaremos. El copiloto virtual es una rutina que tengo en SIOC que me avisa cuando pasamos la altitud de transición o el nivel de vuelo 100 en el Boeing.

10º Bloque: KEYBOARD EMULATOR MODULE.

En este bloque programaremos los comandos de teclado que queramos usar, hablaré de ellos detenidamente cuando veamos el panel adicional


Sé que me he dejado muchas cosas en el tintero, pero como primera aproximación y para que vaya funcionando nuestro sistema es mas que suficiente. No pretendo explayarme mucho ahora, pues nos desviaríamos de nuestro objetivo demasiado (bastante pesada se está haciendo esta parte ya)

El SIOC.SSI

Bueno, ahora es cuando vamos realmente a programar. De momento no vamos a usar el simulador, con lo cual, tampoco usaremos el FSUIPC. De momento, abriremos el SIOC.SSI que se encuentra en el directorio (carpeta) raíz del SIOC.

Para evitar mas explicaciones engorrosas, he preferido editar un video. Espero que sea de vuestro agrado.





Bueno, ya hemos programado nuestro código y ahora toca... ejecutarlo, para lo cual, volvemos a abrir la carpeta del SIOC y ejecutamos el SIOC.exe. Nos aparecerá una pantalla como esta.


Como veis, la ventana se compone de varias partes que explicaremos a continuación.

  • Empezamos arriba a la izquierda, <IOCards> Module nos indica que ha encontrado las tarjetas y que estan funcionando bien.
  • Mas abajo, <FSUIPC> Module indica si está corriendo el simulador de vuelo, y con el, el FSUIPC.
  • Mas abajo, el servidor IOCP y dos clientes.
  • Arriba a la derecha, nos muestra las tarjetas que ha encontrado y su asignación, en este caso tengo dos tarjetas USB conectadas, la expansora USB y la USBDcmotors (bueno, tambien tengo enchufada una USB lcd, pero esa no la cuenta, pues se conectará vía IOCP). Mirar la fila que dice IDX=0 - IOCardUSB - Device=30 ¿recordáis la sentencia MASTER=0,4,3,30 en el sioc.ini? pues el primer y último número son datos que nos proporciona esta pantalla.
  • Mas abajo, tenemos la ventana LOG, que es una pequeña consola donde nos muestra las visicitudes del sistema, tales como reinicios, conexiones de IOCP, etc.
  • Debajo del todo, tenemos una botonera. Las funciones de los botones son:
  1.  Emty Script --> abre un nuevo script de Sioc en blanco.
  2.  Config Sioc --> Abre el script de Sioc que se está ejecutando. Ojo, Si modificamos algo 'en vivo', despued de grabarlo hay que dar al botón Reload para que surtan efecto los cambios,
  3. Sioc Monitor --> Abre una ventana donde podremos probar las tarjetas que tenemos instaladas, algo así como el controlador.
  4. Tray --> para minimizar en la barra de tareas.
  5. Reload --> Recargar el SIOC, es necesario recargar cada vez que se hace algún cambio en la programación.
  6. Edit.INI --> Abre un block de notas con el sioc.ini para poderlo cambiar. Ojo, cada vez que cambiamos algo es necesario guardar y recargar.
  7. IOCP Concole --> Abre la consola IOCP, donde podremos ver todas las variables y su valor en tiempo real.
  8. Exit --> Salir.
Sea como fuere, según arrancamos el Sioc,  al darle al interruptor encenderá e Led y viceversa, si es así......... enhorabuena, hemos culminado con éxito nuestro primer objetivo.



Puede parecer demasiado esfuerzo y demasiada tecnología para encender un simple LED, pero nuestro objetivo  final va mucho mas allá que todo eso. Por lo pronto, nuestro objetivo inicial lo hemos cumplido con creces.

 ¡¡Nos vemos en el aire!!

Santy


Suscríbete a Mi rincón de vuelo

Escribe tu dirección de e-mail aqui:


Publicado por FeedBurner




1 comentario:

  1. Sea como fuere, según arrancamos el Sioc, al darle al interruptor encenderá e Led y viceversa, si es así......... enhorabuena, hemos culminado con éxito nuestro primer objetivo.



    Puede parecer demasiado esfuerzo y demasiada tecnología para encender un simple LED, pero nuestro objetivo final va mucho mas allá que todo eso. Por lo pronto, nuestro objetivo inicial lo hemos cumplido con creces.
    coaching-mastery.com/5-formas-para-ahorrar-dinero-rapido/

    ResponderEliminar