Hosting De Calidad desde 4,95 euros

Hosting Wordpress 4,95 euros

Hosting De Calidad desde 4,95 euros

Hosting Wordpress 4,95 euros

Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Programación SIOC

  • 132 Respuestas
  • 74963 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

*

Skorp

  • Administrador
  • Überperrus
  • *
  • 21641
Programación SIOC
« en: 07 de Julio de 2008, 09:17:59 am »
Apertura de post para arrejuntar todas nuestras vivencias con dicho lenguaje de programacion.

Dudas, sugerencias, súplicas.......TODO  es bienvenido en este post.

Saludos




No Center......No Party XD.

Enfoca cualquier situación problemática como lo haría un perro:
olfatea el problema y si no te lo puedes comer o follar, méate en ello y vete.

*

Bucks

  • Überperrus
  • *
  • 1419
    • f16simbucks
Re: Programación SIOC
« Respuesta #1 en: 07 de Julio de 2008, 10:50:13 am »
Muchas Gracias Skorpy, una gran idea abrir este post.

Saludos
http://f16simbucks.blogspot.com



Aunque Falten las Fuerzas.

*

Skorp

  • Administrador
  • Überperrus
  • *
  • 21641
Re: Programación SIOC
« Respuesta #2 en: 07 de Julio de 2008, 10:53:22 am »
Las gracias al ariquita de Fénix....:cejas:, la idea ha sido suya..:pulgares:

:lol:




No Center......No Party XD.

Enfoca cualquier situación problemática como lo haría un perro:
olfatea el problema y si no te lo puedes comer o follar, méate en ello y vete.

*

Skorp

  • Administrador
  • Überperrus
  • *
  • 21641
Re: Programación SIOC
« Respuesta #3 en: 07 de Julio de 2008, 11:29:44 am »
Como primer tema FUNDAMENTAL pra usar SIOC y FAST con Falcon, extraido del readme de FAST.

Citar
VAR 0010 -Caution Panel Lights

The following bits are used:

 FLCSFAULT = 0
  ENGINEFAULT =  1  CADC = 12 (is not in Memory, will always be OFF)
 ATFNOTENGAGED = 20 (is not in Memory, will always be OFF)
  AVIONICSFAULT =  2
  SEATNOTARMED =  3
  ELECSYS =  4
  SEC =  5
  EQUIPHOT = 6 (is not in Memory, using CautionPanel OVERHEAT also)
NWSFAIL =  7
  PROBEHEAT =  8
  FUELOILHOT =  9
  RADARALT =  10
  ANTISKID =  11
  INLETICING = 13 (is not in Memory, will always be OFF)
IFF =  14
 HOOK =  15
 STORESCONFIG = 16 (is not in Memory, will always be OFF)
OVERHEAT =  17
  NUCLEAR = 18 (is not in Memory, will always be OFF)
OXY_LOW =  19
  EEC = 21 (is not in Memory, using ECM[not on real CP])
CABINPRESS =  22
  FWDFUELLOW =  23
  AFTFUELLOW =  24
  BUC =  25

VAR 0011 -Front Panel Lights

The following bits are used:
' lefteyebrowlights
MASTERCAUTION = 0
  TFFAIL =  1  ' left indexer
 FLCS = 11 (is not in Memory, using CautionPanel FltCtrlSys)
 TFRSTDBY = 24 (not available in AF)
 AOAHIGH =  2
  AOAMIDDLE =  3
  AOALOW =  4
  ' right indexer
RDY =  5
  ARNWS =  6
  DISC =  7
  ' right eyebrowlights
ENGFIRE =  8
  ENGINE = 9 (is not in Memory, using CautionPanel EngineFault)
HYDOILPRESS =  10
  DBUON = 12 (is not in Memory, using DUAL->in AF on CP)
TOLDGCONFIG =  13
 CANOPY =  14
 OXYLOW =  15
 ' tws prime
HANDOFF =  16
 LAUNCH =  17
 PRIMODE =  18
 NAVAL =  19
 UNKNOWN =  20
 TGTSEP =  21
 ' misc panel
ECMON =  22
  TFRACTIVE =  23

VAR 0012 -Console Lights
The following bits are used:

 JFSON = 0
AVTRON =  1
 ' epu
EPUON = ' elec
 2
 HYDRAZIN =  3
  AIR =  4
  FLCSPMG =  5
  MAINGEN =  6
  STBYGEN =  7
  EPUGEN =  8
  EPUPMG =  9
  TOFLCS =  10
  FLCSRLY =  11
  BATFAIL =  12
  ' flight control
FLTCTRLFAIL =  13
  ' marcer beacon light(s)
MARKER_OUTER =  14
  MARKER_MIDDLE =  15
  MARKER_INNER =  16
  NOSEWHEEL =  17
  LEFTWHEEL =  18
  RIGHTWHEEL =  19
 GEARHANDLE = 20
 ' tws aux
 AUXSRCH = 21
 AUXACT = 22
 AUXLOW = 23
 AUXPWR = 24
 CMDS_NOGO = 25 (NOGO will be set, when chaffCount or flareCount = 0)
CMDS_GO = 26
 CMDS_DISPRDY = 27

VAR 0013 -Instrument Flags (not implemented yet)

The following bits are used:
 HSI_To = 0
HSI_Ils = 1
HSI_Course = 2
HSI_Init = 3
TotalFlags = 4
ADI_OFF = 5
ADI_AUX = 6
ADI_GS = 7
ADI_LOC = 8
HSI_OFF = 9
BUP_ADI_OFF = 10
VVI_OFF = 11
AOA_OFF = 12
' HSI_FLAG_TO_TRUE
' HSI_FLAG_ILS_WARN
' HSI_FLAG_CRS_WARN
' HSI_FLAG_INIT
' HSI_FLAG_TOTAL_FLAGS
' ADI OFF Flag
' ADI AUX Flag
' ADI GS FLAG
' ADI LOC FLAG
' HSI OFF Flag
' Backup ADI Off Flag
' VVI OFF Flag
' AOA OFF Flag

VAR 0010 -Caution Panel Lights

Lo que esto quiere decir es que en SIOC, la variable 10 TIENE QUE ESTAR DEFINIDA como tal, es decir que no podemos usar ninguna otra variable para definir Caution Panel Lights, ya que la variable 10 es usada por FAST ( y asi el resto de la lista superior - ver readme adjunto al FAST :cafe:).

Lo que hay debajo de la variable son los bits que la componen, COMENZANDO POR EL BIT 0 (no el 1). Por ejemplo el bit 0 de la variable 10 es FLCSFAULT (esto será importante para comprender que si el valor del bit 0 es 0, esa luz estará apagada y si el valor es 1 estará encendida).

Asi mismo recomiendo empezar a definir las variables que no esten referenciadas al FAST, entradas, salidas y demás, por encima de 500, por ejemplo. (no usar nunca las 100 primeras, consejo de Michi)

En mi caso he decidido usar a partir de 1000 para entradas, a partir de 1500 para programación, a partir de  2000 para salidas y a partir de 2500 para los servos (estos datos son aproximativos, mañana pongo los reales)

Asi mismo he definido la variable 0001 como Asigteclas, siendo esta variable la que va a "recibir" las pulsaciones de los interruptores, cuando definamos las nuevas secuencias (ver post más abajo).



Seguro que digo muchas gilipolleces o cosas mogollón de obvias para muchos, pero como no he tenido ni tengo idea, me ha costado un cohón aprenderlas (preguntando) o darme cuenta de ellas; si alguien ve que digo cosas erróneas o puede explicarlas mejor, pues se agradece la ayuda...:pulgares:

« Última modificación: 07 de Julio de 2008, 12:00:01 pm por Skorp »




No Center......No Party XD.

Enfoca cualquier situación problemática como lo haría un perro:
olfatea el problema y si no te lo puedes comer o follar, méate en ello y vete.

*

Skorp

  • Administrador
  • Überperrus
  • *
  • 21641
Re: Programación SIOC
« Respuesta #4 en: 07 de Julio de 2008, 11:39:43 am »
Otro tema de vital importancia.

¿Cómo se qué entrada estoy usando?

Lo primero diferenciar:

Entrada - Metemos datos - Interruptor, por ejemplo
Salida - Led

Como se que entrada estoy usando? Lo que yo hago es arrancar el programa Controlador y usar el interruptor en cuestión, si todo está correctamente instalado, ahi se ve cual es la entrada que se está usando, algo imprescindible a la hora de hacer la programación. Recordemos que si el interruptor deja pasar la corriente estará activo(valor 1) y saldrá el número de entrada en la pantalla y si no deja pasar la corriente, estará apagado (valor 0) y dicho número no aparecerá



Leds, pues lo que hago es dentro del mismo programa y como sé que las salidas comenzan por la 11 (de la 11 a la 55 creo recordar) pongo 11 y le voy dando a On+ hasta que el led que quiero programar se encienda.

Tomo nota y Exit.




No Center......No Party XD.

Enfoca cualquier situación problemática como lo haría un perro:
olfatea el problema y si no te lo puedes comer o follar, méate en ello y vete.

*

Skorp

  • Administrador
  • Überperrus
  • *
  • 21641
Re: Programación SIOC
« Respuesta #5 en: 07 de Julio de 2008, 11:58:45 am »
Tercera cuestión FUNDAMENTAL, la secuencia y asignación de teclas.

Lógicamente cuando arrancamos en Rampa, por ejemplo, el tren de aterrizaje está bajado. Entonces ¿que pasa si a mi se me ha olvidado poner mi interruptor físico, el que lo baja y lo sube, en subido?

Pues fácil, que cuando despegues y lo pongas en bajado, el tren subirá, menuda incongruencia, no? XD

Esto es debido al "efecto Toogle", es decir la combinacion de teclas de falcon, la G, vale para las dos cosas, y esto no puede ser, verdad?

Hay que remapear esas teclas.....lo que queire decir que de ahora en adelante tendremos dos secuencias ne vez de una; una que es Subir Tren y otra que es Bajar Tren.

Entramos en el Setup de Falcon y cambiamos la asignacion, Bajar Tren = G......subir Tren = May G

Un problema que tenenos, bueno....un trabajo más bien, es definir en SIOC TODAS las secuencias de teclas que vayamos a usar en SIOC, en nuestra cabina, para ello:

Abrimos el archivo sioc.ini y nos vamoa abajo del todo, hasta donde pone "Asignación de teclas" (si no recuerdo mal) y vemos algo parecido a esto:

#1 = a
#2=  b
..
..
..
#200

Bien pues aqui es donde hay que definir las teclas que vayamos a usar, en nuestro caso:

#40 = g
#41 = /1g/2

(Nota, los cógidos para teclas especiales está disponible en el readme del IOCP_Emulatork, disponible en la web de Opencockpits).

Y asi con TOOOODAS  las teclas que vayamos a programar, recordando que es, por lo menos para mi, INDISPENSABLE, eliminar todas las teclas toogle que vayamos a usar.

Saludos 8)





No Center......No Party XD.

Enfoca cualquier situación problemática como lo haría un perro:
olfatea el problema y si no te lo puedes comer o follar, méate en ello y vete.

*

fenix

  • Perrus Pilotus
  • *
  • 566
Re: Programación SIOC
« Respuesta #6 en: 07 de Julio de 2008, 12:05:14 pm »
Ohhhhhhhhhhh  :dios: :dios: :dios: :dios: :yuju: :yuju: :yuju:
Fénix

*

Skorp

  • Administrador
  • Überperrus
  • *
  • 21641
Re: Programación SIOC
« Respuesta #7 en: 07 de Julio de 2008, 12:10:57 pm »
Bien, programemos un interruptor para bajar y subir el tren:

Variables definidas:

0001 Asignteclas
1001 SW_Tren (aqui tendremos que asignar la entrada que nos de el Controlador, la 75, por ejemplo), unida a Iocard Master / Interruptores


A bote pronto, y asi se queda para que hagais pruebas....:

Si 1001 es 0 (interruptor apagado) entonces la variable asignteclas es 40 (baja tren, se usa la secuencia definica como 40, vamos)


Si 1001 es 1 (interruptor encendido) entonces la variable asignteclas es 41 (sube tren, idem lo de arriba pero la secuencia 41)


Hala, a trabajar.

;)
« Última modificación: 31 de Julio de 2008, 13:15:45 pm por Skorp »




No Center......No Party XD.

Enfoca cualquier situación problemática como lo haría un perro:
olfatea el problema y si no te lo puedes comer o follar, méate en ello y vete.

*

Skorp

  • Administrador
  • Überperrus
  • *
  • 21641
Re: Programación SIOC
« Respuesta #8 en: 07 de Julio de 2008, 12:24:15 pm »
MUY IMPORTANTE

La denominacion de las variables, ya que hay que identificar entre las variables de entrada/salida y las variables de "programación", por llamarlas de algun modo.

En mi caso a los interruptores les he llamado SW_Gear, por ejemplo,  para diferenciarla de la variable Gear, que es la que asigna los valores del interrruptor.

Ea, a comer....;)
« Última modificación: 31 de Julio de 2008, 13:16:08 pm por Skorp »




No Center......No Party XD.

Enfoca cualquier situación problemática como lo haría un perro:
olfatea el problema y si no te lo puedes comer o follar, méate en ello y vete.

*

Skorp

  • Administrador
  • Überperrus
  • *
  • 21641
Servos en SIOC
« Respuesta #9 en: 31 de Julio de 2008, 12:39:16 pm »
Como ahora mismo no dispongo de la información necesaria para explicar cómo hacer que un led se encienda, voy a dar un "pequeño salto" y voy a intentar explicar como hacer que funcione un servo motor enchufado a la tarjeta servos de Opencockpits.

Primer Paso : Leerse el sioc.ini y modificar los parámetros para que SIOC reconozca nuestra tarjeta de servos.

Segundo Paso : Definir las variables que vamos a usar, en este caso vamosa implementar el AOA, que es un indicador sencillo

1.- En este paso, abrimos SIOC y una vez dentro pulsamos IOCPConsole, donde veremos, si lo hemos hecho en los pasos anteriores (ver tema interruptores) las variables asignadas con anterioridad.

2.- Archivo -> Abrir -> iocpconsole.con (desde aqui agradecer a Stud y a Multi el Supertron :dios:), y veremos toooodas las variables que FAST lee o traduce de Falcon. Buscamos un poco y vemos que en nuestro caso la variable es la 26.

3.- Abrimos nuestro archivo de Falcon y definimos la variable 26, NO otra.....la 26 :bate: y la unimos o asignamos a Módulo Cliente IOCP / Ent Sal IOCP.

4.- Definimos la variable que tendremos que unir al Servo, por ejemplo la 2000 (tengo problemas a la hora de dar las variables de alta, creo que por no tener el soft de las Iocards instalado, asi que no puedo poner ejemplos, mañana si me acuerdo, me traigo el código).

Lo normal, nombre, definición, dispositivo y recordemos unirla a Módulos USB / USB Servos y darle los valores de las posiciones del servo:  I (izquierda) = 0, C (centro) 511 y D (derecha) 1023; realmente yo pongo I (izquierda) = 2, C (centro) 509 y D (derecha) 1020, o valores similares para evitar que el servo llegue a sus topes y pueda joderse...;)



PROGRAMACION


Tenemos que observar los valores máximo y mínimo que alcanza la variable 26 el Falcon. Arrancamos Falcon y hacemos diversas pruebas observando los valores en el IOCP Console, supongamos (esto si que no lo se ahora mismo) que los valores van de 0 a 500, por hacerlo fácil.

Pues es simple, sólo hay que hacer una regla de tres para saber las posición del servo dependiendo del valor del AOA y hacer una asignacion.

Caso que AOA sea el valor minimo (1):

Si la variable 26 es 1
1023*1/500 = 2,046


Caso que el AOA sea el valor medio (250)

Si la variable 26 = 500
1023*250/500  511

Caso que el AOA sea el valor máximo (500)
1023*500/500 = 1023


Fórmula:

A la variable Servo, la 2000 en este caso, hay que asignarle:

1023*var26/500

Y yo creo que deberia funcionar.....:lol:

ESTo ES EXTRAPOLABLE AL RESTO DE INSTRUMENTOS ANALÓGICOS, creo :cejas:


Poned vuestras experiencias aqui, por favor....:pulgares:
« Última modificación: 31 de Julio de 2008, 13:27:55 pm por Skorp »




No Center......No Party XD.

Enfoca cualquier situación problemática como lo haría un perro:
olfatea el problema y si no te lo puedes comer o follar, méate en ello y vete.

*

Bucks

  • Überperrus
  • *
  • 1419
    • f16simbucks
Re: Programación SIOC
« Respuesta #10 en: 31 de Julio de 2008, 13:44:46 pm »
Interesante ya te dire cosas tron, tengo el sioc desistalado ahora mismo

http://f16simbucks.blogspot.com



Aunque Falten las Fuerzas.

*

Skorp

  • Administrador
  • Überperrus
  • *
  • 21641
Re: Programación SIOC
« Respuesta #11 en: 31 de Julio de 2008, 13:46:25 pm »
Nada de decir....un vidrio...:cunao:

Yo lo hago asi y ya tengo las RPM´s y las abujas del fuel funcionando...:pulgares:, lo cual no quiere decir que haya otras formas mas simples o precisas, ojo!... :)

Saludos y suerte.




No Center......No Party XD.

Enfoca cualquier situación problemática como lo haría un perro:
olfatea el problema y si no te lo puedes comer o follar, méate en ello y vete.

*

Skorp

  • Administrador
  • Überperrus
  • *
  • 21641
Leds en SIOC
« Respuesta #12 en: 31 de Julio de 2008, 14:52:06 pm »
Voy a intentar explicar el funcionamiento de los leds con Falcon, FAST y SIOC

Pasos a Seguir

1.- Definir la variable que incluye el bit asignado a la luz que queremos "usar.

En este caso vamos a intentar hacer funcionar la luz AR/NWS del eyebrow derecho.

Abrimos el readme del FAST, que ya deberiamos haber leido :bate: y vemos que el AR/NWS es el 6º bit de la variable 11, Front Panel Lights .

Damos de alta la variable 0011 como FrontPanelLights y la unimos a Modulo Cliente IOCP / Ent Sal IOCP.

Recordemos que las 500 primeras variables únicamente deben ser las definidas como en el readme de FAST, ya que son la que el propio FAST usa.

2.- Damos de alta la variable asignada al led físico, la 1500 y la unimos a Iocard master / Salidas; esta variable tiene asignada una salida de la tarjeta master que hay que descubrir. Mi metodo es abrir el Controler, Start, poner 11 en la casilla superior izquierda y darle a On, 12 On, 13 ON  y asi sabremos que salida es la que vamos a usar, en nuestro caso la 11.

Bien, tenemos dos variables dadas de alta, la 11 que usa FAST y que incluye los bits relaccionados a las luces descritas en el Readme y la variable 1500, asignada al led que sale de la placa Master.

Creo que hay varias maneras de hacer esto, intentaré explicar la que yo uso, que es la que me comento en su dia Bucks.....Thx tronki :dios: :birras:

Vamos a testear como está el bit 5 de la variable 11 y vamos a mandar el valor a la variable 1500.

En la variable, NUevo Comando -> Tipo -> Testbit

Y abajo tendremos que decirle que testee el bit 5 de la variable 11 (la de Falcon), para posteriormente añadir:

Nuevo Comando -> Función -> Asignacion   y aqui asignaremos el valor del bit (0 ó 1) a nuestra variable, lo que hará que el led se encieda o se apague, dependiendo de como esté en Falcon.

Asi es, más o menos, como tengo yo definido mi programa SIOC.

Como última recomendación.....LLEVAR REGISTRO TODOS LOS DATOS, SALIDAS, ENTRADAS, TOOOODO

Saludos



« Última modificación: 31 de Julio de 2008, 15:03:03 pm por Skorp »




No Center......No Party XD.

Enfoca cualquier situación problemática como lo haría un perro:
olfatea el problema y si no te lo puedes comer o follar, méate en ello y vete.

*

fenix

  • Perrus Pilotus
  • *
  • 566
Re: Programación SIOC
« Respuesta #13 en: 01 de Agosto de 2008, 11:47:41 am »
Gracias, no sabes lo que me ayuda estas lecciones Magistrales  :pulgares: sobre SIOC  :pulgares: y FAST.  Al final te veo creando un magnifico Tutorial.  :animadora:


Fénix

*

Bucks

  • Überperrus
  • *
  • 1419
    • f16simbucks
Re: Programación SIOC
« Respuesta #14 en: 01 de Agosto de 2008, 12:01:33 pm »
Yo voy a comenzar despues de las vacaciones seguramente la programacion del pedestal central pero como el proyecto trata sobre una cabina completa, estoy viendo ahora como organizar la programacion de todos los cacharros que llevamos en cabina jejejeje.

Exprimiendo la total capacidad de SIOC se me a ocurrido dividir la numeracion de las variables de la siguiente forma :

de la 1000 a la 2000 Consola central
de la 2000 a la 3000 consola auxiliar izquierda
de la 3000 a la 4000 consola auxiliar derecha
de la 4000 a la 5000 consola lateral izquierda
de la 5000 a la 6000 consola lateral derecha
de la 6000 a la 7000 asiento y demas mandos generales de cabina como maneta de apertura de cupula.
de la 7000 a la 8000 programaciones especiales como comportamineto de fallos y cosas asi
de la 8000 a la 9000 varios

En fin se trata de estructurar un poco la programacion e ir añadiendo scripts al fichero .ssi a medida que se vayan programando, lo que en programacion se llama "estructura de bloques"

Saluditos
http://f16simbucks.blogspot.com



Aunque Falten las Fuerzas.

 

Hosting De Calidad desde 4,95 euros

Hosting Wordpress 4,95 euros