π
<-
Chat plein-écran
[^]

[Ti 83 premium CE] Lire une OS_variables

Assembleur, Axe, C/C++, ICE...

[Ti 83 premium CE] Lire une OS_variables

Unread postby axel stefanini » 08 Oct 2018, 21:20

Bonjour;
J'aimerais pouvoir accéder depuis mon programme en C, à une variable très spécifique ; en effet lorsqu'on définit une équation, on peut faire une manipulation très simple par la suite, on peut changer la valeur de X en Ti basique, puis taper Y1 en entrée, et on obtient le résultat de la fonction avec la valeur de X demandé.
Lorsque l'équation Y1 équivaut à X², on peut obtenir le résultat de la fonction... J'aimerais en C pouvoir y accéder cependant, je n'y arrive pas,

screenshot_CPRGMCE.png
screenshot_CPRGMCE.png (3.45 KiB) Viewed 5654 times


Je vous donne le lien de mon projet builder ; https://tiplanet.org/pb/?id=108416_1538 ... 8b7cf60fa6
J'ai déjà jeter un coup d'oeil au toolchaine sans succès ; https://ce-programming.github.io/toolch ... 27c94b6892

En utilisant le logiciel CEme la variable est "ans" ;

cemu Emulator.PNG


Merci beaucoup!!
User avatar
axel stefanini
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 54.3%
 
Posts: 18
Joined: 19 Sep 2016, 17:48
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: [Ti 83 premium CE] Lire une OS_variables

Unread postby Adriweb » 09 Oct 2018, 06:13

Mateo m'a contacté pour en savoir plus (il n'etait pas sur de ta demande), mais il a pu finir par repondre entre temps si j'ai bien suivi :)

Bref, en effet ca se fait avec les fonctions de la lib fileioc, il y a des exemples sur https://github.com/CE-Programming/toolc ... src/main.c
En prenant ca en consideration, vu qu'on peut lire et ecrire des variables TI-Basic, quel serait le probleme desormais ?

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.4%
 
Posts: 14670
Images: 1118
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: [Ti 83 premium CE] Lire une OS_variables

Unread postby axel stefanini » 09 Oct 2018, 18:01

Bonsoir!

Alors oui il m'a répondu, et cela m'a beaucoup aidé à comprendre certaine chose autour des variables dans la calculatrice.
Cependant, j'ai malheureusement compris que l'histoire de la variables "Ans" au final ne m'étais pas utile...

Je cherche à faire calculé l'OS à ma place, j'aimerais non pas récuper la variable "Ans" qui est juste la dernière variable calculé, mais j'aimerais obtenir la valeur de la donnée Y1 que calcul l'OS et stock ensuite dans la var Ans.
Et j'ai déjà regardé plusieurs fois les nombreux exemples proposé, et la variables Y1 existe en equation et non pas en résultat, cependant en Ti basic on peut obtenir le résultat juste en tapant Y1 dans les entrées...

Voila mon le problème qui persiste ^^
Merci!
User avatar
axel stefanini
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 54.3%
 
Posts: 18
Joined: 19 Sep 2016, 17:48
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: [Ti 83 premium CE] Lire une OS_variables

Unread postby Hamza.S » 09 Oct 2018, 18:15

inspire toi de ça : https://github.com/nathanfarlow/Symboli ... tor/main.c

Code: Select all
ti_var_t y1, y2;
...
y1 = ti_OpenVar(ti_Y1, "r", TI_EQU_TYPE);

après je ne sais pas s'il y a autre chose à faire pour en arriver là
Image
User avatar
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 28.7%
 
Posts: 4490
Images: 18
Joined: 07 Nov 2014, 00:43
Gender: Male
Calculator(s):
MyCalcs profile

Re: [Ti 83 premium CE] Lire une OS_variables

Unread postby axel stefanini » 09 Oct 2018, 18:29

Hamza.S wrote:inspire toi de ça : https://github.com/nathanfarlow/Symboli ... tor/main.c

Code: Select all
ti_var_t y1, y2;
...
y1 = ti_OpenVar(ti_Y1, "r", TI_EQU_TYPE);

après je ne sais pas s'il y a autre chose à faire pour en arriver là


J'ai déjà regardé plusieurs fois ce code en effet, il est très instructif, cependant il traite non pas un résultat mais une sorte de tableau dans lequel est stocké la l'équation purement en écriture formel.
Et je pense que créer un systeme capable de calculer un résultat à partir de cela est assez compliqué. En effet il faudrait créer tout un système capable de calculer la fonction en respesctant les règles de calcul formel. Ce qui reviendrait alors, à surchargé la calculatrice...

J'ai également déjà essayé de stocker la variables Y1 dans un real_t après l'avoir récupéré via la commande que tu as cité ici en esperant que l'OS allait me la calculer toute seule, mais sans résultat...
User avatar
axel stefanini
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 54.3%
 
Posts: 18
Joined: 19 Sep 2016, 17:48
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: [Ti 83 premium CE] Lire une OS_variables

Unread postby Hamza.S » 09 Oct 2018, 18:49

Ça a recopié Y1 tel qu'elle est écrite. C'est comme la fonction équ>string( donc essaie de comprendre comment ça fonctionne. Possible qu'il fait aussi ce qui tu veux
Image
User avatar
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 28.7%
 
Posts: 4490
Images: 18
Joined: 07 Nov 2014, 00:43
Gender: Male
Calculator(s):
MyCalcs profile

Re: [Ti 83 premium CE] Lire une OS_variables

Unread postby axel stefanini » 09 Oct 2018, 19:53

Alors actuellement j'arrive à ouvrir la virable y1 mais pas à recupéré ce qu'il y a dedans ;

Code: Select all

ti_var_t y1;
equ_t    *my_equ;

y1 = ti_OpenVar(ti_Y1, "r", TI_EQU_TYPE);


Ainsi il est impossible de cast une ti_var_t en une equ_t voilà quelques trucs que j'ai déjà essayé ;
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Select all
my_real = (real_t)y1; //erreur
my_real = os_FloatToReal((float)ti_GetDataPtr(y1)); //erreur
   
result = (int)y1; //Donne 0 pour n'importe quelle fonction Y1 et valeur de X.
result = (int)ti_GetDataPtr(y1); //Donne 211 pour n'importe quelle[..]

    txt[0] = (char)y1; //Vide completement

etc...



Je rappel que l'equation en tant que tel ne m'interesse pas, car elle ne me servirait à rien, il me faudrait le résultat que la calculatrice calcul.

En faite, ce que j'ai besoin de faire en C, cela ce fait super facilement en Ti-Basic ;
Code: Select all
­2→X
1→I
While I<10
Y₁→L₁(I)
I+1→I
X+0.5→X
End


Merci!
User avatar
axel stefanini
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 54.3%
 
Posts: 18
Joined: 19 Sep 2016, 17:48
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: [Ti 83 premium CE] Lire une OS_variables

Unread postby Adriweb » 10 Oct 2018, 02:36

En fait, Y1 est une equation/"expression", donc tu n'auras pas de resultat de call en la demandant - mieux vaut stocker au prealable Y1(2) (par exemple, X=2 dans ce cas) dans une variable, puis la recuperer cote C. Il y a possblement mieux a faire...

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.4%
 
Posts: 14670
Images: 1118
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: [Ti 83 premium CE] Lire une OS_variables

Unread postby axel stefanini » 10 Oct 2018, 19:47

Le problème c'est que mélanger des programmes en Ti basic et C va être vite problématique...
En soit j'aimerais calculé un grand nombre d'image de la fonction Y1 pour des valeurs de X et Y donnée.

J'ai beaucoup réflechi, et je me suis demandé,
Lorsque on entre Y1 et qu'on obtient le résultat, l'OS réalise le calcul à notre place et le stock dans la variables "Ans", grâce au désassemblage de l'émulateur CEmu, serait-il possible de récupérer en Assembleur la fonction qui se charge de faire le boulot ?
En effet, dans la documentation du fichier "fileioc.h File Reference" nous pouvons voir que ;
Code: Select all
/* Some more definitions using Ans */
#define TI_ANS_TYPE (0x00)
#define ti_Ans      ("\x72\0")


Grâce à ces informations, serait-il possible de retrouver quelle(s) fonction(s) stock(ent) le résultat de Y1 dans la cellule de mémoire correspondant à la variables "Ans" ?
Ainsi il """suffirait""" de rappelle cette/ces même(s) fonction(s) via ;
Code: Select all
_OS()
void _OS   (   void(*)(void)    function   )   
Use this function to call assembly functions in the OS and Bootcode i.e. _OS( asm_ArcChk );


Voici ce que j'ai sur CEmu après quelques recherche ;
Show/Hide spoilerAfficher/Masquer le spoiler
Ans.PNG
Ans.PNG (7.11 KiB) Viewed 5508 times

Ans2.PNG



Merci!
User avatar
axel stefanini
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 54.3%
 
Posts: 18
Joined: 19 Sep 2016, 17:48
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: [Ti 83 premium CE] Lire une OS_variables

Unread postby axel stefanini » 10 Oct 2018, 20:36

Après avoir passé beaucoup de temps dans la documentation j'ai trouvé une commande très intéréssante ;

En effet il existe une fonction appellé ;

Code: Select all
os_StrToReal()
real_t os_StrToReal   (   const char *    string,
char **    end
)   
This converts a ti-ascii string to a ti-float.


J'ai donc combiné cette fonction avec un Os_input.

Voici mon code ;

Code: Select all
#define INPUT_SIZE  10
#define RESP_SIZE   20

/* Main Function */
void main(void) {

    /* Declare some variables */
    real_t    real_value;
    char inputBuffer[INPUT_SIZE];
    char *str = malloc(10*sizeof(char));
    char** pointer = NULL;

    /* Clear the homescreen */
    os_ClrHome();

    /* Ask the user to type a string, which gets stored in `inputBuf` */
    os_GetStringInput("What is f? ", inputBuffer, INPUT_SIZE);



    strcpy(str, inputBuffer); // copy the contents of inputBuffer to str

    pointer = &str;

    real_value = os_StrToReal(str,&str+8);

    ti_SetVar(TI_REAL_TYPE, ti_A, &real_value);

    while( !os_GetCSC() );

}


Comment puis-je faire pour que dans la partie os_StrToReal(char *,char**); Je puisse avoir une commande parfaitement fonctionnel ? Car avec mon code elle ne copie que le premier caractère intégré.

Merci!
User avatar
axel stefanini
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 54.3%
 
Posts: 18
Joined: 19 Sep 2016, 17:48
Gender: Not specified
Calculator(s):
MyCalcs profile


Return to Langages alternatifs

Who is online

Users browsing this forum: No registered users and 30 guests

-
Search
-
Social TI-Planet
-
Featured topics
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Offre de test des nouveautés de rentrée 2024 par Casio. Enseignant(e), reçois gratuitement 1 exemplaire, à ton choix, de la Graph Light ou bien de la Graph Math+
14€ remboursés par Casio sur l'achat de ta calculatrice Graph 35 d'ici le 31 Octobre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 90+E d'ici le 31 Décembre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 25 d'ici le 31 Décembre 2024
8€ remboursés par Casio sur l'achat de ta calculatrice Graph Math+ d'ici le 31 Octobre 2024
Reprise de ton ancienne fx-92 Collège ou Graph 25/35/90 à 3€ peu importe son état. Même non fonctionnelle et donc invendable, même ancienne Graph 35 non conforme aux programmes (pas de Python), même ancienne Graph 25/35 inutilisable aux examens (pas de mode examen) et donc invendable. Etiquette de retour fournie, pas de frais de port à payer.
3€ remboursés par Casio sur l'achat de ta calculatrice fx-92 Collège d'ici le 30 Septembre 2024
5€ de remise immédiate sur l'achat de ta calculatrice TI-83 Premium CE Edition Python chez les revendeurs partenaires
4€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced Edition Python chez les revendeurs partenaires
3€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced chez les revendeurs partenaires
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234567891011121314
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1402 utilisateurs:
>1393 invités
>4 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)