[Gnu/Linux][X Window[Ada][GtkAda] Over Gnu/Linux/X Window/Ada/GtkAda

Over Gnu/Linux/X Window/Ada/GtkAda [Gnu/Linux][X Window[Ada][GtkAda] - Ada - Programmation

Marsh Posté le 11-01-2015 à 21:56:54    


Bonjour, [:dawa]
 
Je veux créer une application fenêtrée avec Ada et GtkAda ; Qui interface et exploite quasi automatiquement toutes les commande Gnu/Linux de base.
Une sorte de lanceur, duquel il serait possible de ne jamais sortir,un peu comme "midnight commander" ou qui permettrait de lancer les commande les une après les autre.
 
Auriez vous des conseils pour compléter le mieux possible mon fichier principal ?
 
Svp !
 
Merci !
 
 
Voici mon fichier principale en l'état (après on discute) :

Code :
  1. with Arch;                              use Arch;
  2. with Arch.Abstracts;
  3. with Arch.Classes;
  4. with Arch.Environment;
  5. with Arch.Install;
  6. with Arch.Window;
  7. with Gtk;                               use Gtk;
  8. with Gdk.Threads;
  9. with Gtk.Main;
  10. with Gtk.Enums;                         use Gtk.Enums;
  11. with Ada;                               use Ada;
  12. with Ada.Text_Io;
  13. procedure Archman is
  14.  
  15.   Gtk_Error : exception;
  16. begin
  17.   -- initialize Environment !                                                
  18.   Gdk.Threads.G_Init;
  19.   Gdk.Threads.Init;
  20.   Gtk.Main.Init;
  21.   if not Main.Init_Check then
  22.      raise Gtk_Error;
  23.   end if;
  24.   declare
  25.      -- initialize window !                                                  
  26.   begin
  27.      -- Start Environment !                                                  
  28.      Gdk.Threads.Enter;
  29.      Gtk.Main.Main;
  30.      Gdk.Threads.Leave;
  31.   end;
  32. exception
  33.  
  34.   when Gtk_Error =>
  35.      Text_Io.Put_Line("Gtk Error." );
  36. end Archman;


 
 
(Je sais, c'est flou, mais pas trop quand même [:dawa_neowen])


---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
Reply

Marsh Posté le 11-01-2015 à 21:56:54   

Reply

Marsh Posté le 11-01-2015 à 23:49:01    

Je m'avance un peu ! 90' plus tard...
 
J'édite les sources pour ajouter la finalization et la version update, comme ça c'est bouclé ici.  :bounce:  
 
Finalement, je reviens pour ajouter l'initialization de l'interface textuelle.
 

Code :
  1. -- Archman is Gnu/Linux interface over Ada and GtkAda.                          
  2. -- Archman (C) 2015 Copyright Manlight.net                                      
  3.  
  4. -- This program is free software: you can redistribute it and/or modify        
  5. -- it under the terms of the GNU General Public License as published by        
  6. -- the Free Software Foundation, either version 3 of the License, or            
  7. -- (at your option) any later version.                                          
  8. --                                                                              
  9. -- This program is distributed in the hope that it will be useful,              
  10. -- but WITHOUT ANY WARRANTY; without even the implied warranty of              
  11. -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                
  12. -- GNU General Public License for more details.                                
  13. --                                                                              
  14. -- You should have received a copy of the GNU General Public License            
  15. -- along with this program.  If not, see <http://www.gnu.org/licenses/>.        
  16. -------------------------------------------------------------------------------
  17. -- Author       : Manuel De Girardi                                          --
  18. -- Date         : 2015-01-12                                                 --
  19. -- Project name : Archman                                                    --
  20. -- Version      : 2.0.8a                                                     --
  21. -- Description  : This program is writed over Gnu/Linux with Ada and GtkAda. --
  22. -------------------------------------------------------------------------------
  23.  
  24. with Arch;                              use Arch;
  25. with Arch.Abstracts;
  26. with Arch.Ai;
  27. with Arch.Angels;
  28. with Arch.Classes;
  29. with Arch.Environment;
  30. with Arch.Install;
  31. with Arch.Terminal;
  32. with Arch.Window;
  33. with Gtk;                               use Gtk;
  34. with Gdk.Threads;
  35. with Gtk.Main;
  36. with Gtk.Enums;                         use Gtk.Enums;
  37. with Ada;                               use Ada;
  38. with Ada.Text_Io;
  39. procedure Archman is
  40.  
  41.   Gtk_Error : exception;
  42.  
  43.   Context : constant Arch.Interfaces_Type := Textual;
  44.  
  45.   Errno   : Integer := 0;
  46.  
  47.   Non_Zero : exception;
  48. begin
  49.  
  50.   begin
  51.      loop
  52.         case Getopt ("x" ) is  -- Accepts '-a', '-ad', or '-b argument'        
  53.            when ASCII.NUL => exit;
  54.  
  55.            when 'x' =>
  56.               if Full_Switch /= "x" then
  57.                  raise Invalid_Switch;
  58.               end if;
  59.               Context := Graphical;
  60.            when others =>
  61.               raise Program_Error;         -- cannot occur!                    
  62.         end case;
  63.      end loop;
  64.   exception
  65.      when Invalid_Switch    => Put_Line ("Invalid Switch " & Full_Switch);
  66.      when Invalid_Parameter => Put_Line ("No parameter for " & Full_Switch);
  67.   end;
  68.  
  69.   -- initialize Environment !                                                        
  70.   Errno := Arch.Environment.Initialize;
  71.   if Errno /= 0 then
  72.      raise Non_Zero;
  73.   end if;
  74.  
  75.   -- initialize Ai !                                                                  
  76.   Errno := Arch.Ai.Initialize;
  77.   if Errno /= 0 then
  78.      raise Non_Zero;
  79.   end if;
  80.  
  81.   declare
  82.  
  83.      -- use Univers !                                                                
  84.      Archsum  : aliased Arch.Environment.Sum_Type(Context);
  85.   begin
  86.  
  87.      -- add Client Env to Environment.                                                
  88.      Errno := Arch.Environment.Add(Archsum);
  89.      if Errno /= 0 then
  90.         raise Non_Zero;
  91.      end if;
  92.  
  93.      -- initialize client Environment !                                              
  94.      Errno := Archsum.Initialize;
  95.      if Errno /= 0 then
  96.         raise Non_Zero;
  97.      end if;
  98.  
  99.      declare
  100.  
  101.         -- use Computer !                                                            
  102.         Archai      : aliased Arch.Ai.Computer_Type(Context, Archsum'Access);
  103.         -- use Interface !                                                            
  104.         Archmachine : aliased Arch.Angels.Machine_Type(Context, Archai'Access);
  105.      begin
  106.  
  107.         -- add Client Ai to Architecture !                                            
  108.         Errno := Arch.Ai.Add(Archai);
  109.         if Errno /= 0 then
  110.            raise Non_Zero;
  111.         end if;
  112.  
  113.         case Context is
  114.            when Graphical =>
  115.               -- initialize GtkAda !                                                  
  116.               Gdk.Threads.G_Init;
  117.               Gdk.Threads.Init;
  118.               Gtk.Main.Init;
  119.               if not Main.Init_Check then
  120.                  raise Gtk_Error;
  121.               end if;
  122.  
  123.               -- initialize Interface !                                              
  124.               Errno := Arch.Window.GtkAda_Initialize(Archmachine.GtkAda_Interface);
  125.               if Errno /= 0 then
  126.                  raise Non_Zero;
  127.               end if;
  128.  
  129.               -- Start Environment !                                                  
  130.               Gdk.Threads.Enter;
  131.               Gtk.Main.Main;
  132.               Gdk.Threads.Leave;
  133.            when others =>
  134.  
  135.               -- initialize Interface !                                                  
  136.               Errno := Arch.Terminal.Shell_Initialize(Archmachine.Shell_Interface);
  137.               if Errno /= 0 then
  138.                  raise Non_Zero;
  139.               end if;
  140.  
  141.         end case;
  142.      end;
  143.  
  144.   end;
  145.  
  146.   -- finalize Ai !                                                                    
  147.   Errno := Arch.Ai.Finalize;
  148.   if Errno /= 0 then
  149.      raise Non_Zero;
  150.   end if;
  151.  
  152.  
  153.   -- finalize Environment !                                                          
  154.   Errno := Arch.Environment.Finalize;
  155.   if Errno /= 0 then
  156.      raise Non_Zero;
  157.   end if;
  158.  
  159.  
  160.   Errno := Arch.Environment.Version.Update;
  161.   if Errno /= 0 then
  162.      raise Non_Zero;
  163.   end if;
  164.  
  165. exception
  166.   when Non_Zero =>
  167.      Text_Io.Put_Line("Arch Error." );
  168.      Text_Io.Put_Line("Errno = " & Integer'Image(Errno));
  169.   when Gtk_Error =>
  170.      Text_Io.Put_Line("Gtk Error." );
  171. end Archman;


 
Normalement ça doit pouvoir fonctionner selon un choix primordial dans la vie de 2015 :
- interface graphique ?
- interface textuelle ?
 
Après faut que ce soit intelligent, reliable (ce mot n'est pas dans mon dico) et self-finalized.
 
Bon j'ai du taf.  :jap:  
 
Mais vous pouvez participé en envoyant vos dont !  :p


Message édité par par l'anneau de l'ia le 12-01-2015 à 01:08:29

---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
Reply

Marsh Posté le 12-01-2015 à 15:02:46    

Bonjour, ou re- bonjour, ou bonsoir !
 
 
Voici la nouvelle déclinaison du projet "Archman"
 
Liste des bibliothèques :

Arch
Arch-Abstracts
Arch-Ai
Arch-Angels
Arch-Classified
Arch-Environment
Arch-Gnu
Arch-Install
Arch-Linux
Arch-Posix
Arch-Terminal
Arch-Versions
Arch-Window


 
Le projet est disponible sur ma bécane
 
Rien de bien neuf pour le moment ! j'ai juste créé une fenêtre.
 
Si vous souhaitez contribuer, n'hésiter pas à vous joindre à nous dans ce file de discussion.


Message édité par par l'anneau de l'ia le 12-01-2015 à 15:03:26

---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
Reply

Marsh Posté le 16-01-2015 à 01:16:08    

He ! Mais j'ai un super sujet.  :bounce:  
 
 
Bonjour,  :hello:  
 
 
Donc j'avance avec mes gros sabot.
 
J'ai commencé par le main, comme je le sentais parce que de toute manière mon projet est énorme.
J'ouvre un interpréteur de commande (au singulier) dans une fenêtre ou je lance un interpréteur de commande (au singulier) dans un terminal.
La commande accepté fait l'inverse. C''est à dire qu'on ouvre un terminal à partir d'une fenêtre, et une fenêtre d'un terminal. Enfin sur X si non c'est moins Win.
 
Bref. je suis loin de la fin.
 
Le but c'est le faire un gestionnaire de document et une fonction de recherche de document (sur le réseau).
Mais c'est pas sûr que je le fasse finalement, et pas que ça si non.


Message édité par par l'anneau de l'ia le 16-01-2015 à 03:09:16

---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
Reply

Marsh Posté le 16-01-2015 à 03:01:33    

Screen shot textual mode !
 

                                                                               
 +----------------------------------------------------------------------------+  
 |                          Archman    2.  2.   3b                            |  
 +----------------------------------------------------------------------------+  
 +----------------------------------------------------------------------------+  
 |                                                                            |  
 |                             X is running...                                |  
 |                 Going to start Archman (graphical mode)                    |  
 |                                                                            |  
 +----------------------------------------------------------------------------+  
 +----------------------------------------------------------------------------+  
 |                     Enter your text or command here.                       |  
 |                                                                            |  
 |  #                                                                         |  
 |                                                                            |  
 +----------------------------------------------------------------------------+  
                                                                                 
                                                                                 
 +----------------------------------------------------------------------------+  
 |                    press 2 Escape character to Quit !                      |  
 +----------------------------------------------------------------------------+  
                                                                                 
                                                                                 


---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
Reply

Marsh Posté le 16-01-2015 à 16:48:01    

Bonjour,
 
J'ai un petit problème.
 
Je suis passé d'une version bricolé objet à une version sensé être orienté objet. C'est à dire que j'ai dérivé 2 classes d'une unique abstraction de classe et j'utilise un pointeur unique pour gérer l'objet en fonction de sa classe effective.
Avant ça fonctionnait correctement, et à présent j'ai un problème pour quitter l'application.
Je peux quitter, mais la procédure, enfin l'affichage n'est pas conforme, comme si ça ramait grave.
 
J'était à la version 2.2.6b, j'ai migré en 2.2.7a sur mon projet à l'adresse ci-dessus.
 
En mode texte ça marche.
Le mode fenêtre fonctionne également.
C'est le mode texte sous X qui pose problème à la sorti du programme qui nécessite normalement 2 escapes pour entré dans la condition "voulez vous vraiment quitter ?" et deux escapes de plus pour mettre fin au processus.
La les deux premiers escape son invisible, les deux suivant mette laborieusement fin au programme.
 
Je cherche.
Merci pour votre Aide.
 
Je rappelle que ce programme utilise GtkAda et est écrit pour Gnu/linux.
 
Pour tester vous pouvez simplement lancer un xterm et Archman depuis votre shell préféré.


---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
Reply

Marsh Posté le 16-01-2015 à 19:29:37    

pour parler code, c'est peut-être plus pratique pour répondre empiriquement :
 
J'avais mon fichier principale qui comporte un "case" :

Code :
  1. case Context is
  2.            when Graphical =>
  3.  
  4.               declare
  5.  
  6.                  -- use Interface !                                                                                                                                                                                
  7.                  Archmachine : Arch.Window.Main.GtkAda_Interface_Type;
  8.  
  9.               begin
  10.                  if Gnat.Os_Lib."=" (Gnat.Os_Lib.Getenv("DISPLAY" ), null) then
  11.                     Print_Message(Quiet, "X not running on this session." );
  12.                     return;
  13.                  end if;
  14.                  Print_Message(Quiet, "-- initialize GtkAda !" );
  15.                  Gdk.Threads.G_Init;
  16.                  Gdk.Threads.Init;
  17.                  Gtk.Main.Init;
  18.                  if not Main.Init_Check then
  19.                     raise Gtk_Error;
  20.                  end if;
  21.  
  22.  
  23.                  -- initialize Interface !                                                                                                                                                                        
  24.                  Text_Io.Put_Line("-- initialize GtkAda Interface !" );
  25.                  Arch.Window.Main.GtkAda_Initialize(Archmachine, Archai, Errno);
  26.                  if Errno /= 0 then
  27.                     raise Non_Zero;
  28.                  end if;
  29.  
  30.  
  31.                  Print_Message(Quiet, "-- Starting Graphical environment !" );
  32.                  -- Start Environment !                                                                                                                                                                            
  33.                  Gdk.Threads.Enter;
  34.                  Gtk.Main.Main;
  35.                  Gdk.Threads.Leave;
  36.               end;
  37.               declare
  38.  
  39.                  -- use Interface !                                                                                                                                                                                
  40.                  Archmachine : Arch.Terminal.Main.Shell_Interface_Type;
  41.  
  42.               begin
  43.  
  44.                  -- initialize Interface !                                                                                                                                                                        
  45.                  Text_Io.Put_Line("-- initialize Terminal Interface !" );
  46.                  Arch.Terminal.Main.Shell_Initialize(Archmachine, Archai, Errno);
  47.                  if Errno /= 0 then
  48.                     raise Non_Zero;
  49.                  end if;
  50.  
  51.  
  52.                  Print_Message(Quiet, "-- Starting Textual environment !" );
  53.                  -- Start Environment !                                                                                                                                                                            
  54.                  Arch.Terminal.Main.Main(Archmachine, Errno);
  55.  
  56.               end;
  57.  
  58.         end case;


 
Avec pour type :
 

Code :
  1. package Arch.Window.Main is
  2.  
  3.   type Main_Window_Record is new Gtk.Window.Gtk_Window_Record with
  4.      record
  5.         Action_Group                  : Gtk_Action_Group;
  6.         Main_Frame                    : Gtk_Frame;
  7.         Main_Vbox                     : Gtk_Vbox;
  8.  
  9.         Xterm_Process_Id              : Os_Lib.Process_Id;
  10.         Errno                         : Integer := 0;
  11.      end record;
  12.  
  13.  
  14.   type Main_Window_Type is access all Main_Window_Record'Class;
  15.  
  16.   type GtkAda_Interface_Record(Computer : access Ai.Computer_Type) is tagged limited
  17.      record
  18.         GtkAda_Machine                : Arch.Angels.GtkAda_Machine_Type(Computer);
  19.         Main_Window                   : Main_Window_Type;
  20.      end record;
  21.  
  22.   package GtkAda_Conversion is new System.Address_To_Access_Conversions(GtkAda_Interface_Record);
  23.   subtype GtkAda_Interface_Type is GtkAda_Conversion.Object_Pointer;
  24.  
  25.   procedure GtkAda_Initialize (GtkAda_Interface : in out GtkAda_Interface_Type; Archai : in Arch.Ai.Computer_Access; Errno : out Integer);
  26.  
  27.  
  28.  
  29. end Arch.Window.Main;


Qui fait référence à au type dérivé de : Arch_interface_Type.

Code :
  1. package Arch is
  2.   pragma Pure (Arch);
  3.  
  4.   type Interfaces_Type is (Graphical, Textual);
  5.  
  6.   type Arch_Interface_Type(Context : Interfaces_Type) is abstract tagged limited null record;
  7.  
  8. end Arch;


 
 
///////Avant
--------------------------------------------------------------------------------------
///////Après
 
 
J'ai transformé ce code pour faire :
 
 
 

Code :
  1. with System.Address_To_Access_Conversions;
  2. package Arch.pointers is
  3.  
  4.   package Arch_Conversion is new System.Address_To_Access_Conversions(Arch_Interface_Type'class);
  5.   subtype Arch_Pointer is Arch_Conversion.Object_Pointer;
  6. end Arch.Pointers;


 
Avec le type Gtk :
 

Code :
  1. package Arch.Window.Main is
  2.  
  3.   type Main_Window_Record is new Gtk.Window.Gtk_Window_Record with
  4.      record
  5.         Action_Group                  : Gtk_Action_Group;
  6.         Main_Frame                    : Gtk_Frame;
  7.         Main_Vbox                     : Gtk_Vbox;
  8.  
  9.         Xterm_Process_Id              : Os_Lib.Process_Id;
  10.         Errno                         : Integer := 0;
  11.      end record;
  12.  
  13.  
  14.   type Main_Window_Type is access all Main_Window_Record'Class;
  15.  
  16.   type GtkAda_Interface_Record(Computer : access Ai.Computer_Type) is new Arch_Interface_Type(Graphical) with
  17.      record
  18.         GtkAda_Machine                : Arch.Angels.GtkAda_Machine_Type(Computer);
  19.         Main_Window                   : Main_Window_Type;
  20.      end record;
  21.  
  22.  
  23.   procedure GtkAda_Initialize (GtkAda_Interface : in out Arch.Pointers.Arch_Pointer; Errno : out Integer);
  24.  
  25.  
  26.  
  27. end Arch.Window.Main;


 
 
 
Et le main est devenu :

Code :
  1. declare
  2.         Archmachine : Arch.Pointers.Arch_Pointer;
  3.      begin
  4.  
  5.         Print_Message(Quiet, "-- add Client Ai to Architecture !" );
  6.         Errno := Arch.Ai.Add(Archai.all);
  7.         if Errno /= 0 then
  8.            raise Non_Zero;
  9.         end if;
  10.  
  11.         Print_Message(Quiet, "-- initialize Ai !" );
  12.         Archai.Initialize(Errno);
  13.         if Errno /= 0 then
  14.            raise Non_Zero;
  15.         end if;
  16.  
  17.  
  18.  
  19.  
  20.         case Context is
  21.            when Graphical =>
  22.  
  23.               begin
  24.                  Archmachine := new Arch.Window.Main.GtkAda_Interface_Record(Archai);
  25.                  if Gnat.Os_Lib."=" (Gnat.Os_Lib.Getenv("DISPLAY" ), null) then
  26.                     Print_Message(Quiet, "X not running on this session." );
  27.                     return;
  28.                  end if;
  29.                  Print_Message(Quiet, "-- initialize GtkAda !" );
  30.                  Gdk.Threads.G_Init;
  31.                  Gdk.Threads.Init;
  32.                  Gtk.Main.Init;
  33.                  if not Main.Init_Check then
  34.                     raise Gtk_Error;
  35.                  end if;
  36.  
  37.  
  38.                  -- initialize Interface !                                                                                                                                                                        
  39.                  Text_Io.Put_Line("-- initialize GtkAda Interface !" );
  40.                  Arch.Window.Main.GtkAda_Initialize(Archmachine, Errno);
  41.                  if Errno /= 0 then
  42.                     raise Non_Zero;
  43.                  end if;
  44.  
  45.  
  46.                  Print_Message(Quiet, "-- Starting Graphical environment !" );
  47.                  -- Start Environment !                                                                                                                                                                            
  48.                  Gdk.Threads.Enter;
  49.                  Gtk.Main.Main;
  50.                  Gdk.Threads.Leave;
  51.               end;
  52.            when others =>
  53.  
  54.               begin
  55.                  Archmachine := new Arch.Terminal.Main.Shell_Interface_Record(Archai);
  56.                  -- initialize Interface !                                                                                                                                                                        
  57.                  Text_Io.Put_Line("-- initialize Terminal Interface !" );
  58.                  Arch.Terminal.Main.Shell_Initialize(Archmachine, Errno);
  59.                  if Errno /= 0 then
  60.                     raise Non_Zero;
  61.                  end if;
  62.  
  63.  
  64.                  Print_Message(Quiet, "-- Starting Textual environment !" );
  65.                  -- Start Environment !                                                                                                                                                                            
  66.                  Arch.Terminal.Main.Main(Archmachine, Errno);
  67.  
  68.               end;
  69.  
  70.         end case;
  71.  
  72.      end;


 
 
Je pensais bien faire !  :whistle:


---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
Reply

Marsh Posté le 17-01-2015 à 00:18:47    

Yep !
 
Voici le futur découpage du projet Archman : une interface over Gnu/Linux with Ada. Bon le truc c'est d'y mettre ses tripes.
 
Alors voilà

Citation :


  • Arch

- Racine de la bibliothèque.

  • Arch-Abstracts

-  Bibliothèque des abstractions de classes.

  • Arch-Ada

-  Bibliothèque outils pour produire du code avec Ada.  

  • Arch-Admin

-  Bibliothèque de sécurité et cohérence du système.

  • Arch-Ai

-  Bibliothèque d'un moteur intelligent utilisant divers algorithmes dits intelligents.

  • Arch-Algorithms

-  Bibliothèque outils fournissant divers algorithmes, intelligent et pas, non je plaisante. Que des biens.

  • Arch-Angels

-  Bibliothèque d'un client du moteur d'intelligence.

  • Arch-Classified

-  Bibliothèque orientée objet résultante de l'analyse du réel.

  • Arch-Compiling_System

-  Bibliothèque système de maintenance.

  • Arch-Data

-  ?

  • Arch-Environment

-  ?

  • Arch-Languages

-  Bibliothèque de gestion linguistique.

  • Arch-Manual

-  Bibliothèque pour concevoir et produire le manuel du projet

  • Arch-Net

-  Bibliothèque outils de liaison à Internet

  • Arch-Linux

-  Bibliothèque d'interfaçage avec Linux.

  • Arch-Plans

-  Bibliothèque de programmes, le programme en cours, typiquement le résulta du programme précédent, types et données attendues.

  • Arch-Posix

-  Bibliothèque de description (ou adaptation) d'interfaçage POSIX.

  • Arch-Terminal

-  Bibliothèque d'interface utilisateur textuelle.  

  • Arch-Users

-  Bibliothèquede gestion des utilisateurs.

  • Arch-Versions

-  Bibliothèque de gestion de versions.

  • Arch-Web

-  Bibliothèque de liaison hyper- texte.

  • Arch-Window

-  Bibliothèque d'interface utilisateur graphique.

  • Arch-Works

-  Bibliothèque résultante du programme en cours,  type et données générées.

  • Archman

-  Unit principale.


 
Enfin ! Ca c'est une projection sur 1 ou 2 an(s) ?


---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
Reply

Marsh Posté le 17-01-2015 à 08:06:03    

Je me demande sérieusement comment je vais prendre tout ça d'un coup !  :heink:  
 
Faut que je synthétise là !  :p  
 
C'est quoi le sujet ?  :whistle:  
 
Ah ouais !
 
Je fais un "iso- gène orienté programmation orientée objet, qui inter- agit avec l'environnement.
Donc, ça va se programmer tout seul d'une part, mais surtout ça va inter- agir avec l'environnement.
Mais selon quel(s) raisonnement ?  :D  
Va falloir savoir apprendre à apprendre ! [:powa]
 
[:dawa_neowen]
 
Avant ça va être un agent de veille.
Après j'analyse la veille pour produire le lendemain.
Le lendemain je recommence.
loop ... end loop ;   :jap:


Message édité par par l'anneau de l'ia le 17-01-2015 à 08:07:49

---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
Reply

Marsh Posté le 19-01-2015 à 09:17:50    

Bonjour,
 
Mis à part un signal GtkAda que je ne parviens pas à connecter à une procédure, ça avance...
 
Côté textuel ça donne ceci à présent au démarrage :
 

+----------------------------------------------------------------------------+  
 |                              Archman 2.3.8a                                |  
 +----------------------------------------------------------------------------+  
 +----------------------------------------------------------------------------+  
 |  F1 : A.i. management; F2 : Data technologies; F3 : All manuals;           |  
 |  F4 : Gnu/Linux interfaces; F5 : Environments parameters;                  |  
 |  F6 : Self-Programming process; F7 : Plans Administration;                 |  
 |  F8 : Archman call ; 'Search' with Argument(s) string; 'Archman'           |  
 +----------------------------------------------------------------------------+  
 +----------------------------------------------------------------------------+  
 |                     Enter your text or command here.                       |  
 |                                                                            |  
 |  #                                                                         |  
 |                                                                            |  
 +----------------------------------------------------------------------------+  
 +----------------------------------------------------------------------------+  
 |  Timer start => 2015-01-19 09:13:43.88 ; Timer Elapsed => 00:00:00         |  
 +----------------------------------------------------------------------------+  
 +----------------------------------------------------------------------------+  
 |            press two consecutives Escape character to Quit !               |  
 +----------------------------------------------------------------------------+  
 +----------------------------------------------------------------------------+  
 |  Date 2015-01-19 09:13:43.88 ; Alarm off                                   |  
 +----------------------------------------------------------------------------+  
   F9 : Start or Stop Timer ; F10 : Set or Unset Alarm ; F11 : Stop Alarm  


 
 
J'ai trouvé pourquoi ça ne fonctionnait pas très bien à la fermeture du programme... Je suis content.
 
 
S'en pensez quoi ? J'ai exploité 25 lignes et 80 colonnes.  :whistle:


---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
Reply

Marsh Posté le 19-01-2015 à 09:17:50   

Reply

Marsh Posté le 19-01-2015 à 09:30:58    


 
 +----------------------------------------------------------------------------+  
 |                              Archman 2.3.8a                                |  
 +----------------------------------------------------------------------------+  
 +----------------------------------------------------------------------------+  
 |  F1 : A.i. management; F2 : Data technologies; F3 : All manuals;           |  
 |  F4 : Gnu/Linux interfaces; F5 : Environments parameters;                  |  
 |  F6 : Self-Programming process; F7 : Plans Administration;                 |  
 |  F8 : Archman call ; 'Search' with Argument(s) string; 'Archman'           |  
 |  F9 : Start or Stop Timer ; F10 : Set or Unset Alarm ; F11 : Stop Alarm    |  
 +----------------------------------------------------------------------------+  
 +----------------------------------------------------------------------------+  
 |                     Enter your text or command here.                       |  
 |                                                                            |  
 |  #                                                                         |  
 |                                                                            |  
 +----------------------------------------------------------------------------+  
 +----------------------------------------------------------------------------+  
 |  Timer start => 2015-01-19 09:28:45.33 ; Timer Elapsed => 00:00:00         |  
 +----------------------------------------------------------------------------+  
 +----------------------------------------------------------------------------+  
 |            press two consecutives Escape character to Quit !               |  
 +----------------------------------------------------------------------------+  
 +----------------------------------------------------------------------------+  
 |  Date 2015-01-19 09:28:45.33 ; Alarm off                                   |  
 +----------------------------------------------------------------------------+


 
Yeh ! Comme ceci, ça passe encore mieux.


---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
Reply

Marsh Posté le 25-01-2015 à 14:21:51    

Ah l'ada.
Que de souvenirs... Tellement plus rigolo que le C sur microcontrôleur.
Après, j'avoue que mon niveau n'est plus au top.
Je ne sais pas si ce que vous faites aboutira mais ce sont des gens comme vous qui essayent qui font bouger les choses de tps en tps.
 
En tout cas bon courage !!


---------------
Hardcore gamer... sans PC. Qui peut le faire ??
Reply

Marsh Posté le 07-02-2015 à 14:29:48    

Bonjour,
 
Je reviens avec 7 jours de TT pour avoir posté mon message précédent, j'espère ne pas reprendre 7 jour avec ma question.
 
Question tactique si vous permettez puisqu'il s'agit de décider d'un traitement relativement lourd au démarrage d'un application qui cela dit n'est pas sensé ce démarrer tous les jour pour rien.
 
En effet je met 7 minutes à démarrer simplement pour pouvoir afficher le chemin des pages de manuels Gnu/Linux et l'information qui va avec l'option -f (voir les option de whatis)
 
Ce qui donne ceci en image : http://manlight.net/Archman_pre_alpha-3.3.3b.graphicale_interface.png
 
 
Voyez comme c'est beau, bon, en fait je vends rien je donne tout c'est open source, mais d'un point de vu stratégique puis-je me permettre de prendre 6 minute de plus que si déjà 1 minutes alors que je ne présente que le lien pour ouvrir un viewer.
 
Là en plus on a l'info de l'option -f (par défaut d'options whatis)
 
Sachant qu'il me reste tout le reste à faire, c'est à dire environs 25k ligne au moins et que ça va être lourds, je suis sur bi-p4
 
Est-ce que ça vaut le coup ? juste 6 minutes pour l'info sur la page. La j'ai trié les liste déjà c'est juste pour l'info sur la page les 6 minutes.


Message édité par par l'anneau de l'ia le 07-02-2015 à 14:41:35

---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
Reply

Marsh Posté le 07-02-2015 à 15:47:35    

Ok, j'ai trouvé une nouvelle solution globale, déjà j'ai apris à peut près à déboguer mes programme.
Là lorsque j'aurais une nouvelle question telle que celle ci, je la mettrai en option.
 
La j'ai mis l'option de Quiet ! Comme ça chacun sa performance.
Merci.


---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
Reply

Marsh Posté le 06-10-2015 à 02:14:30    

Bonjour.
 
J'ai un problème avec pour le moment en mode console, je gère une interface avec 8 modes d'exploitations. Dans 4 mode j'affiche les réponses de recherche et dans 4 autres modes les réponse d'appel système.dont 1 fait une requête pour afficher les variable d'environnement.
J'ai une variable globale qui est un tableau de pointeurs sur un objet abstrait qui a deux sous-classes, la première est une classe de réponse d'appel système, la seconde une classe de réponse de recherche, bref.
 
Dans les 4 mode de réponse de recherche, j'ai rien implémenté encore donc ça devrait rien afficher.
Mais si je passe dans le mode qui affiche les variable d'environnement, du coup dans les 4 modes de réponse recherche ça affiche quand même un résultat (virtuellement).
 
Je vous montre mon code pour formaliser la chose.
la procédure Shell_Info : qui prend entre autre paramètre le mode courant d'exploitation pour passer d'une simple classe de réponse à un pointeur sur la classe abstraite de réponse. La procédure To_Result assure cette fonction.
Après je récupère le résultat selon la classe pour l'affichage.

Code :
  1. procedure Shell_Info (Window : in Window_Type; Shell_Command : in out Command_Type;
  2.                               Shell_Interface : in out Shell_Interface_Record'Class; Errno : out Integer) is
  3.  
  4.  
  5.         Result : Result_Access;
  6.      begin
  7.  
  8.         case Shell_Command is
  9.            when AllManuals | GnuLinuxInterface =>
  10.               null;
  11.            when others =>
  12.               --  My_Ansi_Consoles.Draw_Centered
  13.               --        (Window, 1, White, Shell.Shell_Command_Type'Image(Shell_Command));
  14.               if Shell."/="(Archman_Shell_Response(Shell_Command), null) then
  15.                  Shell.To_Result(Archman_Shell_Response(Shell_Command).all, Result);
  16.  
  17.                  if Result.all in Search_Result_Type'class then
  18.                     My_Ansi_Consoles.Draw_Centered
  19.                       (Window, 3, Red, "Search" );
  20.                     Shell_Interface.Search_Result := Search_Result_Type(Result.all);
  21.  
  22.                  elsif Result.all in Spawn_Result_Type then
  23.                     My_Ansi_Consoles.Draw_Centered
  24.                       (Window, 3, Red, "Spawn" );
  25.                     Shell_Interface.Spawn_Result := Spawn_Result_Type(Result.all);
  26.  
  27.                  end if;
  28.  
  29.               end if;
  30.         end case;
  31.  
  32.         Move_Cursor_To(Window, 4, 3);
  33.         Errno := 0;
  34.      end Shell_info;


 
Au dessus de cette procédure ma variable qui est un tableau de pointeur sur les réponse :
 

Code :
  1. Archman_Shell_Response : Shell.Response_Type;


 
Je cherche pourquoi après un passage en mode Environment, j'ai un résultat dans les 4 mode "recherche".
 
Le code si dessus ce trouve dans le répertoire Arch-Terminal et exploite le répertoire Arch-Shell
 
les sources complètes sont disponible sur devel ma machine au nom de Archman_gnat....
 
Je vous invite à ouvrir l'archive dans un nouveau répertoire.
 
Si vous aviez rien à faire cette nuit...


Message édité par Profil supprimé le 06-10-2015 à 02:20:25
Reply

Marsh Posté le 06-10-2015 à 14:32:05    

Je informe que je n'ai toujours pas la raison de cette visible anomalie résiduelle qu'une équation qui sans cela serait d'une précision mathématique.
The matrix.
 
(Je vous l'écrit de tête, pardonné ma mémoire.)
 
Non mais j'ai pas trouvé quoi. Enfin la dernière version est disponible sur sourceforge.

Reply

Marsh Posté le 06-10-2015 à 17:58:30    

WAouuuuuuuuu
 
 
J'ai trouvé. c'était dans Arche-Shell le tableau de réponse initialisé à l'initialisation du thread.
Du coup à la première requete fructueuse comme l'environmenet, renvoyait tout le tableau initialisé.
Bon, je suis pas sortie quand même.  :D  
 
Merci.

Reply

Marsh Posté le 09-10-2015 à 15:27:18    

Version 4.1.0b dispo sur Sourceforge et assume en plus les commandes : setenv getenv mkdir chdir.


Message édité par Profil supprimé le 09-10-2015 à 15:27:45
Reply

Marsh Posté le 09-10-2015 à 16:50:59    

Désolé, on passe en version 5.0.0a, parce que j'avais oublié une entrée de tache pour le mode builtin.
J'attends vos retours.

Reply

Marsh Posté le 13-10-2015 à 21:30:14    

Bonjour,
 
 
Petite question, j'alterne, je doit maintenant intégrer une solution d'édition de fichier.
Comment écrire un fichier tot simplement sur Gnu/Linux à partir de ce programme ?
 
Je viens soliciter votre sens de l'ergonomie.
Merci pour vos réponses.

Reply

Marsh Posté le 13-10-2015 à 22:48:03    

Waouh !
 
Je viens de penser à des questions !
 
1) En fait j'ai lancé bash en mode console - donc exclusivement en mode console, on peut passer à bash, lancer les commandes qui serons interprété par bash et récupérer le résultat dans le buffer de GnuArchman.
 
2) Ben GnuArchman et Emacs mais Vi pourquoi pas ou autre probablement cohabite très bien si on appelle ces éditeur ou autre commande interactive via GnuArchman, l'inverse peut-être serait moins évident. Mais peut-être je m'avvance trop.
 
Ce qui fait que depuit bash, on pourait utiliser une commande comma "cat" pour écrire un fichier mais c'est pas top quand même.
 
En même temps, en 160*64 caractères on a un supper buffer borné par les dimmension de la zone dédié. C'est peut-être très suffisent.
Mais en 80*25 y a deux ligne c'est pas top.
 
Quand à l'interface sur X, je me disais, j'ai qu'à ouvrire un xterm avec un éditeur au choix. Mais je vais y penser encore.

Reply

Marsh Posté le 14-10-2015 à 19:38:00    

Bonjour,
 
J'ai attaqué la conception self programming en mettant en place un processus qui compile le programme si les sources on étées modifier.
 
A appeller en mode texte : while (true); do Archman/bin/Archman -w; done
 
Si vous modifiez les source en cours de session Archman recompilera les sources avec une update de la version adaptée en fonction de la nature de votre modification.
 
Bon en fait c'est complexe comme processus et moi j'ai ait vite, je vous invite à lire les quelque pages de sources avant d'utiliser le programme.
 
 
Only over 2015 version and laters.
 


-- Ai Finalization...
-- Compiling System initialization...
-- check for New Spacifications...
-- check for New Implementation...
-- Version Update...
-- Edditting minor version...
-- Edditting revision version...
-- Edditting major or release version...
Change value of Current_Release to 'b' in Versions ;  
with filename : Archman/Arch-Versions/src/lib/arch-versions.ads
-- Making all...
-- Making update...
-- Making clean...
-- Making arch..
-- Making info...
-- Env Finalization...

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed