programation axe sur usb carte

Questions de programmation / Offset FSUIPC et IOCP

programation axe sur usb carte

Messagede mammouth » Ven 10 Juin 2011 12:11

Bonjour,

Voila comme je pense m'être trompé de section en postant mon message donc je le reposte ici.

J'aimerai savoir comment programmer un potar connecté a l'usb carte afin de m'en servir pour faire mes commandes de vol
J'aimerai savoir programmer la profondeur et le tanguage (et par la suite frein et pallonier).

Je sais maintenant qu'il faut absolument declarer les axes dans sioc afin de les utiliser mais je n'ai aucune idée du comment faire gratgrat

Si une âme charitable pouvais me donner la solution pour les gouverne sa serai franchement super.

D'avance merci à tous merci affiche
mammouth
 
Messages: 175
Inscription: 30/08/09

Re: programation axe sur usb carte

Messagede chtipilot » Ven 10 Juin 2011 15:09

Voici un SIOC qui fonctionne pour les axes d'un throttle (et même un peu plus)
Lorsque tout est monté il faut encore ajuster les valeurs des potards avec FSUIPC

Code: Tout sélectionner
// *****************************************************************************
// * Config_SIOC ver 3.7B1   -     By Manolo Vélez    -    www.opencockpits.com
// *****************************************************************************
// * FileName : FC_MIP_throttle.txt
// * Date : 10/06/2011



Var 0000, Value 0     // Initialisation
{
  &ServoSPOILERS = 1023         // Servo Spoilers POWER OFF
  &SW2_AT_Engage = 1   
  &FSio_AutoBrake = 5   
}

Var 0002, name TAS

Var 0008, name Rot_AB_tmp     // Rotary AB tmp

Var 0014, name FSi_FLAPS, Link FSUIPC_IN, Offset $0BDC, Length 4     // Reçoit valeur de FS_FLAPS
{
  CALL &Sub_MIP_servo
  CALL &FlapPosition
}

Var 0016, name FSo_Throttle1, Link FSUIPC_OUT, Offset $088C, Length 2     // Var FS Throt 1

Var 0017, name FSo_Throttle2, Link FSUIPC_OUT, Offset $0924, Length 2     // Var FS Throt 2

Var 0024, name GestLedSpoil, Link FSUIPC_IN, Offset $0BD0, Length 4     // gestion LED Spoilers
{
  L0 = &GestLedSpoil   
  IF L0 <= 4799
  {
    &L_Spoiler_ARM = 0   
    &L_Spoiler_Ext = 0   
  }
  ELSE
  {
    IF L0 = 4800
    {
      &L_Spoiler_ARM = 1   
      &L_Spoiler_Ext = 0   
    }
    ELSE
    {
      IF L0 >= 5620
      {
        &L_Spoiler_ARM = 0   
        &L_Spoiler_Ext = 1   
      }
    }
  }
}

Var 0025, name FSo_Flaps, Link FSUIPC_OUT, Offset $0BDC, Length 4     // Throttle_Flap

Var 0026, name FSo_Spoilers, Link FSUIPC_OUT, Offset $0BD0, Length 4

Var 0027, name FSo_SpoilARM, Link FSUIPC_OUT, Offset $0BCC, Length 4     // OUT Spoilers ARM

Var 0028, name FSi_Spoilers, Link FSUIPC_IN, Offset $0BD0, Length 4     // IN FS SPOILERS

Var 0029, name FSi_SpoilerARM, Link FSUIPC_IN, Offset $0BCC, Length 4     // IN Spoilers ARM

Var 0030, name OnGround, Link FSUIPC_IN, Offset $0366, Length 2     // AirCraft On Ground (for touchdown)
{
  IF &OnGround = 1     // Au sol
  {
    IF &FSi_SpoilerARM = 1
    {
      &ServoSPOILERS = 900         // ServoSpoilers EXTENDED
      &FSo_Spoilers = 16383   
      IF &FSio_AutoBrake > 1
      {
        &Clig_LedAutoBr = TIMER 100 ,1 ,75     // Clignotement LED autobrake
      }
    }
    ELSE
    {
      &ServoSPOILERS = 1023   
    }
  }
  ELSE     // En vol
  {
  }
}

Var 0080, name FSi_Mot1, Link FSUIPC_IN, Offset $088C, Length 2
{
  IF &SW2_AT_Engage = 1
  {
    &ServoGaz1 = &FSi_Mot1 / 16
  }
}

Var 0081, name FSi_Mot2, Link FSUIPC_IN, Offset $0924, Length 2
{
  IF &SW2_AT_Engage = 1
  {
    &ServoGaz2 = &FSi_Mot2 / 16
  }
}

Var 0106, name FSo_Gear, Link FSUIPC_OUT, Offset $0BE8, Length 4

Var 0108, name FSi_GearNose, Link FSUIPC_IN, Offset $0BEC, Length 4
{
  L0 = &FSi_GearNose   
  IF L0 >= 16383
  {
    &L_GearNoseGree = 1   
    &L_GearNoseRed = 0   
  }
  ELSE
  {
    IF L0 = 0
    {
      &L_GearNoseGree = 0   
      &L_GearNoseRed = 0   
    }
    ELSE
    {
      &L_GearNoseRed = 1   
      &L_GearNoseGree = 0   
    }
  }
}

Var 0110, name FSi_GearLeft, Link FSUIPC_IN, Offset $0BF4, Length 4
{
  IF &FSi_GearLeft >= 16383
  {
    &L_GearLeftGree = 1   
    &L_GearLeftRed = 0   
  }
  ELSE
  {
    IF &FSi_GearLeft = 0
    {
      &L_GearLeftGree = 0   
      &L_GearLeftRed = 0   
    }
    ELSE
    {
      &L_GearLeftRed = 1   
      &L_GearLeftGree = 0   
    }
  }
}

Var 0112, name FSi_GearRight, Link FSUIPC_IN, Offset $0BF0, Length 4
{
  IF &FSi_GearRight = 16383
  {
    &L_GearRightGre = 1   
    &L_GearRightRed = 0   
  }
  ELSE
  {
    IF &FSi_GearRight = 0
    {
      &L_GearRightGre = 0   
      &L_GearRightRed = 0   
    }
    ELSE
    {
      &L_GearRightRed = 1   
      &L_GearRightGre = 0   
    }
  }
}

Var 0113, name FSio_AutoBrake, Link FSUIPC_INOUT, Offset $2F80, Length 1     // AUTOBRAKE
{
  IF &FSio_AutoBrake <> 0     // Position <> RTO
  {
    &L_AutobrkDisab = 0   
  }
}

Var 0114, name FSio_AT_ARM, Link FSUIPC_INOUT, Offset $0810, Length 4     // AUTOTHRO_ARM

Var 0115, name FSio_AT_TOGA, Link FSUIPC_INOUT, Offset $080C, Length 4     // AUTOTHRO_TOGA

Var 0116, name FSi_TAS, Link FSUIPC_IN, Offset $20B8, Length 2     // True Air Speed * 128
{
  L0 = &FSi_TAS   
  &TAS = L0   
}

Var 0117, name FSio_ParkBrake, Link FSUIPC_INOUT, Offset $0BC8, Length 2     // Parking brake
{
  IF &FSio_ParkBrake = 0
  {
    &L_ParkBrake = 0   
  }
  ELSE
  {
    &L_ParkBrake = 1   
  }
}

Var 0120, name PotSpoilers, Link IOCARD_ANALOGIC, Device 1, Input 1, PosL 255, PosC 127, PosR 0     // Spoilers
{
  L0 = &PotSpoilers   
  L1 = L0 * 64     // 64=16383/255
  &FSo_Spoilers = L1         // OUT FS Spoilers
  IF L0 < 75     // Spoilers DOWN
  {
    L0 = 0   
    &FSo_SpoilARM = 0   
    &ServoSPOILERS = 1023   
  }
  ELSE
  {
    IF L0 >= 75
    {
      IF L0 <= 100
      {
        &FSo_SpoilARM = 1   
        &ServoSPOILERS = 940         // Spoilers ARMED for Autodeployement
      }
    }
  }
}

Var 0121, name PotMoteur1, Link IOCARD_ANALOGIC, Device 1, Input 2, PosL 112, PosC 163, PosR 215     // Throttle_moteur1
{
  IF &SW2_AT_Engage = 1
  {
    &FSo_Throttle1 = &PotMoteur1 * 64
  }
}

Var 0122, name PotMoteur2, Link IOCARD_ANALOGIC, Device 1, Input 3, PosL 97, PosC 148, PosR 200     // Throttle_Moteur 2
{
  IF &SW2_AT_Engage = 1
  {
    &FSo_Throttle2 = &PotMoteur2 * 64
  }
}

Var 0123, name PotFlaps, Link IOCARD_ANALOGIC, Device 1, Input 4, PosL 0, PosC 127, PosR 255     // Manette Flaps
{
  L0 = &PotFlaps * 64
  L1 = &PotFlaps * 4
  &FSo_Flaps = L0   
  &ServoFlaps = L1   
}

Var 0135, name ServoSPOILERS, Link USB_SERVOS, Device 1, Output 1, PosL 1023, PosC 512, PosR 1     // Servo Spoilers

Var 0136, name ServoGaz1, Link USB_SERVOS, Device 1, Output 2, PosL 0, PosC 512, PosR 1023     // ServoGaz1

Var 0137, name ServoGaz2, Link USB_SERVOS, Device 1, Output 3, PosL 0, PosC 512, PosR 1023     // ServoGaz2

Var 0138, name ServoFlaps, Link USB_SERVOS, Device 1, Output 4, PosL 1023, PosC 512, PosR 0     // Servo Flaps

Var 0400, name SW1_AT_Engage, Link IOCARD_SW, Device 1, Input 1     // SW1_Autothrottle ON
{
  CALL &AT_Eng
}

Var 0410, name SW2_AT_Engage, Link IOCARD_SW, Device 1, Input 0     // SW2_Autothrottle ON
{
  CALL &AT_Eng
}

Var 0420, name SW1_AT_DisEnga, Link IOCARD_SW, Device 1, Input 4     // SW1_autothrottle OFF
{
  CALL &AT_DisEng
}

Var 0430, name SW2_AT_DisEnga, Link IOCARD_SW, Device 1, Input 3     // SW2_autothrottle OFF
{
  CALL &AT_DisEng
}

Var 0440, name SW_ParkBrake, Link IOCARD_SW, Device 1, Input 9
{
  L0 = &SW_ParkBrake   
  IF L0 = 1
  {
    &FSio_ParkBrake = L0   
  }
  IF L0 = 0
  {
    &FSio_ParkBrake = L0   
  }
}

Var 0450, name L_ParkBrake, Link IOCARD_OUT, Device 1, Output 11

Var 0501, name L_Spoiler_ARM, Link IOCARD_OUT, Device 1, Output 14

Var 0502, name L_StabOTrimCap, Link IOCARD_OUT, Device 1, Output 12

Var 0503, name L_AP_oran_Capt, Link IOCARD_OUT, Device 1, Output 13

Var 0504, name L_Spoiler_Ext, Link IOCARD_OUT, Device 1, Output 17

Var 0505, name L_AP_roug_Capt, Link IOCARD_OUT, Device 1, Output 15

Var 0507, name L_AT_orang_Cap, Link IOCARD_OUT, Device 1, Output 20

Var 0508, name L_FMC_roug_Cap, Link IOCARD_OUT, Device 1, Output 18

Var 0509, name L_AT_roug_Cap, Link IOCARD_OUT, Device 1, Output 19

Var 0510, name L_FMC_oran_Cap, Link IOCARD_OUT, Device 1, Output 20

Var 0520, name L_GearRightGre, Link IOCARD_OUT, Device 1, Output 41

Var 0521, name L_GearLeftGree, Link IOCARD_OUT, Device 1, Output 42

Var 0522, name L_GearLeftRed, Link IOCARD_OUT, Device 1, Output 43

Var 0523, name L_GearRightRed, Link IOCARD_OUT, Device 1, Output 45

Var 0524, name L_GearNoseGree, Link IOCARD_OUT, Device 1, Output 47

Var 0525, name L_GearNoseRed, Link IOCARD_OUT, Device 1, Output 48

Var 0526, name L_FlapsTransit, Link IOCARD_OUT, Device 1, Output 37

Var 0527, name L_FlapsExtend, Link IOCARD_OUT, Device 1, Output 39

Var 0528, name L_AutobrkDisab, Link IOCARD_OUT, Device 1, Output 33

Var 0940, name SW_GearUP, Link IOCARD_SW, Device 1, Input 29
{
  L0 = &SW_GearUP   
  IF L0 = 1
  {
    &SW_GearDOWN = 0   
    L0 = 0   
    &FSo_Gear = TOBCD L0
  }
}

Var 0941, name SW_GearDOWN, Link IOCARD_SW, Device 1, Input 30
{
  L0 = &SW_GearDOWN   
  IF L0 = 1
  {
    L0 = 16383   
    &FSo_Gear = TOBCD L0
    &SW_GearUP = 0   
  }
}

Var 0980, name Rot_AB_BCD1, Link IOCARD_SW, Device 1, Input 50     // AutoBrake BCD Input 1
{
  CALL &Routine_Rot_AB
}

Var 0981, name Rot_AB_BCD2, Link IOCARD_SW, Device 1, Input 45     // AutoBrake BCD Input 2
{
  CALL &Routine_Rot_AB
}

Var 0982, name Rot_AB_BCD3, Link IOCARD_SW, Device 1, Input 53     // Autobrake BCD Input 3
{
  CALL &Routine_Rot_AB
}

Var 1000, name Routine_Rot_AB, Link SUBRUTINE     // Rotary autobrk_BCD
{
  L0 = &Rot_AB_BCD1   
  L1 = &Rot_AB_BCD2 * 10
  L2 = &Rot_AB_BCD3 * 100
  &Rot_AB_tmp = L0 + L1
  &Rot_AB_tmp = &Rot_AB_tmp + L2
  IF &Rot_AB_tmp = 0
  {
    &FSio_AutoBrake = 0         // position RTO
  }
  ELSE
  {
    IF &Rot_AB_tmp = 1
    {
      &FSio_AutoBrake = 1         // Position OFF
    }
    ELSE
    {
      IF &Rot_AB_tmp = 10     // Position 1
      {
        &FSio_AutoBrake = 2   
      }
      ELSE
      {
        IF &Rot_AB_tmp = 11     // Position 2
        {
          &FSio_AutoBrake = 3   
        }
        ELSE
        {
          IF &Rot_AB_tmp = 100     // Position 3
          {
            &FSio_AutoBrake = 4   
          }
          ELSE
          {
            IF &Rot_AB_tmp = 101     // Position MAX
            {
              &FSio_AutoBrake = 5   
            }
          }
        }
      }
    }
  }
}

Var 9000, name FlapPosition, Link SUBRUTINE
{
  L1 = &FSi_FLAPS   
  IF L1 = 0
  {
    &L_FlapsTransit = 0   
    &L_FlapsExtend = 0   
  }
  ELSE
  {
    CALL &Sub_MIP_transi
  }
}

Var 9001, name Sub_MIP_transi, Link SUBRUTINE     // tempo transit/expend
{
  IF &L_FlapsExtend = 1
  {
    &L_FlapsExtend = 0   
  }
  &L_FlapsTransit = 1   
  L0 = &FSi_FLAPS / 2047
  L0 = TRUNC L0     // Nbre de cran
  L1 = L0 * 120
  L2 = L1   
  IF L2 = 0
  {
    L2 = 1   
  }
  &L_FlapsExtend = TIMER 1 ,1 ,L2
  &L_FlapsTransit = TIMER 0 ,-1 ,L2
}

Var 9500, name Clig_LedAutoBr, Link SUBRUTINE     // Clignotement Led AutoBrake
{
  &L_AutobrkDisab = 1   
  &L_AutobrkDisab = TIMER 0 ,-1 ,10
}

Var 9900, name Sub_MIP_servo, Link SUBRUTINE     // Envoie Valeur FLAPS au servo
{
  L0 = &FSi_FLAPS   
  IF L0 > 16383
  {
    L0 = 16383   
  }
  IF L0 < 0
  {
    L0 = 0   
  }
  L1 = 360   
  L2 = L0 / 21844
  &ServoSPOILERS = L2 * L1
}

Var 1100, name AT_Eng, Link SUBRUTINE
{
  L0 = &SW1_AT_Engage   
  IF L0 = 1
  {
    &FSio_AT_ARM = 1   
    &SW1_AT_DisEnga = 0   
    &SW2_AT_DisEnga = 0   
  }
}

Var 1200, name AT_DisEng, Link SUBRUTINE
{
  L0 = &SW1_AT_DisEnga   
  IF L0 = 1
  {
    &FSio_AT_ARM = 0   
    &SW1_AT_Engage = 0   
    &SW2_AT_Engage = 0   
  }
}



Mettre à jour le SIOC.ini comme ceci
Code: Tout sélectionner
[MASTERS]
MASTER=1,4,1,38

[USBSTEPPER]

[USBKEYS]

[USBSERVOS]

[USBRELAYS]

[USBMOTOR]

[USBANALOGIC]
USBAnalogic=1,38


Avec ça tu as tout ce qu'il faut roicouronne
Jean-Louis
Chtipilot Image

Image
Avatar de l’utilisateur
chtipilot
 
Messages: 371
Inscription: 2/04/11
Localisation: Lille (Nord)

Re: programation axe sur usb carte

Messagede mammouth » Ven 10 Juin 2011 18:06

ok merci je vais tester sa.

Ps: que veux dire le MASTER=1,4,1,38 ils servent a quoi ses n° ?
dans mon sioc moi j'ai : MASTER=0,4,2,0
mammouth
 
Messages: 175
Inscription: 30/08/09

Re: programation axe sur usb carte

Messagede mammouth » Ven 10 Juin 2011 18:56

Bon,

Je prends le devant car sa fait deja 2 heure que je test sans resultat.

Au risque de vous ennuyer :

J'aurai besoin de la marche a suivre complet pour activer tout sa car la je m'y pert et je n'arrive pas a trouver ou est mon (mes) erreur(s).

commencons par le debut: voici ma configuration (qui marche avec tout ce que j'ai deja fait jusqu'a présent) :

Code: Tout sélectionner
[Fichero de configuracion para el SIOC]
[ Configuration file for SIOC ]
Version=3.5
generated_by=Config_SiocIni

[SIOC]
IOCP_port=8092
IOCP_timeout=4000
Minimized=No
toggle_delay=20
CONFIG_FILE=.\vincent.ssi

[IOCARDS MODULE]
IOCard_disable=No
IOCard_LPT=No

[MASTERS]
MASTER=0,4,2,0

[USBSTEPPER]

[USBKEYS]
USBKeys=0,0

[USBSERVOS]
USBServos=0,0

[USBRELAYS]
USBRelays=0,0

[USBMOTOR]
USBDCmotor=0,0

[USBANALOGIC]
USBAnalogic=0,0

[FSUIPC MODULE]
FSUipcdisable=No
FSUipcRefresh=50

[IOCP CLIENTS MODULES]
IOCPini_delay= 3000
IOCPclient0_disable=Yes
IOCPclient0_host=localhost
IOCPclient0_port=8090
IOCPclient1_disable=Yes
IOCPclient1_host=localhost
IOCPclient1_port=8099

[SOUND MODULE]
Sound_disable=Yes
Volume=100

[ #1 ]
Sound=APDis.wav,-1,-1,-1

[ #2 ]
Sound=*outermk.wav,-1,-1,-1

[ #3 ]
Sound=*hello.wav

[KEYBOARD EMULATOR MODULE]
window= "Microsoft Flight Simulator X"
#1=\B\A_
#2=B
#3=C
#4=D
#5=E
#6=F
#7=G
#8=h
#9=I
#10=J
#11=K
#12=L
#13=M
#14=N
#15=O
#16=P
#17=Q
#18=R
#19=S
#20=T
#21=U
#22=V
#23=W
#24=X
#25=Y
#26=Z
#27=1
#28=2
#29=3
#30=4
#31=5
#32=6
#33=7
#34=8
#35=9
#36=0
#37=<
#38=,
#39=.
#40=-
#41=*
#42=+
#43=//
#44=+

[ End of File ]


Dans la fenetre de mon sioc je vois en device :
IDX = *.IOCardUSB - Device = 29

Pour ma programation j'ai ceci :
Code: Tout sélectionner
// *****************************************************************************
// * Config_SIOC ver 3.7B1   -     By Manolo Vélez    -    www.opencockpits.com
// *****************************************************************************
// * FileName : sioc.txt
// * Date : 10/06/2011



Var 0001, name fuel_pump, Link FSUIPC_INOUT, Offset $3104, Length 1, Value 0     // Fuel Pump

Var 0100, name fuelpump_SW, Link IOCARD_SW, Input 1
{
  IF &fuelpump_SW = 1
  {
    &fuel_pump = 1   
  }
  ELSE
  {
    &fuel_pump = 0   
  }
}

Var 0002, name Light, Link FSUIPC_INOUT, Offset $0D0C, Length 2     // Light

Var 0101, name beacon_SW, Link IOCARD_SW, Input 2     // Beacon switch
{
  IF &beacon_SW = 1
  {
    &Light = SETBIT 1
  }
  ELSE
  {
    &Light = CLEARBIT 1
  }
}

Var 0102, name Landlight_SW, Link IOCARD_SW, Input 4     // Landing Light switch
{
  IF &Landlight_SW = 1
  {
    &Light = SETBIT 2
  }
  ELSE
  {
    &Light = CLEARBIT 2
  }
}

Var 0103, name taxi_SW, Link IOCARD_SW, Input 3     // Taxi light switch
{
  IF &taxi_SW = 1
  {
    &Light = SETBIT 3
  }
  ELSE
  {
    &Light = CLEARBIT 3
  }
}

Var 0104, name navlgt_SW, Link IOCARD_SW, Input 8     // Navigation light switch
{
  IF &navlgt_SW = 1
  {
    &Light = SETBIT 0
  }
  ELSE
  {
    &Light = CLEARBIT 0
  }
}

Var 0105, name stroblgt_SW, Link IOCARD_SW, Input 7     // Strob Light Switch
{
  IF &stroblgt_SW = 1
  {
    &Light = SETBIT 4
  }
  ELSE
  {
    &Light = CLEARBIT 4
  }
}

Var 0003, name pitot, Link FSUIPC_INOUT, Offset $029C, Length 1     // pitot

Var 0106, name pitot_SW, Link IOCARD_SW, Input 0     // Pitot Switch
{
  IF &pitot_SW = 1
  {
    &pitot = 1   
  }
  ELSE
  {
    &pitot = 0   
  }
}

Var 0004, name avionic, Link FSUIPC_INOUT, Offset $2E80, Length 4     // on/off avionic

Var 0107, name avionic_SW, Link IOCARD_SW, Input 17     // SW avionic
{
  IF &avionic_SW = 1
  {
    &avionic = 1   
  }
  ELSE
  {
    &avionic = 0   
  }
}

Var 0005, name alternator, Link FSUIPC_INOUT, Offset $3101, Length 1     // alternateur

Var 0108, name alternator_SW, Link IOCARD_SW, Input 6     // SW alternateur
{
  IF &alternator_SW = 1
  {
    &alternator = 1   
  }
  ELSE
  {
    &alternator = 0   
  }
}

Var 0006, name battery, Link FSUIPC_INOUT, Offset $3102, Length 1     // batterie

Var 0109, name bat_SW, Link IOCARD_SW, Input 5     // SW battery
{
  IF &bat_SW = 1
  {
    &battery = 1   
  }
  ELSE
  {
    &battery = 0   
  }
}

Var 0007, name flaps, Link FSUIPC_INOUT, Offset $0BDC, Length 4     // flaps

Var 0110, name flaps0_SW, Link IOCARD_SW, Input 16     // Flaps 0 SW
{
  IF &flaps0_SW = 1
  {
    &flaps = 0   
  }
}

Var 0111, name flaps10_SW, Link IOCARD_SW, Input 12     // flaps 10
{
  IF &flaps10_SW = 1
  {
    &flaps = 5461   
  }
}

Var 0112, name flaps20_SW, Link IOCARD_SW, Input 14     // Flaps 20 SW
{
  IF &flaps20_SW = 1
  {
    &flaps = 10922   
  }
}

Var 0113, name flaps30_SW, Link IOCARD_SW, Input 9     // Flaps 30 SW
{
  IF &flaps30_SW = 1
  {
    &flaps = 16383   
  }
}

Var 2000, name key, Link KEYS     // key

Var 2001, name HDG1, Link IOCARD_SW, Input 44     // HDG -1
{
  IF &HDG1 = 1
  {
    &key = 8   
  }
  ELSE
  {
    &key = 0   
  }
}

Var 2002, name HDG2, Link IOCARD_SW, Input 39     // HDG +1
{
  IF &HDG2 = 1
  {
    &key = 2   
  }
  ELSE
  {
    &key = 0   
  }
}

Var 2003, name vor1, Link IOCARD_SW, Input 40     // CRS vor1 +1
{
  IF &vor1 = 1
  {
    &key = 3   
  }
  ELSE
  {
    &key = 0   
  }
}

Var 2004, name vor12, Link IOCARD_SW, Input 38     // CRS vor1 -1
{
  IF &vor12 = 1
  {
    &key = 4   
  }
  ELSE
  {
    &key = 0   
  }
}

Var 2005, name vor2, Link IOCARD_SW, Input 42     // vor2 +1
{
  IF &vor2 = 1
  {
    &key = 5   
  }
  ELSE
  {
    &key = 0   
  }
}

Var 2006, name vor22, Link IOCARD_SW, Input 41     // vor 2 -1
{
  IF &vor22 = 1
  {
    &key = 6   
  }
  ELSE
  {
    &key = 0   
  }
}

Var 3000, name potar, Link IOCARD_ANALOGIC, Device 1, Input 1, PosL 0, PosC 175, PosR 255     // potar



Pour ce qui est de Controlador, tout mes bouton fonctionne et je vois bien mon potar réagir

Voila maintenant j'aimerai que quelqu'un m'explique en me donnant un exemple sur la profondeur car la je suis completement perdu

Merci à vous
Ps: j'oubliais le comment faire concernant fsuipc encore merci
mammouth
 
Messages: 175
Inscription: 30/08/09

Re: programation axe sur usb carte

Messagede chtipilot » Ven 10 Juin 2011 21:46

Hello mammouth,

Si tu parcours le forum tu y trouveras les réponses cligneoeil , le sujet a déjà été traité plusieurs fois par exemple ici
http://www.aircockpit.com/viewtopic.php?f=64&t=2187&p=21426#p21426

Bon courage,
Jean-Louis
Chtipilot Image

Image
Avatar de l’utilisateur
chtipilot
 
Messages: 371
Inscription: 2/04/11
Localisation: Lille (Nord)

Re: programation axe sur usb carte

Messagede stevelep » Sam 11 Juin 2011 23:53

Hello,

Les chiffres Master dans le SIOC.ini servent à configurer le SIOC par rapport aux carte que tu as

MASTER=0,4,2,0

Tu dois mettre comme dernier chiffre le N° de device de ta carte USB-Expansion
apparemment 29 chez toi

MASTER=0,4,2,29

Si ta carte est reconnue par le SIOC il affiche

IDX = 0 .IOCardUSB - Device = 29

l'astérisque * est remplacé par le n° ID 0, ta carte USB est reconnue comme 0
(on peux en avoir plusieurs)
4 est le type de carte
2 le nombre d'IOCard connecté sur l'USB

Ensuite il faut déclarer l'analogique

[USBANALOGIC]
USBAnalogic=0,29



Voila déjà pour la config
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

Re: programation axe sur usb carte

Messagede stevelep » Dim 12 Juin 2011 00:01

Pour le code:

il te faut récupérer la position de ton pot grâce à une variable analogique

Var 0010, name pot, Link USB_ANALOGIC, Device 0, Input 1, PosL 1, PosC 127, PosR 255

Ensuite créer une variable FSUIPC pour envoyer les donnée à l'axe de profondeur.

Var 0012, name fs_prof, Link FSUIPC_OUT, Offset $xxxx, Length x

Il faut chercher le n° de l'offset et sa longueur dans le programme FSInterrogate (SDK de FSUIPC)

Voila le début

BOB
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

Re: programation axe sur usb carte

Messagede mammouth » Dim 12 Juin 2011 09:11

Merci beaucoup a tous. Sa me semble deja un peux plus clair maintenant.

Juste pour l'instant une question pour ne pas mourir C.. : comment ce fait il que tout ce que j'avais deja fais fonctionnais vu que je n'avais pas mis le bon n° (29 pour ma part) sur la ligne MASTER ??
En meme temps vous dite que 2 est le nombre de carte master connecté mais je n'en ai qu'une donc je dois remplacer par 1 ?

Apres changement de le .ini j'ai bien le * remplacé par 0

et pour la programmation j'ai ceci :

Var 3000, name potar, Link IOCARD_ANALOGIC, Input 1, PosL 1, PosC 127, PosR 255 // potar

Var 4000, name elevator, Link FSUIPC_OUT, Offset $3328, Length 2 // teste d un axe

(par contre sur la variable 3000 il ne m'indique pas mon n° DEVICE qui devrai etre 0 alors que si je met 1 il le marque:
Var 3000, name potar, Link IOCARD_ANALOGIC, Device 1, Input 1, PosL 1, PosC 127, PosR 255

mais je suppose qu'il me manque encore quelque chose car je ne vois pas comment ses deux variable parlent entre elles.
Pour trouver l'offset j'ai selectionné l'option CONTROL puis pris "elevator axe input" et il me met en commentaire : "Post calibration, before delivery"-

Si je suis logique il faut que la var 4000 dois savoir qu'elle dois utiliser la var3000 donc le potar 1 de l'usb carte pour faire fonctionner l'offset 3328.
mammouth
 
Messages: 175
Inscription: 30/08/09

Re: programation axe sur usb carte

Messagede stevelep » Lun 13 Juin 2011 10:00

Hello,

Le controlador fonctionne sans configuration, par contre pour le SIOC il faut préciser le n°USB
Si l'on mets 0 le programme va prendre la première carte USB qu'il va trouver.
Si tu n'as qu'une USB-Expansion ca va peut-être marcher mais si tu branche n'importe quelle autre
carte USB ca ne marchera plus.
Si tu change de port la prise USB de ta carte, le n° USB va changer, il faudra le modifier.
Il est donc plus simple de brancher sa carte sur le même port du PC.

Si tu n'a qu'une IOcard tu peux mettre 1. ca va marcher aussi avec 2 ou 4 car c'est simplement
un filtre qui bloque les entrées supérieures à ton nombre de carte.
Si tu branche une 2ème carte n'oublie pas de modifier le chiffre.
Il faut aussi bien brancher les IOCard dans l'ordre 1 2 3 4 sur l'USB expansion.

Si tu n'as plus l' * c'est que c'est bon.

Device 0 c'est le standard, donc ca n'est pas noté. Si rien n'est précisé c'est device = 0
Perso je programme en texte, c'est pourquoi je l'ai noté.

Ce n° de device correspond au SIOC.ini USBAnalogic=0,29

POur faire "parler les variable entre elle" il faut justement les programmer,
c'est la 2ème phase du SIOC après avoir défini les variables...

Il faut ensuite trouver où écrire le code
Comme le programme est orienté évènement, il faut déterminer quelle variable
crée l'action qui va exécuter le code.
Chez toi c'est le fait de bouger le potar qui va lancer l'action sur la profondeur.
Donc tu doit écrire le code sous la variable analogic.

Var 3000, name potar, Link IOCARD_ANALOGIC, Input 1, PosL 1, PosC 127, PosR 255 // potar
{
&elevator = &potar
}

Var 4000, name elevator, Link FSUIPC_OUT, Offset $3328, Length 2 // teste d un axe

Là j'ai simplement mis un = donc l'elevator va prendre la valeur du potar.
Mais les echelles de valeur ne sont peut-être pas le mêmes
potar (0-255) elevator (-16000 - + 16000) par exemple
Donc il faut que tu trouves dans FSInterrogate les valeurs nim-max de ton offset

BOB

PS l'offset 3328 c'est la sortie axe elevator du joystick de FS il est marqué (read only)
essaie plutôt le 0BB2
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

Re: programation axe sur usb carte

Messagede mammouth » Lun 13 Juin 2011 19:43

Ok pour les cartes j'ai bien compris. J'avais fais le test en changeant le N° et en le mettant en 1 et j'ai bien constaté que sa fonctionnais toujours. Donc pour etre clair dans ma programmation je le laisserai en n°1.

Pour ce qui est de la programmation je vois que j'ai toujours autant de mal a choisir mon offset je crois que je n'ai pas encore le reflexe d'aller la ou je dois.

Pour ce qui est des calcul la j'avoue avoir beaucoup de mal me manque le petit declic qui je sais dois etre super bête mais les T0 T1 T2,.... la s'est etonneyeux (du moin pour le moment) mais je compte bien comprendre et mettre sa en pratique.

J'essaye de comprendre un peut tout ce que vous m'avez appris et de mettre en pratique et je reviends vers vous si cela ne vas pas.

MERCIIIIIIIIIIIIIIIIIIIIII beaucoup
mammouth
 
Messages: 175
Inscription: 30/08/09

Suivante

Retourner vers Programmation Sioc





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 41 invités