ilip a écrit 113 commentaires

  • # Threads

    Posté par  . En réponse au message Gestion d'un timer en Java/Android. Évalué à 0.

    Ce qui m'étonne c'est qu'on est obligé d'utiliser un Thread pour chaque objet graphique a actualiser / annimer.

    Dans Qt que j'ai pas mal étudié, pour faire une barre de progression, une animation etc... on utilise l'objet QTimer.

    Et QTimer n'utilise pas de Thread. C'est un objet pris en compte dans la boucle d'évenements QEventLoop de l'application. Cette boucle d'évenement, lorsqu'elle utilise l'appel système select() pour attendre les evenement de Xorg, doit prendre en compte les QTimers en ajoutant un timeout dans select. Ensuite avec le mécanisme de Signal/Slot de Qt, les slots d'objets liés au signal du QTimer sont alors appelés.

    On fait donc avec Qt des objet animés (Barre de progression etc ...) sans qu'il n'y ai de Thread créés.

    Dans Java Swing, il y'a l'air d'y avoir la même chose que sous Qt.

    javax.swing.Timer :

    "Fires one or more action events after a specified delay. For example, an animation object can use a Timer as the trigger for drawing its frames."

    Mais dans l'API Java d'Android, Il n'y pas Swing.

    Et pas d'autres objets Timer que Java.utils.Timer (Timer lié a un thread TimerTask).

    Le problème est que en terme de performances ce n'est pas génial d'avoir plein de threads dans une application.

  • # Handler

    Posté par  . En réponse au message Gestion d'un timer en Java/Android. Évalué à 1.

    J'ai trouvé un exemple d'une barre de progression en Java/Android :

    http://www.mkyong.com/android/android-progress-bar-example/

    La méthode utilisé est encore les "Handler" de la bibliothèque d'Android, qui permettent d'effectuer une action toutes les X millisecondes :

     // Update the progress bar
    progressBarHandler.post(new Runnable() {
     public void run() {
     progressBar.setProgress(progressBarStatus);
     }
    });
    
    

    Je comprend pas trop le fonctionnement, au niveau de "post" en particulier.

    D'après la doc sur Handler on peut envoyer soit un message soit un code exécutable via Handle.

    Un peu bizarre je trouve ..

  • [^] # Re: md5sum

    Posté par  . En réponse au message Fonction MD5. Évalué à 0.

    J'ai déjà regardé, mais je crois pas qu'on puisse l'utiliser en tant que librarie partagée.

    En librairie partagée pour le calcul de md5sum il y'a libssl, mais je me demandais si on pouvait pas utiliser les fonctions md5 du noyau.

  • [^] # Re: Choisir une solution éprouvée

    Posté par  . En réponse au message Piloter un programme avec pty. Évalué à -1.

    Le mieux serait que le serveur créé un socket, et lorsqu'un client se connecte dessus, le serveur créé un terminal sur lequel il peut utiliser ncurses.

    Je sais pas si c'est possible.

  • [^] # Re: Choisir une solution éprouvée

    Posté par  . En réponse au message Piloter un programme avec pty. Évalué à 0.

    Le problème c'est que créer un protocole ça va être un peu lourd.

    Concernant le WEB, il y'a la possibilité de créer un shell dans une page WEB il me semble (vu sur Webmin).

  • # ncurses sur un socket

    Posté par  . En réponse au message Piloter un programme avec pty. Évalué à 0.

    J'ai trouvé quelqu'un qui cherche exactement à faire ce que je veux faire :

    http://linuxfr.org/users/niconico/journaux/dialogué-avec-un-deamon

    Mais pas de solutions simples apparament.

    Le problème étant qu'on ne peut pas utiliser ncurses directement sur un socket car il a besoin d'un terminal.

  • [^] # Re: resolv.conf

    Posté par  . En réponse au message Partager une connexion PPP. Évalué à 0.

    Par "carte" je parle de "carte embarquée", équivalent de PC.

    Donc le PC 1 se connecte en PPP sur le réseau GPRS, le FAI fournit deux adresses IP pour les serveurs DNS. Le PC 1 partage la connexion, le PC 2 l'utilise,

    Mais comment le PC 2 peut accéder aux adresses IP des serveurs DNS situés sur le PC 1 ?

  • [^] # Re: probleme reseau classique

    Posté par  . En réponse au message Partager une connexion PPP. Évalué à 0.

    Quelqu'un connait le principe d'un pont entre cartes réseau ?

    J'utilise cette méthode sur des machines virtuelles, ce qui me permet d'avoir accès aux machines virtuelles depuis l'extérieur.

    Ca permet donc d'avoir plusieurs adresses IP sur une même carte Ethernet.

    Est-ce que ça émule logiciellement un switch ?

  • [^] # Re: probleme reseau classique

    Posté par  . En réponse au message Partager une connexion PPP. Évalué à 0.

    Ok merci,

    Pour faire une connexion VPN sur la carte 2, j'ai du activer une option dans le noyau :

    Networking options->Network packet filtering framework (Netfilter)->Core Netfilter Configuration :

    [*] Netfilter connection tracking support
    [*] PPtP protocol support

    Sans cette option les paquets GRE n'étaient pas redirigés de usb0 vers ppp0.

    Il y'a une option que je n'ai pas activé :

    [ ] FTP protocol support

    pourtant j'ai quand même réussi à faire un télechargement par FTP avec wget.

    D'après l'article Wikipedia sur le NAT, il y'a quelques limitations :

    "Les communications entre postes qui se situent derrière des NAT pose un problème, c'est le cas des protocoles pair à pair.
    ..
    Un problème majeur se pose lorsqu'un protocole de communication transmet l'adresse IP de l'hôte source dans un paquet, ou des numéros de ports. Cette adresse n'étant pas valide après avoir traversé le routeur NAT, elle ne peut être utilisée par la machine destinataire. Ces protocoles sont dits « passant difficilement les pare-feu », car ils échangent au niveau applicatif (FTP) des informations du niveau IP (échange d'adresses) ou du niveau TCP (échange de ports), ce qui transgresse le principe de la séparation des couches réseaux."

    Si j'ai bien compris, le NAT permet à un client de se connecter au socket d'un serveur, et dans ce cas le NAT fonctionne.

    Par contre un serveur ne peut pas envoyer de trame en se connectant à un socket du client car l'adresse et port du client n'existent pas (ils sont créés dynamiquement par le NAT).

    Donc le P2P par exemple ne peut pas marcher.

    Mais dans mon cas ça ne pose pas de problème.

    Pour contourner ce problème il faudrait faire du routage pour indiquer qu'un port doit être redirigé sur telle adresse IP.

  • [^] # Re: probleme reseau classique

    Posté par  . En réponse au message Partager une connexion PPP. Évalué à 1.

    Si ça marche.

    Le réseau 192.168.1.0/24 c'est pour le réseau local Ethernet.

    Après avec la connexion PPP en GPRS, le réseau est différent :

    ppp0 Link encap:Point-to-Point Protocol
    inet addr:10.241.113.220 P-t-P:192.168.254.254 Mask:255.255.255.255
    UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
    RX packets:222 errors:0 dropped:0 overruns:0 frame:0
    TX packets:237 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:3
    RX bytes:244297 (238.5 KiB) TX bytes:12473 (12.1 KiB)

  • # resolv.conf

    Posté par  . En réponse au message Partager une connexion PPP. Évalué à 0.

    J'ai du également recopier le fichier /etc/resolv.conf de la carte 1 sur la carte 2 (pour le DNS).

    Sachant que les adresses IP de ces serveurs DNS sont établis quand la carte 1 se connecte au réseau GPRS, y'a-t-il un moyen pour que la carte 2 utilise les mêmes serveurs DNS ?

  • [^] # Re: Solution Qt

    Posté par  . En réponse au message Affichage de caractères grecques UTF-8 dans Xorg. Évalué à 1.

    En effet ça marche.

    Il faut modifier :

    XMapWindow(d, w);

    XSelectInput(d, w, ExposureMask);

    par :

    XSelectInput(d, w, ExposureMask);

    XMapWindow(d, w);

    pour avoir l'affichage.

    Merci

  • [^] # Re: Manque d'infos

    Posté par  . En réponse au message Affichage de caractères grecques UTF-8 dans Xorg. Évalué à 0.

    J'ai essayé aussi avec LC_ALL.

    Il semble que LC_ALL et LANG aient le même rôle, après les programmes utilisent l'un ou l'autre.

  • # Solution Qt

    Posté par  . En réponse au message Affichage de caractères grecques UTF-8 dans Xorg. Évalué à 2.

    J'ai trouvée une solution avec Qt qui fonctionne :

    Ajouter après QApplication :

    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

    D'après la doc :

    void QTextCodec::setCodecForCStrings ( QTextCodec * codec ) [static]

    Sets the codec used by QString to convert to and from const char * and QByteArrays. If the codec is 0 (the default), QString assumes Latin-1.

    Par contre j'ai toujours le problème avec xlib, XCreateFontSet semble complexe à utiliser.

  • [^] # Re: Manque d'infos

    Posté par  . En réponse au message Affichage de caractères grecques UTF-8 dans Xorg. Évalué à 1.

    J'ai essayé avec deux locales :

    fr_FR.UTF-8
    el_GR.UTF-8

    en faisant :

    LANG=el_GR.UTF-8 Xorg
    DISPLAY=:0 LANG=el_GR.UTF-8 ./a.out

    Les 2 locales me donnent le même résultat

    dans xterm, printenv me donne :

    SHELL=/bin/bash
    TERM=xterm
    SSH_CLIENT=192.168.56.1 1891 22
    WINDOWID=2097165
    SSH_TTY=/dev/pts/1
    XTERM_SHELL=/bin/bash
    USER=root
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    MAIL=/var/mail/root
    PWD=/root/test/xlib_2
    LANG=el_GR.UTF-8
    XTERM_LOCALE=el_GR.UTF-8
    XTERM_VERSION=XTerm(261)
    HOME=/root
    SHLVL=2
    LOGNAME=root
    SSH_CONNECTION=192.168.56.1 1891 192.168.56.21 22
    DISPLAY=:0.0
    _=/usr/bin/printenv

    Pour la capture d'écran :

    http://imageshack.us/photo/my-images/411/unledige.png/

    Sachant que je demande d'afficher le texte " ΟΑΣΔΦΖΧΨΩΒzeΒ"
    avec les polices :

    "-gnu-unifont-medium-r-normal--0-0-75-75-c-0-iso10646-1" et
    "-misc-fixed-bold-r-normal--0-0-100-100-c-0-iso8859-7"

  • [^] # Re: dup2 + fcntl

    Posté par  . En réponse au message Lancer le programme 'chat' sur un port série. Évalué à 0.

    Bonjour

    En effet ça marche, c'est ce que je cherchai, merci.

    Maintenant je vais essayer de dupliquer la sortie d'erreur du programme chat, pour l'enregistrer dans un fichier.

  • [^] # Re: xorg.conf c'est has-been

    Posté par  . En réponse au message Modification de xorg.conf. Évalué à 1.

    Ok c'est pas mal ça, merci
  • [^] # Re: xorg.conf c'est has-been

    Posté par  . En réponse au message Modification de xorg.conf. Évalué à 1.

    Bonjour,

    Ca ne fonctionne pas,

    voici ce qu'il y'a dans le fichier /etc/X11/Xsession.d/10xinput_calibrator après cette commande :

    root@debian:~# cat /etc/X11/Xsession.d/10xinput_calibrator

    Calibrating EVDEV driver for "Zytronic Displays Limited Zytronic, x-y, USB" id=6
    current calibration values (from XInput): min_x=153, max_x=851 and min_y=570, max_y=176

    Doing dynamic recalibration:
    Setting new calibration data: 303, 609, 533, 305


    --> Making the calibration permanent <--
    Install the 'xinput' tool and copy the command(s) below in a script that starts with your X session
    xinput set-int-prop "Zytronic Displays Limited Zytronic, x-y, USB" "Evdev Axis Calibration" 32 303 609 533 305
  • [^] # Re: Merge

    Posté par  . En réponse au message Question sur GIT. Évalué à 2.

    "prendre ce driver et le coller a la main dans l'autre arbre"

    je vais devoir faire ça je crois
  • [^] # Re: Merge

    Posté par  . En réponse au message Question sur GIT. Évalué à 1.

    Cest bon j'ai réussi,

    par contre en sortie, j'ai :

    uto-merged arch/arm/mach-omap2/mux34xx.c
    Auto-merged arch/arm/mach-omap2/pm-debug.c
    CONFLICT (content): Merge conflict in arch/arm/mach-omap2/pm-debug.c
    Auto-merged arch/arm/mach-omap2/pm.h
    CONFLICT (content): Merge conflict in arch/arm/mach-omap2/pm.h
    Auto-merged arch/arm/mach-omap2/pm24xx.c
    Auto-merged arch/arm/mach-omap2/pm34xx.c
    CONFLICT (content): Merge conflict in arch/arm/mach-omap2/pm34xx.c
    Auto-merged arch/arm/mach-omap2/powerdomains34xx.h
    Auto-merged arch/arm/mach-omap2/prcm.c
    Auto-merged arch/arm/mach-omap2/prm-regbits-34xx.h
    Auto-merged arch/arm/mach-omap2/sdrc.c
    Auto-merged arch/arm/mach-omap2/sleep34xx.S
    CONFLICT (content): Merge conflict in arch/arm/mach-omap2/sleep34xx.S
    Auto-merged arch/arm/mach-omap2/usb-musb.c
    CONFLICT (content): Merge conflict in arch/arm/mach-omap2/usb-musb.c
    Auto-merged arch/arm/mm/Kconfig
    CONFLICT (content): Merge conflict in arch/arm/mm/Kconfig
    Auto-merged arch/arm/mm/alignment.c
    Auto-merged arch/arm/mm/proc-v7.S
    Auto-merged arch/arm/plat-omap/Kconfig
    CONFLICT (content): Merge conflict in arch/arm/plat-o
    ...

    Automatic merge failed; fix conflicts and then commit the result.
    debian:~/git/git.kernel.org/linux-omap-2.6# vim arch/arm/



    pour les confits, de quoi s'agit-il et comment ça se passe ?
  • [^] # Re: Merge

    Posté par  . En réponse au message Question sur GIT. Évalué à 1.

    ok merci

    la commande me donne :

    debian:~/git/git.kernel.org/linux-omap-2.6# git remote add git://gitorious.org/beagleboard-validation/linux.git validation-20100805
    fatal: 'git://gitorious.org/beagleboard-validation/linux.git' is not a valid remote name
  • [^] # Re: Merge

    Posté par  . En réponse au message Question sur GIT. Évalué à 1.

    Bonjour,

    git checkout branche1
    git merge branche2

    Le soucis c'est qu'il y'a deux dépots git différents :

    pour l'instant j'ai fait :

    # git 1
    mkdir git.kernel.org
    cd git.kernel.org
    git clone git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git
    cd ..

    #git 2
    mkdir gitorious.org
    cd gitorious.org
    git clone git://gitorious.org/beagleboard-validation/linux.git
    cd ..


    donc j'ai deux noyau provenant de 2 git différents.

    est-ce que je peux utiliser des branches des deux dépots pour un même noyau ?
  • [^] # Re: Merge

    Posté par  . En réponse au message Question sur GIT. Évalué à 1.

    Je ne connais pas trop Git, tu pourrais m'indiquer comment faire ?
  • [^] # Re: /proc/config.gz

    Posté par  . En réponse au message Ethernet sur bus SPI. Évalué à 2.

    Merci pour cette info,

    j'ai résolu mon problème en utilisant les sources du noyau du dépot git :

    git://gitorious.org/beagleboard-validation/linux.git, branche :validation-20100805

    cette version permet la compatibilité avec les cartes d'extension Zippy et Zippy2 de Beagleboard
  • [^] # Re: xinput calibrator

    Posté par  . En réponse au message Calibration de dalle tactile. Évalué à 1.

    xinput_calibrator donne "no calibratable device"

    voici un dmesg après avoir branché la dalle :


    [ 1383.206119] usb 2-1: new full speed USB device using uhci_hcd and address 2
    [ 1383.347487] usb 2-1: default language 0x0409
    [ 1383.362490] usb 2-1: udev 2, busnum 2, minor = 129
    [ 1383.362502] usb 2-1: New USB device found, idVendor=14c8, idProduct=0003
    [ 1383.362514] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 1383.362525] usb 2-1: Product: Zytronic, x-y, USB
    [ 1383.362535] usb 2-1: Manufacturer: Zytronic Displays Limited
    [ 1383.362545] usb 2-1: SerialNumber: 0000065709
    [ 1383.362828] usb 2-1: usb_probe_device
    [ 1383.362846] usb 2-1: configuration #1 chosen from 1 choice
    [ 1383.365611] usb 2-1: adding 2-1:1.0 (config #1, interface 0)
    [ 1383.365775] usbtouchscreen 2-1:1.0: usb_probe_interface
    [ 1383.365786] usbtouchscreen 2-1:1.0: usb_probe_interface - got id
    [ 1383.365998] input: Zytronic Displays Limited Zytronic, x-y, USB as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/input/input7
    [ 1383.366218] uhci_hcd 0000:00:1d.0: reserve dev 2 ep81-INT, period 1, phase 0, 61 us
    [ 1383.366289] drivers/usb/core/inode.c: creating file '002'