Home Forums Wiki Doc Install Extras Screenshots Source Code Projects Blog Users Groups Register
Glx-Dock / Cairo-Dock List of forums Applets | Applets Applet NetSpeed
The latest stable release is the *3.4.0* : How to install it here.
Note: We just switched from BZR to Git on Github! (only to host the code and your future pull requests)
Applets | Applets

Subjects Author Language Messages Last message
[Locked] Applet NetSpeed
Page : 1 2 3 4 5 6
parAdOxxx_ZeRo Français 118 fabounet [Read]
14 July 2009 à 03:15

fred1987, Monday 02 June 2008 à 19:06


Subscription date : 29 November 2007
Messages : 414
oui fab les autres fonctionnent bien

fabounet, Monday 02 June 2008 à 19:14


Subscription date : 30 November 2007
Messages : 17118
effectivement il y'avait une erreur
merci de l'avoir relevée

fred1987, Monday 02 June 2008 à 19:35


Subscription date : 29 November 2007
Messages : 414
pas de probleme

g_barthe, Monday 23 June 2008 à 12:55


Subscription date : 27 April 2008
Messages : 41
Je viens de tester netspeed hier soir sur KDE 3.5.9.

Et bien l'aiguille ne m'affiche rien. Comme si elle n'arrivait pas à dialoguer avec mon PC.

Est-ce une applet uniquement gnome ? est-elle basée sur un protocole non dispo sur KDE ?

Merci.

fabounet, Monday 23 June 2008 à 17:20


Subscription date : 30 November 2007
Messages : 17118
non elle marche dés que tu as un noyau Linux
et elle gère les multi-coeurs, par contre je l'ai jamais testé avec une connexion wifi, tu es en ethernet ou wifi ?

parAdOxxx_ZeRo, Monday 23 June 2008 à 17:28


Subscription date : 14 January 2008
Messages : 1122
netspeed ? les multi-coeurs ? J'ai du raté une évol technologique moi
sinon à l'époque où je l'ai codé c'était basé sur /proc/net/dev fait en un cat pour voir...

Mav, Monday 23 June 2008 à 17:46


Subscription date : 29 November 2007
Messages : 3146
Mais oui les multi-coeurs de réseaux (les fameux core networks)

Fab faut dormir la nuit

parAdOxxx_ZeRo, Monday 23 June 2008 à 17:48


Subscription date : 14 January 2008
Messages : 1122
Non surtout pas après il développerai moins cairo-dock

g_barthe, Monday 23 June 2008 à 18:28


Subscription date : 27 April 2008
Messages : 41
bah j'ai un noyaux linux ou alors faut que je me reveille

cat -A /proc/net/dev
Inter-| Receive | Transmit$
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed$
lo: 2239586 20294 0 0 0 0 0 0 2239586 20294 0 0 0 0 0 0$
eth1:197947193 402239 0 0 0 0 0 0 136050550 394222 0 0 0 0 0 0$


et je suis en ethernet.

Humpf bizarre cette histoire

Il me met "N/A" et l'aiguille reste à 0.

Pourtant rien à configurer.

parAdOxxx_ZeRo, Monday 23 June 2008 à 18:40


Subscription date : 14 January 2008
Messages : 1122
ca c'est louche !
Essaye de gratter dans la conf voir (genre tu changes des options) desfois ca marche...

g_barthe, Monday 23 June 2008 à 19:15


Subscription date : 27 April 2008
Messages : 41
je gratte mais ca marche pô

euh faut que j'arrete de gratter ??? aie l'ecran

nochka85, Monday 23 June 2008 à 19:36


Subscription date : 29 November 2007
Messages : 7408
euh faut que j'arrete de gratter ??? aie l'ecran


Tant que tu n'as pas les ongles en sang , il faut continuer !! ..... *Trop dur le boulot de Beta-testeur*

fabounet, Tuesday 24 June 2008 à 02:54


Subscription date : 30 November 2007
Messages : 17118
je jèterai un oeil demain (y'a aussi le bug des demi-reflets)

Guest, Sunday 13 July 2008 à 18:15

as of July 13 08; netspeed applet has been reporting no speed using interface eth0. eth0 has been confirmed as the correct interface. currently using Cairo-Dock 1.6.0.2 on Ubuntu 7.10.

fabounet, Monday 14 July 2008 à 04:25


Subscription date : 30 November 2007
Messages : 17118
exact, it's corrected on the SVN from now, I'll upload a 1.6.1.1 to correct the bug
thanks for the report

taiebot65, Monday 13 July 2009 à 20:32


Subscription date : 26 October 2008
Messages : 1904
Up UP Up Up il en faut pour deterrer cette applet.. qui doit une petite remontee..
Ayez 3g achete donc j'ai 15Go a surveiller avec toutes les updates de cairo-dock et ubuntu faudra verifier le bousin pour pas payer d'extra. Heavy user inside

Donc pour cette applet il faudrait qu'il additionne Upload et download et qu'il se reset chaque mois ou alors qu'il m'indique le % restant dans une belle jauge..

J'ai essaye de voir dans netspeed parce que ca doit pas etre sorcier de pouvoir faire ca.. mais vraiment c trop pour moi..
J'ai installe anjunta j'ai les sources directions applet netspeed et apres c quoi qu'il faudrait modifier??

Bon je crois que j'ai trouve quelqu'un me dit qu'est ce qu'il faut faire maintenant.. Il faut juste additionner

#include <stdio.h>
#include <string.h>
#include <glib/gi18n.h>
#include <glib.h>
#include <glib/gprintf.h>

#include "applet-struct.h"
#include "applet-notifications.h"
#include "applet-netspeed.h"
#include "cairo-dock.h"

#define NETSPEED_DATA_PIPE "/proc/net/dev"

// Prend un debit en octet par seconde et le transforme en une chaine de la forme : xxx yB/s
static void cd_netspeed_formatRate (CairoDockModuleInstance *myApplet, unsigned long long rate, gchar* debit) {
    int smallRate;
    
    if (rate <= 0)
    {
        if (myDesklet)
            g_sprintf(debit, "0 %s/s", D_("B"));
        else
            g_sprintf(debit, "0");
    }
    else if (rate < 1024)
    {
        smallRate = rate;
        if (myDesklet)
            g_sprintf(debit, "%i %s/s", smallRate, D_("B"));
        else
            g_sprintf(debit, "%iB", smallRate);
    }
    else if (rate < (1<<20))
    {
        smallRate = rate >> 10;
        if (myDesklet)
            g_sprintf(debit, "%i %s/s", smallRate, D_("KB"));
        else
            g_sprintf(debit, "%iK", smallRate);
    }
    else if (rate < (1<<30))
    {
        smallRate = rate >> 20;
        if (myDesklet)
            g_sprintf(debit, "%i %s/s", smallRate, D_("MB"));
        else
            g_sprintf(debit, "%iM", smallRate);
    }
    else if (rate < ((unsigned long long)1<<40))
    {
        smallRate = rate >> 30;
        if (myDesklet)
            g_sprintf(debit, "%i %s/s", smallRate, D_("GB"));
        else
            g_sprintf(debit, "%iG", smallRate);
    }
    else // c'est vraiment pour dire qu'on est exhaustif :-)
    {
        smallRate = rate >> 40;
        if (myDesklet)
            g_sprintf(debit, "%i %s/s", smallRate, D_("TB"));
        else
            g_sprintf(debit, "%iT", smallRate);
    }
}

void cd_netspeed_get_data (CairoDockModuleInstance *myApplet)
{
    g_timer_stop (myData.pClock);
    double fTimeElapsed = g_timer_elapsed (myData.pClock, NULL);
    g_timer_start (myData.pClock);
    g_return_if_fail (fTimeElapsed > 0.1);
    
    gchar *cContent = NULL;
    gsize length=0;
    GError *erreur = NULL;
    g_file_get_contents (NETSPEED_DATA_PIPE, &cContent, &length, &erreur);
    if (erreur != NULL)
    {
        cd_warning("NetSpeed : %s", erreur->message);
        g_error_free(erreur);
        erreur = NULL;
        myData.bAcquisitionOK = FALSE;
    }
    else
    {
        int iNumLine = 1;
        gchar *tmp = cContent;
        long long int iReceivedBytes, iTransmittedBytes;
        while (TRUE)
        {
            if (iNumLine > 3) // les 2 premieres lignes sont les noms des champs, la 3eme est la loopback.
            {
                while (*tmp == ' ') // on saute les espaces.
                    tmp ++;
                
                if (strncmp (tmp, myConfig.cInterface, myConfig.iStringLen) == 0 && *(tmp+myConfig.iStringLen) == ':') // c'est l'interface qu'on veut.
                {
                    tmp += myConfig.iStringLen+1; // on saute le ':' avec.
                    iReceivedBytes = atoll (tmp);
                    
                    int i = 0;
                    for (i = 0; i < 8; i ++) // on saute les 8 valeurs suivantes.
                    {
                        while (*tmp != ' ') // saute le chiffre courant.
                            tmp ++;
                        while (*tmp == ' ') // saute les espaces.
                            tmp ++;
                    }
                    iTransmittedBytes = atoll (tmp);
                    
                    if (myData.bInitialized) // la 1ere iteration on ne peut pas calculer le debit.
                    {
                        myData.iDownloadSpeed = (iReceivedBytes - myData.iReceivedBytes) / fTimeElapsed;
                        myData.iUploadSpeed = (iTransmittedBytes - myData.iTransmittedBytes) / fTimeElapsed;
                    }
                    
                    myData.iReceivedBytes = iReceivedBytes;
                    myData.iTransmittedBytes = iTransmittedBytes;
                    break ;
                }
            }
            tmp = strchr (tmp+1, '\n');
            if (tmp == NULL)
                break;
            tmp ++;
            iNumLine ++;
        }
        myData.bAcquisitionOK = (tmp != NULL);
        g_free (cContent);
        if (! myData.bInitialized)
            myData.bInitialized = TRUE;
    }
}

gboolean cd_netspeed_update_from_data (CairoDockModuleInstance *myApplet)
{
    static double s_fValues[CD_NETSPEED_NB_MAX_VALUES];
    
    if ( ! myData.bAcquisitionOK)
    {
        if (myConfig.iInfoDisplay == CAIRO_DOCK_INFO_ON_LABEL)
            CD_APPLET_SET_NAME_FOR_MY_ICON (myConfig.defaultTitle);
        else if (myConfig.iInfoDisplay == CAIRO_DOCK_INFO_ON_ICON)
            CD_APPLET_SET_QUICK_INFO_ON_MY_ICON ("N/A");
        
        memset (s_fValues, 0, sizeof (s_fValues));
        CD_APPLET_RENDER_NEW_DATA_ON_MY_ICON (s_fValues);
        
        cairo_dock_downgrade_task_frequency (myData.pPeriodicTask);
    }
    else
    {
        cairo_dock_set_normal_task_frequency (myData.pPeriodicTask);
        
        if (! myData.bInitialized)
        {
            if (myConfig.iInfoDisplay == CAIRO_DOCK_INFO_ON_ICON)
                CD_APPLET_SET_QUICK_INFO_ON_MY_ICON (myDock ? "..." : D_("Loading"));
            memset (s_fValues, 0, sizeof (s_fValues));
            CD_APPLET_RENDER_NEW_DATA_ON_MY_ICON (s_fValues);
        }
        else
        {
            if (myConfig.iInfoDisplay != CAIRO_DOCK_INFO_NONE)
            {
                gchar upRateFormatted[11];
                gchar downRateFormatted[11];
                cd_netspeed_formatRate (myApplet, myData.iUploadSpeed, upRateFormatted);
                cd_netspeed_formatRate (myApplet, myData.iDownloadSpeed, downRateFormatted);
                if (myConfig.iInfoDisplay == CAIRO_DOCK_INFO_ON_ICON)
                {
                    CD_APPLET_SET_QUICK_INFO_ON_MY_ICON_PRINTF ("?%s\n?%s", downRateFormatted, upRateFormatted);
                }
                else
                {
                    CD_APPLET_SET_NAME_FOR_MY_ICON_PRINTF ("?%s\n?%s", downRateFormatted, upRateFormatted);
                }
            }
            
            if(myData.iUploadSpeed > myData.iMaxUpRate) {
                myData.iMaxUpRate = myData.iUploadSpeed;
            }
            if(myData.iDownloadSpeed > myData.iMaxDownRate) {
                myData.iMaxDownRate = myData.iDownloadSpeed;
            }
            
            double fUpValue, fDownValue;
            if (myData.iMaxUpRate != 0)
                fUpValue = (double) myData.iUploadSpeed / myData.iMaxUpRate;
            else
                fUpValue = 0.;
            if (myData.iMaxDownRate != 0)
                fDownValue = (double) myData.iDownloadSpeed / myData.iMaxDownRate;
            else
                fDownValue = 0.;
            
            int i = 0;
            s_fValues[i++] = fUpValue;
            s_fValues[i] = fDownValue;
            CD_APPLET_RENDER_NEW_DATA_ON_MY_ICON (s_fValues);
        }
    }
    return TRUE;
}

nochka85, Monday 13 July 2009 à 21:42


Subscription date : 29 November 2007
Messages : 7408
La vache -> 364 jours de déterrage !!!!! .... Alors là, tu fais très très fort !

... et en plus, c'est justifié !

Moi je vote pour le Gloden Shovel !

taiebot65, Monday 13 July 2009 à 21:56


Subscription date : 26 October 2008
Messages : 1904
Merci merci

fabounet, Tuesday 14 July 2009 à 03:15


Subscription date : 30 November 2007
Messages : 17118
je vote pour aussi

en attendant, au clic gauche tu devrais déjà avoir un dialogue qui te dit où tu en es depuis le démarrage de l'ordi (je crois).
donc en gros il faudrait stocker ça qque part, et remettre à jour à chaque démarrage de l'applet, puis surveiller la limite.

après je sais pas si ça vaut le coup de le dessiner sur l'icône (on dessine déjà les débits) ?

Applets | Applets

Subjects Author Language Messages Last message
[Locked] Applet NetSpeed
Page : 1 2 3 4 5 6
parAdOxxx_ZeRo Français 118 fabounet [Read]
14 July 2009 à 03:15


Glx-Dock / Cairo-Dock List of forums Applets | Applets Applet NetSpeed Top

Online users :

Powered by ElementSpeak © 2007 Adrien Pilleboue, 2009-2013 Matthieu Baerts.
Dock based on CSS Dock Menu (Ndesign) with jQuery. Icons by zgegball
Cairo-Dock is a free software under GNU-GPL3 licence. First stable version created by Fabounet.
Many thanks to TuxFamily for the web Hosting and Mav for the domain name.