Page 1 sur 2

probleme vs

MessagePosté: Jeu 1 Oct 2009 09:15
de dogness
Bonjour je rencontre un problème avec ma programmation v/s lorsque j'essaye d'augmenter il fonctionne tres bien , mais dès que j'essaye de diminuer la,il continue à augmenter j'ai tout essayé mais je n'arrive pas à trouver ce qui ne vas pas je vous post mon code merci de m'apporter votre aide.

Code: Tout sélectionner
// *****************************************************************************
// * Config_SIOC ver 3.5   -     By Manolo Vélez    -    www.opencockpits.com
// *****************************************************************************
// * FileName : sioc.txt
// * Date : 21/09/2009




Var 0007, name SWITCH_FCU, Link FSUIPC_INOUT, Offset $4850, Length 2

Var 0013, Link FSUIPC_IN, Offset $4676, Length 2     // 7SEGMENT_FCU_VSPEED_READ
{
  V0293 = V0020   
}

Var 0020, Link FSUIPC_OUT, Offset $4686, Length 2     // 7SEGMENT_FCU_VSPEED_WRITE

Var 0220, Link IOCARD_ENCODER, Input 151, Aceleration 1, Type 2     // FCU_ENCODER_VSPEED
{
  L0 = V0220 * -1
  V0300 = V0300 + L0
  IF V0220 < 0
  {
    &SWITCH_FCU = 4327   
  }
  ELSE
  {
    &SWITCH_FCU = 4328   
  }
}

Var 0293, Link IOCARD_DISPLAY, Digit 128, Numbers 5     // FCU_VSPEED_7SEGMENT

Var 0300, Link SUBRUTINE     // V/S
{
  IF V0300 > 99
  {
    V0300 = 99   
  }
  IF V0300 < -99
  {
    V0300 = -99   
  }
  V0293 = V0300 * 100
  L0 = V0300 * 100
  V0020 = L0   
}


Arnaud
ps:j'utilise le soft AST

Re: probleme vs

MessagePosté: Jeu 1 Oct 2009 09:35
de ganlhi
Je peux t'aider, vu que je me suis bien pris la tête dessus...
Je ne suis pas sûr que ma solution soit la plus simple ni la plus efficace, mais elle fonctionne !
Au cas où, je laisse dans le code les parties qui permettent d'afficher la VS sur un LCD.

Code: Tout sélectionner
Var 0024, name AP_VS_VAL, Link FSUIPC_INOUT, Offset $07F2, Length 2 // pilote auto VS value
{
  if &AP_VS_VAL >= 32768 // les nombres négatifs sont représentés par des grands nombres positifs, le -1 étant alors équivalent à 65535
  {
    &AP_VS_VAL_TMP = &AP_VS_VAL - 65536
  }
  else
  {
    &AP_VS_VAL_TMP = &AP_VS_VAL
  }
 
  &AP_VS_DSP = &AP_VS_VAL_TMP
}

Var 0434 name ENC_AP_VS Link IOCARD_ENCODER Input 34 Aceleration 1 Type 2
{
  L0 = &ENC_AP_VS * 100

  &AP_VS_VAL_TMP = &AP_VS_VAL_TMP + L0
}

Var 0904, name AP_VS_VAL_TMP
{
  if &AP_VS_VAL_TMP > 2500 // limitation à +2500
  {
    &AP_VS_VAL_TMP = 2500
  }

  if &AP_VS_VAL_TMP < -2500 // limitation à -2500
  {
    &AP_VS_VAL_TMP = -2500
  }

  if &AP_VS_VAL_TMP >= 0
  {
    &AP_VS_VAL = &AP_VS_VAL_TMP
  }
  else
  {
    &AP_VS_VAL = 65536 + &AP_VS_VAL_TMP // les nombres négatifs sont représentés par des grands nombres positifs, le -1 étant alors équivalent à 65535
  }
}

Var 2000, name AP_DSP, value 0 // ecran virtuel pour le LCD Alt/VS

Var 2001, name AP_ALT_DSP // variable d'affichage Alt
Var 2002, name AP_VS_DSP // variable d'affichage VS

Re: probleme vs

MessagePosté: Jeu 1 Oct 2009 10:32
de guda
le plus simple reste de télecharger les sources du MCP opencockpit. Les codes sont fournits

Re: probleme vs

MessagePosté: Jeu 1 Oct 2009 10:39
de ganlhi
Je m'en suis inspiré en fait, donc mon code en est très proche :)

Re: probleme vs

MessagePosté: Jeu 1 Oct 2009 16:13
de dogness
Merci
je ferai le test peut etre ce soir et je vous tiens au courant.
Arnaud

Re: probleme vs

MessagePosté: Ven 2 Oct 2009 20:27
de mameloose
j'ai le meme soucis en indication descente les chiffres font n'importe quoi mais tout va bien pour la montée je n'ai jamais trouvé la solution.... murrouge

Re: probleme vs

MessagePosté: Ven 2 Oct 2009 20:36
de stevelep
Sais-tu que les variables FS ne peuvent pas être négatives. Pour coder des nombres négatifs, la variable
prend une valeur genre 65000.

Pour que le SIOC puisse savoir que c'est une variable à valeur négative possible , il faut
le spécifier avec la commande TYPE 1, il transforme les 65000 en nombre négatif -3456 p.ex.


Type By setting 1, we force a binary to signed integer conversion. The value stored in the variable is signed.

Voila. C'est un grand classique dans les trucs du SIOC

BOB

Re: probleme vs

MessagePosté: Ven 2 Oct 2009 23:40
de mameloose
euhhhh..... ok

et quand on tourne sur iocard on fait comment pour le type 1 ? ecroulerire

je sais je sais sioc c'est mieux mais j'ai tout commencé avec iocard et jusque la tout fonctionne a merveille ; sauf ma v/s negative bien sur...

Re: probleme vs

MessagePosté: Sam 3 Oct 2009 09:10
de stevelep
Oula, je sais pas si il y encore qqun qui utilise le soft Iocard ... tristepartviolet

Euh peut-être une fonction vs dans le volet variable ?

BOB

Re: probleme vs

MessagePosté: Sam 3 Oct 2009 11:27
de mameloose
oui la fonction y est jusque la tout est ok sauf en negatif et le seul endroit ou je peu indiquer un type c'est dans les entrées sw interrupteur or la v/s n'en est pas un.

en faite a chaque fois que je bute je regarde vos code sioc posté et dedans j'y trouve l'offset la longueur et les valeurs initiales comme ca plus qu'a remplir dans le tableau iocard mais la pour la v/s ca se complique et dans les tuto sur le net ils n'en parlent pas.... tristounet