script Target : besoin de précision sur les ALIAS

Salle dedieé aux péripheriques : Joystick, palloniers, Track-Ir
Avatar de l’utilisateur

Topic author
hellfrog35
Nouvelle Recrue
Nouvelle Recrue
Messages : 187
Inscription : 12 avril 2016

script Target : besoin de précision sur les ALIAS

#1

Message par hellfrog35 »

bonjour,
je me replonge dans la programmation Target, et j'ai un peu de mal à piger l'utilisation de l'instruction ALIAS.
ce n'est pas exactement une définition de pointer comme en C apparemment ?

besoin de faire ref à l'adresse mémoire du tableau chaine avec sprintf() par ex.
besoin de faire réf à la chaine complète pour son contenu.

par ex, j'ai une variable chaine (donc un tableau), de portée globale :

Code : Tout sélectionner

char str_tableau[4] = { "U", "D", "L", "R"};
l'appui d'un bouton déclenche l'exécution d'une fonction :

Code : Tout sélectionner

H1U_MO = EXEC("ma_func();");
cette fonction en appelle une autre en faisant référence à un indice du tableau de caractères.
ex :

Code : Tout sélectionner

ma_func(){ autre_func(str_tableau[2]); } autre_func(alias UDLR){ blablacode sprintf(&unechaine, "%s%s", &unechaine, &UDLR); blabla }
ça marche pas comme je veux,
j'ai des erreurs d'execution mais pas de compilation avec Bad Alias ou Index missing sur l'appel dans ma_func...
ça doit être un pb de syntaxe, mais je trouve pas la bonne, j'ai beau regarder la biblio C... je patine.
si qqn a une soluce et une explication
j'ai essayé de déclarer str_tableau en alias, c'est pas bon, d'appeler par &str_tableau, ça va pas avec l'indice, logique, fait ref au pointeur...

déjà que je maitrise pas parfaitement les pointeurs et chaine en C, Target script n'est pas exactement du C++ ni du C# ? si ?


EDIT : la question finale c'est
[alias ma_var] en target script est il l'équivalent de [char *ma_var] en C ?
Dernière modification par hellfrog35 le mar. mai 03, 2016 9:24 pm, modifié 1 fois.
ancien compte hellfrog sous DCS BS1 de 2007 à 2011

Rcaf_Frenchy
Mécano au sol
Mécano au sol
Messages : 523
Inscription : 10 septembre 2002

Re: script Target : besoin de précision sur les ALIAS

#2

Message par Rcaf_Frenchy »

char str_tableau[4] = { "U", "D", "L", "R"};
en C++
j'écrirai plutot
char str_tableau[4] = { 'U', 'D', 'L', 'R'}

car "" c'est pour les string..;

je ne sais pas si cela a de l'importance avec TARGET, j'avoue que j'ai abandonné j'utilise plus FreePie avec Python pour piloter mon joy Warthog
Avatar de l’utilisateur

Topic author
hellfrog35
Nouvelle Recrue
Nouvelle Recrue
Messages : 187
Inscription : 12 avril 2016

Re: script Target : besoin de précision sur les ALIAS

#3

Message par hellfrog35 »

salut, merci de répondre.
je viens d'ajouter un Edit en fin de mon premier message
le pb n'est pas "" ou ', et script préfère les "

EDIT : tu avais raison : 'U' est un caractère stocké sur 4 bits, "U" est un mot de 2 caractères ( U et \0) stocké sur 6 bits, donc la nautre du tableau n'est plus la même... cf plus bas

passer une valeur string élément d'un tableau à une fonction, c'est ça qui me pose pb.
l'appel ma_func(var_tableau[2]) par ex, renvoie Bad index
et ma_func(var_tableau, 2) renvoie index missing....
Dernière modification par hellfrog35 le mar. mai 03, 2016 11:05 pm, modifié 1 fois.
ancien compte hellfrog sous DCS BS1 de 2007 à 2011
Avatar de l’utilisateur

Topic author
hellfrog35
Nouvelle Recrue
Nouvelle Recrue
Messages : 187
Inscription : 12 avril 2016

Re: script Target : besoin de précision sur les ALIAS

#4

Message par hellfrog35 »

j'ai pigé comment passer un tableau de caractères type {'a', 'b', 'c' }
il faut appeller ainsi : ma_func(2,&var_tableau) en ayant defini la fonction ainsi : ma_func(int i, alias var_tab){...}
mais pour passer des tableaux de mots {"chat", "chien", "cheval" ...} c'est une autre histoire
en C on défini le type de pointeur, identique au type du tableau. Mais avec ALIAS : ça marche comment ? c'est limité au cas précédant et on peut pas passer des mots ?
sinon un appel de tableau de mots avec la meme syntaxe fonctionne, mais ne renvoie pas les mots, simplement un seul caractère, et pas le bon, donc la lecture des éléments du tableau est mauvaise soit / adresse mémoire renvoyée par le pointeur, soit sur la longueur de l'élément du tableau, donc un problème de type.

quel est le type de ALIAS dans target ?
sachant qu'on ne peut pas faire comme en C, definir un tableau, puis lui affecter un pointeur... si ? comment ?

j'aimerais avoir une réponse fiable.
ancien compte hellfrog sous DCS BS1 de 2007 à 2011
Avatar de l’utilisateur

Topic author
hellfrog35
Nouvelle Recrue
Nouvelle Recrue
Messages : 187
Inscription : 12 avril 2016

Re: script Target : besoin de précision sur les ALIAS

#5

Message par hellfrog35 »

je crois que j'ai trouvé une piste en fouinant dans les fichiers include de target : target.tmh et hid.tmh :

Code : Tout sélectionner

define SIZEMYWORD 13*6+1 define SIZEMYARRAY 5*SIZEMYWORD struct array_MsgTrim { char str_MsgTrimDirection[SIZEMYARRAY]; } array_MsgTrim str_MsgSay_Trim = {"Trim up ", "Trim down ", "Trim left ", "Trim right "};
besoin d'aide pour le calcul des valeurs, message erreur compilation < Array/struct bounds overflow > ...

EDIT : en dimmensionnant au bon endroit ça va mieux, mais un calcul précis serait mieux : how to ? (nb mots * nb car * nb octet 1 car + fin mot + ? pr tableau ?)

Code : Tout sélectionner

define KTRIMWORDLEN 13*6+1 define MAXKTRIMWORDLEN 5*KTRIMWORDLEN struct array_MsgTrim { char str_MsgTrimDirection[KTRIMWORDLEN]; } array_MsgTrim str_MsgSay_Trim[MAXKTRIMWORDLEN] = {"Trim up ", "Trim down ", "trim left ", "trim right "};

Code : Tout sélectionner

et une fonction comme ça : my_func(int i, int j, alias my_tring){}
je dois être sur le bon chemin pour le type et l'affectation des valeurs.
reste à dimensionner ce tableau correctement en memoire

et ensuite à y faire ref pour les appels...
du genre &my_string.my_word+i ?ou &&my_string[j] ?

un p'tit coup de main ?
ancien compte hellfrog sous DCS BS1 de 2007 à 2011
Avatar de l’utilisateur

Topic author
hellfrog35
Nouvelle Recrue
Nouvelle Recrue
Messages : 187
Inscription : 12 avril 2016

Re: script Target : besoin de précision sur les ALIAS

#6

Message par hellfrog35 »

pas de pb pour les passages et appels de tableaux à n dimensions en C ou en lua, mais dans Target je coince tjrs...
help please...
ancien compte hellfrog sous DCS BS1 de 2007 à 2011

Rcaf_Frenchy
Mécano au sol
Mécano au sol
Messages : 523
Inscription : 10 septembre 2002

Re: script Target : besoin de précision sur les ALIAS

#7

Message par Rcaf_Frenchy »

de mes souvenirs alias = passage par référence... donc ensuite la variable est appelée par &var (adresse et non le contenu) souvent utilisé pour le passage de tableau de var ou string

après j'ai du mal à voir ce que tu veux faire... je peux t'aider dans la programmation mais il faudrait que je comprenne l'analyse de ce que tu veux faire
Avatar de l’utilisateur

Topic author
hellfrog35
Nouvelle Recrue
Nouvelle Recrue
Messages : 187
Inscription : 12 avril 2016

Re: script Target : besoin de précision sur les ALIAS

#8

Message par hellfrog35 »

j'ai laissé tombé, trop long à l'execution, et passer par du script lua ou python ou autohotkey ou autoit par ex est plus souple aussi....

sinon je voulais juste la syntaxe exacte pour passer un tableau à 2 ou 3 dimensions à une fonction
en pseudo langage target script,
et la syntaxe d'appel.
ancien compte hellfrog sous DCS BS1 de 2007 à 2011
Répondre

Revenir à « salle: Periphériques: Hotas, Joysticks, Track-IR »