probleme vs

Questions de programmation / Offset FSUIPC et IOCP

probleme vs

Messagede dogness » Jeu 1 Oct 2009 09:15

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
dogness
 

Re: probleme vs

Messagede ganlhi » Jeu 1 Oct 2009 09:35

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
Guilhem

Image
Avatar de l’utilisateur
ganlhi
 
Messages: 734
Inscription: 19/04/09
Localisation: Castelnaudary

Re: probleme vs

Messagede guda » Jeu 1 Oct 2009 10:32

le plus simple reste de télecharger les sources du MCP opencockpit. Les codes sont fournits
Avatar de l’utilisateur
guda
 
Messages: 451
Inscription: 27/04/09
Localisation: Brie Comte Robert (77)

Re: probleme vs

Messagede ganlhi » Jeu 1 Oct 2009 10:39

Je m'en suis inspiré en fait, donc mon code en est très proche :)
Guilhem

Image
Avatar de l’utilisateur
ganlhi
 
Messages: 734
Inscription: 19/04/09
Localisation: Castelnaudary

Re: probleme vs

Messagede dogness » Jeu 1 Oct 2009 16:13

Merci
je ferai le test peut etre ce soir et je vous tiens au courant.
Arnaud
dogness
 

Re: probleme vs

Messagede mameloose » Ven 2 Oct 2009 20:27

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
Avatar de l’utilisateur
mameloose
 
Messages: 1271
Inscription: 20/04/09
Localisation: evreux

Re: probleme vs

Messagede stevelep » Ven 2 Oct 2009 20:36

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
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

Re: probleme vs

Messagede mameloose » Ven 2 Oct 2009 23:40

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...
Avatar de l’utilisateur
mameloose
 
Messages: 1271
Inscription: 20/04/09
Localisation: evreux

Re: probleme vs

Messagede stevelep » Sam 3 Oct 2009 09:10

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
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

Re: probleme vs

Messagede mameloose » Sam 3 Oct 2009 11:27

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
Avatar de l’utilisateur
mameloose
 
Messages: 1271
Inscription: 20/04/09
Localisation: evreux

Suivante

Retourner vers Programmation Sioc





Qui est en ligne

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