π
<-

Lua, linux et TI

Pour TI-Nspire OS 3.0 ou ultérieur.

Re: Lua, linux et TI

Unread postby tobiasBora » 30 Sep 2012, 20:48

Ou sinon connaissez vous d'autres moyens/programmes pour envoyer un fichier sur la calculatrice à un emplacement bien précis ?
User avatar
tobiasBora
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 71.9%
 
Posts: 45
Joined: 18 Sep 2012, 22:34
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: MPSI

Re: Lua, linux et TI

Unread postby Lionel Debroux » 01 Oct 2012, 06:37

Probablement un des titools, mais je ne suis pas sûr d'où est la dernière version. Celle de ticalc.org date un peu et nécessite des changements mineurs pour compiler.

Autre possibilité (moins sympa pour l'utilisateur :D): modifier le programme de tests de libticalcs, "test_ticalcs_2", pour qu'il fasse ce que tu veux de manière non interactive. Au moins trois changements:
1) lancer l'opération Ready ou l'opération Dirlist automatiquement;
2) supprimer le menu pour lancer directement la fonction send_var();
3) modifier send_var() pour envoyer un par un les fichiers que tu veux envoyer.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.4%
 
Posts: 6873
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Lua, linux et TI

Unread postby tobiasBora » 06 Oct 2012, 17:51

Merci pour tes conseils.

Alors la version de ticalc semble compiler sans problème chez moi. Par contre, il n'y a toujours qu'une seule option : le fichier d'entrée, et non pas l'emplacement de destination... A ce demander si c'est possible !

Et c'est exactement pareil dans libticalcs : la fonction send_var_ns (on non ns) appelle celle ci :
Code: Select all
   TRYF(ticalcs_calc_send_var_ns2(h, MODE_NORMAL, filename));

avec h qui semble être un pointeur vers la calculatrice (façon de parler). Or filename est fourni par l'utilisateur, il semble donc que la destination ne soit pas configurable...


D'ailleurs quelle est la différence entre send_var et send_var_ns ?

Et je me demandais, est-ce que l'on ne peux pas envoyer un fichier "compressé" un peu comme un tar.gz qui décompressé à la racine se met automatiquement dans le bon dossier ? Ce n'est pas à ça que servent les ti group ?
User avatar
tobiasBora
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 71.9%
 
Posts: 45
Joined: 18 Sep 2012, 22:34
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: MPSI

Re: Lua, linux et TI

Unread postby jimbauwens » 06 Oct 2012, 18:18

Sorry for the English, but I'm not feeling like writing French right now :P

This code should send a file, play a bit with it:
Code: Select all
CalcModel calc_model = CALC_NSPIRE;
CalcHandle* calc_handle;

... init of tilibs etc ...

const char *filename   = "file_to_send.tns";
const char *foldername = "MyLib"; //folder
   
FileContent* content = tifiles_content_create_regular(calc_model);
tifiles_file_read_regular(filename, content);
VarEntry *entry = content->entries[0];
strcpy(entry->folder, foldername); 
//tifiles_file_display_regular(content);
ticalcs_calc_send_var(calc_handle, MODE_NORMAL | MODE_SEND_LAST_VAR, content);
tifiles_content_delete_regular(content);   


Have fun :)
User avatar
jimbauwensProgrammeur
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 30.5%
 
Posts: 54
Joined: 13 May 2011, 00:00
Location: Belgium
Gender: Male
Calculator(s):
MyCalcs profile
Class: Computer Science @ VUB University Brussels

Re: Lua, linux et TI

Unread postby Lionel Debroux » 06 Oct 2012, 18:27

Or filename est fourni par l'utilisateur, il semble donc que la destination ne soit pas configurable...

Elle l'est ;)

D'ailleurs quelle est la différence entre send_var et send_var_ns ?

"ns" pour "non-silent". Les plus vieilles versions d'OS pour les plus vieilles machines n'ont pas le link silencieux, il faut les mettre manuellement dans un mode de réception avant de communiquer avec elles. La Nspire ne supporte que le link silencieux.

Et je me demandais, est-ce que l'on ne peux pas envoyer un fichier "compressé" un peu comme un tar.gz qui décompressé à la racine se met automatiquement dans le bon dossier ? Ce n'est pas à ça que servent les ti group ?

Les groupes n'existent pas sur Nspire :)
Pour les TI-Z80 et TI-68k, effectivement, ce sont en général des fichiers compressés, qui sont (suivant le modèle) envoyés et reçus morceau par morceau et/ou stockables tels quels sur la machine.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.4%
 
Posts: 6873
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Lua, linux et TI

Unread postby tobiasBora » 27 Oct 2012, 22:36

Thanks a lot for this code ! How did you find it ?

I've however a little problem :
Code: Select all
int main(int argc, char **argv)
{

     printf("#################################################\n");
     printf("#### Don't forget to run this script as root ####\n");
     printf("#################################################\n");

     // Si le nombre d'argument est différent de 3
     if(argc != 3)
     {
     printf("HELP :\n");
     printf("ti_send_file file folder_output\n");
     printf("Ex: ti_send_file myFile.tns MyLib");
     }
     else
     {
     // On vérifie que le fichier donné existe :

     if (fopen(argv[1],"r") == NULL)
     {
          printf("ERREUR : Le fichier n'existe pas ou est illisible.\n");
          return -1;
     }
     else
     {
          printf("Le fichier existe.\n");
     }

     CalcModel calc_model = CALC_NSPIRE;
     CalcHandle* calc_handle;
     CableHandle* cable;
     int err, i;
     int do_exit=0;
     int choice;

     // init libs
     ticables_library_init();
     ticalcs_library_init();

     // set cable
     cable = ticables_handle_new(CABLE_USB, PORT_1);
     if(cable == NULL)
          return -1;

     // set calc
     calc_handle = ticalcs_handle_new(calc_model);
     if(calc_handle == NULL)
          return -1;

     // attach cable to calc (and open cable)
     err = ticalcs_cable_attach(calc_handle, cable);

     // On met l'argument 1 dans filename
     const char *filename   = argv[1];
     // On met l'argument 2 dans le nom de dossier
     const char *foldername = argv[2]; //folder

     // On créé le contenu...
     FileContent* content = tifiles_content_create_regular(calc_model);
     // Et on le remplit
     tifiles_file_read_regular(filename, content);
     VarEntry *entry = content->entries[0];
     strcpy(entry->folder, foldername);
     tifiles_file_display_regular(content);

     // On envoie le fichier :
     ticalcs_calc_send_var(calc_handle, MODE_NORMAL | MODE_SEND_LAST_VAR, content);
    
     // On supprime le contenu de la mémoire
     tifiles_content_delete_regular(content);
        
     // detach cable (made by handle_del, too)
     err = ticalcs_cable_detach(calc_handle);

     // remove calc & cable
     ticalcs_handle_del(calc_handle);
     ticables_handle_del(cable);
     printf("Fin.\n");

     }     
     return 0;
}

When I run it, the only error message I've is :
(process:21112): ticables-WARNING **: usb_bulk_read (No error).

but it doesn't apear every time. Do you know why it doesn't work ? My calculator becomes open when I run it, but there is no transfert.

Lionel Debroux wrote:
Or filename est fourni par l'utilisateur, il semble donc que la destination ne soit pas configurable...

Elle l'est ;)

Avec la technique proposée par jimbauwens ?
La Nspire ne supporte que le link silencieux.

Parfait merci !
User avatar
tobiasBora
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 71.9%
 
Posts: 45
Joined: 18 Sep 2012, 22:34
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: MPSI

Re: Lua, linux et TI

Unread postby Lionel Debroux » 28 Oct 2012, 10:25

I think he adapted code from test_ticalcs_2 and/or titools.

You should trigger a "ready" or "dirlist" operation and see whether it helps.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.4%
 
Posts: 6873
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Lua, linux et TI

Unread postby tobiasBora » 16 Nov 2012, 21:09

Indeed, with a ready function in the beginning, it works great ! (but the transfert is quite long (about 5 sec), but I think it is normal. I'm going to publish the code (emacs file, .lua, .c, executables...) when I have the time. Is there a common place where ti codes are released where I could post it, or should I just put it on my git repo and post a link here ?

Thanks a lot !
User avatar
tobiasBora
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 71.9%
 
Posts: 45
Joined: 18 Sep 2012, 22:34
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: MPSI

Re: Lua, linux et TI

Unread postby jimbauwens » 16 Nov 2012, 21:17

I've created the code after delving a long time time through code of TiLP and the examples. I use it for my Lua <-> Computer linking program (allowing lua on calc to go on the internet). Glad it works now, and sorry for the late reply.

You could put in the archive here or on ticalc.org :)
User avatar
jimbauwensProgrammeur
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 30.5%
 
Posts: 54
Joined: 13 May 2011, 00:00
Location: Belgium
Gender: Male
Calculator(s):
MyCalcs profile
Class: Computer Science @ VUB University Brussels

Re: Lua, linux et TI

Unread postby tobiasBora » 16 Nov 2012, 21:50

Ok, thanks a lot for your great work !

I use it for my Lua <-> Computer linking program (allowing lua on calc to go on the internet).

Are you jocking ????? You can go on the internet with your calculator ? And what do you do with it ? You have a browser ??? And the connexion is by USB cable ? And lua on calc can send data to the computer ?

--EDIT-- and a little question : what OS do you have ? If you have ndless, do you have the possibility to create 3D graph or is it specific to the OS 3.2 ? What are the difference between the OS 3.1 (with the possibility to use ndless) and the OS 3.2 ?
User avatar
tobiasBora
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 71.9%
 
Posts: 45
Joined: 18 Sep 2012, 22:34
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: MPSI

PreviousNext

Return to Nspire-Lua

Who is online

Users browsing this forum: ClaudeBot [spider] and 3 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"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.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
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.
2807 utilisateurs:
>2776 invités
>25 membres
>6 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)