PDA

View Full Version : Configure MCP of Opencockpits with MCP of Project Magenta and file sioc. Help me.



paoloj
08-14-2008, 03:19 PM
Hello,

I'm trying to configure my MCP panel buy from Opencockpits (OC) with MCP software of Project Magenta before I buy complete software.

My panel works fine with FS9 by Sioc and MCP panel of 737 default, but not 100% fine with MCP panel of 737pmdg.

Now i would like work it with PM, and i have insert this file in Sioc for PM:


//********************************
// INICIALIZACION
//********************************

VAR 0000, VALUE 0
{
V0401 = 180 // COURSE
V0406 = 180 // COURSE
V0403 = 180 // HDG
V0404 = 10 // ALT
V0405 = 0 // 00 DEL ALT (el 00 es fijo)
V0050 = SETBIT 23 // Pone MODO IAS
V0057 = V0004 // IAS leidas en IAS temporal
V0058 = V0005 // MATH leidas en MATH temporal
V0402 = V0004 // Pone por IAS en display
}

//********************************
// ENTRADAS DESDE FSUIPC
//********************************
Var 0001, Link FSUIPC_IN, Offset $04E6, Length 2, Type 1 // VS de entrada
{
V0800 = V0001
CALL V0900 // Pone valor en el display
}
Var 0002, Link FSUIPC_IN, Offset $051C, Length 2 // Indicadores MCP
{
C0 = TESTBIT V0002 ,0 // Está apagado el Display del VS ?
IF C0 // SI, entonces
{
V0407 = -999999 // Quita el 00 final del display
V0400 = -999999 // Apaga resto de digitos
V0408 = -999999 // Apago el signo -
}
ELSE // NO, entonces
{
V0407 = 0 // Enciende los 00 del display
CALL V0900 // Pone el V/S en el display
}
}
Var 0003, Link FSUIPC_IN, Offset $04F0, Length 2 // LUCES del MCP
{
V0502 = TESTBIT V0003 ,2 // V/S
// V0501 = TESTBIT V0003 ,12 // F/D
V0500 = TESTBIT V0003 ,11 // A/T
V0505 = TESTBIT V0003 ,9 // SPEED
V0506 = TESTBIT V0003 ,10 // N1
V0507 = TESTBIT V0003 ,3 // ALT HOLD
V0508 = TESTBIT V0003 ,4 // APP
V0509 = TESTBIT V0003 ,5 // VORLOC
V0510 = TESTBIT V0003 ,6 // LNAV
V0511 = TESTBIT V0003 ,7 // HDG
V0512 = TESTBIT V0003 ,8 // LVL CHG
V0513 = TESTBIT V0003 ,14 // VNAV
V0514 = TESTBIT V0003 ,0 // AP1
V0515 = TESTBIT V0003 ,1 // AP2

C0 = TESTBIT V0003 ,15 // Modo MATH o IAS ?
IF C0 // MATH MODE
{
V0058 = V0005 // Cargo valor en temporal
V0516 = 1 // Enciendo el punto decimal
CALL V0901 // Display del valor
}
ELSE // IAS MODE
{
V0057 = V0004 // Cargo valor en temporal
V0516 = 0 // Apago el punto decimal
CALL V0901 // Display del valor
}
}
Var 0004, Link FSUIPC_IN, Offset $04E0, Length 2 // IAS
{
CALL V0901 // Display del valor
}
Var 0005, Link FSUIPC_IN, Offset $04E8, Length 2 // MATH
{
CALL V0901 // Display del valor
}
//********************************
// SALIDAS A FSUIPC
//********************************
Var 0050, Link FSUIPC_OUT, Offset $5410, Length 4 // Pulsadores-I PM
Var 0051, Link FSUIPC_OUT, Offset $5414, Length 4 // Pulsadores-II PM
Var 0052, Link FSUIPC_OUT, Offset $540C, Length 2, Type 1 // V/S de salida
Var 0053, Link FSUIPC_OUT, Offset $5414, Length 4 // Botones MCP
Var 0054, Link FSUIPC_OUT, Offset $0C4E, Length 2 // COURSE
Var 0055, Link FSUIPC_OUT, Offset $5408, Length 2 // HDG
Var 0056, Link FSUIPC_OUT, Offset $540A, Length 2 // ALT
Var 0057, Link FSUIPC_OUT, Offset $5406, Length 2 // IAS
Var 0058, Link FSUIPC_OUT, Offset $540E, Length 2 // MATH
Var 0059, Link FSUIPC_OUT, Offset $0C5E, Length 2 // COURSE 2

//********************************
// INTERRUPTORES Y PULSADORES
//********************************
Var 0200, Link IOCARD_SW, Input 27 // Interruptor A/T
{
IF V0200 = 1 // Si está encendido
{
V0050 = TOGGLE 19 // Hago toggle del bit 19
}
ELSE
{
V0050 = TOGGLE 20 // Si apagado, toggle del bit 20
}
}
Var 0201, Link IOCARD_SW, Input 16 // Interruptor F/D
{
IF V0201 = 1
{
V0051 = TOGGLE 5
}
ELSE
{
V0051 = TOGGLE 6
}
}
Var 0202, Link IOCARD_SW, Input 13, Type P // Boton V/S
{
V0053 = CHANGEBIT 11 V0202 // Si pulsador encendido, bit 11 a 1, si apagado bit 11 a 0
}
Var 0203, Link IOCARD_SW, Input 12, Type P // Boton SPEED
{
V0050 = CHANGEBIT 22 V0203
}
Var 0204, Link IOCARD_SW, Input 2, Type P // Boton N1
{
V0050 = CHANGEBIT 21 V0204
}
Var 0205, Link IOCARD_SW, Input 26, Type P // Boton LVL CHG
{
V0050 = CHANGEBIT 24 V0205
}
Var 0206, Link IOCARD_SW, Input 32, Type P // Boton HDG
{
V0050 = CHANGEBIT 25 V0206
}
Var 0207, Link IOCARD_SW, Input 3, Type P // Boton ALT HOLD
{
V0050 = CHANGEBIT 30 V0207
}
Var 0208, Link IOCARD_SW, Input 6, Type P // Boton APP
{
V0050 = CHANGEBIT 29 V0208
}
Var 0209, Link IOCARD_SW, Input 7, Type P // Boton VORLOC
{
V0050 = CHANGEBIT 28 V0209
}
Var 0210, Link IOCARD_SW, Input 10, Type P // Boton LNAV
{
V0050 = CHANGEBIT 27 V0210
}
Var 0211, Link IOCARD_SW, Input 14, Type P // Boton VNAV
{
V0050 = CHANGEBIT 26 V0211
}
Var 0212, Link IOCARD_SW, Input 4, Type P // Boton DISENGAGE
{
IF V0212 = 0
{
V0053 = TOGGLE 8 // Si apago pongo el bit a 0
}
ELSE
{
V0053 = TOGGLE 9 // Si está encendido, pongo el BIT a 1
}
}
Var 0213, Link IOCARD_SW, Input 8, Type P // Boton AP1
{
V0053 = CHANGEBIT 0 V0213
}
Var 0214, Link IOCARD_SW, Input 1, Type P // Boton AP2
{
V0053 = CHANGEBIT 1 V0214
}
Var 0215, Link IOCARD_SW, Input 11, Type P // Boton MATH
{
V0050 = CHANGEBIT 23 V0215
}
Var 0216, Link IOCARD_SW, Input 17 // Interruptor F/D
{
IF V0216 = 1
{
V0050 = TOGGLE 17
}
ELSE
{
V0050 = TOGGLE 18
}
}

//********************************
// ROTARY-ENCODERS
//********************************
Var 0300, Link IOCARD_ENCODER, Input 20, Aceleration 4,type 2 // Encoder VS
{
L0 = V0300 * -100 // Incrementa de 100 en 100
V0800 = ROTATE -9000 ,9000 ,L0 // Suma o resta del valor temporal de V/S
V0052 = V0800
}
Var 0301, Link IOCARD_ENCODER, Input 24, Aceleration 4,type 2 // Encoder COURSE
{
L0 = V0301 * -1
V0401 = ROTATE 0, 359, L0 // Roto el valor del COURSE
}
Var 0302, Link IOCARD_ENCODER, Input 18, Aceleration 4,type 2 // Encoder IAS Y MATH
{
L0 = V0302 * -1
C0 = TESTBIT V0003 ,15 // Indicador MATH o IAS ?
IF C0 // MATH MODE
{
V0058 = LIMIT 25, 95, L0 // Inc o decremento el valor del MATH
}
ELSE
{
V0057 = LIMIT 0, 340, L0 // Inc o decremento el valor del IAS
}
}
Var 0303, Link IOCARD_ENCODER, Input 33, Aceleration 4,type 2 // Encoder HDG
{
L0 = V0303 * -1
V0403 = ROTATE 0, 359, L0
}
Var 0304, Link IOCARD_ENCODER, Input 22, Aceleration 4,type 2 // Encoder ALT
{
L0 = V0304 * -1
V0404 = LIMIT 0, 500, L0
}
Var 0305, Link IOCARD_ENCODER, Input 28, Aceleration 4,type 2 // Encoder COURSE 2
{
L0 = V0305 * -1
V0406 = ROTATE 0, 359, L0 // Roto el valor del COURSE
}

//********************************
// DISPLAYS 7 SEGMENTOS
//********************************
Var 0400, Link IOCARD_DISPLAY, Digit 13, Numbers 2 // VS
Var 0401, Link IOCARD_DISPLAY, Digit 0, Numbers 3 // COURSE
{
V0054 = V0401 // Pasa el valor al PM
}
Var 0402, Link IOCARD_DISPLAY, Digit 3, Numbers 3 // IAS Y MATH
Var 0403, Link IOCARD_DISPLAY, Digit 16, Numbers 3 // HEADING
{
V0055 = V0403 // Pasa el valor al PM
}
Var 0404, Link IOCARD_DISPLAY, Digit 8, Numbers 3 // ALT
{
V0056 = V0404 // Pasa el valor al PM
}
Var 0405, Link IOCARD_DISPLAY, Digit 6, Numbers 2 // ALT 00
Var 0406, Link IOCARD_DISPLAY, Digit 19, Numbers 3 // COURSE 2
{
V0059 = V0406 // Pasa el valor al PM
}
Var 0407, Link IOCARD_DISPLAY, Digit 11, Numbers 2 // VS 00
Var 0408, Link IOCARD_DISPLAY, Digit 15, Numbers 1 // Signo VS

//*************************************
// SALIDAS DE LA MASTER (LEDS Y FIJOS)
//*************************************
Var 0500, Link IOCARD_OUT, Output 39 // Led A/T
// Var 0501, Link IOCARD_OUT, Output // Led F/D
Var 0502, Link IOCARD_OUT, Output 13 // Led del boton V/S
// Var 0503, Link IOCARD_OUT, Output 27 // Signo - del display V/S
// Var 0504, Link IOCARD_OUT, Output 28 // 00 del VS
Var 0505, Link IOCARD_OUT, Output 31 // Led SPEED
Var 0506, Link IOCARD_OUT, Output 23 // Led N1
Var 0507, Link IOCARD_OUT, Output 15 // Led ALT HOLD
Var 0508, Link IOCARD_OUT, Output 19 // Led APP
Var 0509, Link IOCARD_OUT, Output 33 // Led VORLOC
Var 0510, Link IOCARD_OUT, Output 29 // Led LNAV
Var 0511, Link IOCARD_OUT, Output 11 // Led HDG
Var 0512, Link IOCARD_OUT, Output 17 // Led LVL CHG
Var 0513, Link IOCARD_OUT, Output 25 // Led VNAV
Var 0514, Link IOCARD_OUT, Output 35 // Led AP1
Var 0515, Link IOCARD_OUT, Output 37 // Led AP2
Var 0516, Link IOCARD_OUT, Output 20 // Led . DECIMAL
// Var 0517, Link IOCARD_OUT, Output 29 // 00 del ALT

//********************************
// VARIABLES IOCP INTERNAS
//********************************
Var 0800 // Valor temporal del V/S

//********************************
// RUTINAS INTERNAS
//********************************
Var 0900, Link SUBRUTINE // Pinta V/S
{
C0 = TESTBIT V0002 ,0 // Comprueba si deben de estar apagados
C0 = NOT C0
IF C0 // Sólo en el caso de estar encendidos
{
IF V0800 < 0 // Si V/S es negativo, pasa a positivo
{
L0 = ABS V0800
V0408 = -999998 // Enciendo el signo -
}
ELSE
{
V0408 = -999999 // Apago el signo -
L0 = V0800
}
V0400 = L0 / 100 // Manda el valor ajustado de V/S a display
}
}
Var 0901, Link SUBRUTINE // Pinta IAS / MATH
{
C0 = TESTBIT V0003 ,15 // Modo MATH o IAS ?
IF C0 // MATH MODE
{
V0516 = 1 // Enciendo el punto decimal
V0402 = V0005 // Pone valor MATH en el display
}
ELSE
{
V0516 = 0 // Enciendo el punto decimal
V0402 = V0004 // Pone valor IAS en el display
}
}


First question the switch AP1, AP2 and MATCH are corrisponde to CMDA, CMDB and C/O ? Or .... ?

I have this:

When i turn COURSE from panel OC change also the value of HEADING, and if change IAS/MATCH change also the value of COURSE on right.

But on panel of PM this doesnt show, it works.

Is script correct?

Please, thank you.

Trevor Hale
08-14-2008, 03:46 PM
Perhaps someone using the SIOC Script for their MCP could post their code for you.

Lets see what happens.

Trev

BoeingNG
08-14-2008, 08:54 PM
Hi Guys,

I posted my latest SIOC code (Incl OC MCP) here http://www.mycockpit.org/forums/showthread.php?t=12908

I hope this helps.

Regards,
John
www.boeing737ng.co.uk

paoloj
08-15-2008, 03:29 AM
Hi,

Is it works with MCP of Projetc Magenta?

Thank you.