grafici del ping

Hardware & Software
Rispondi
Avatar utente
ale
Mac
Messaggi: 6797
Iscritto il: 27 apr 2001, 20:31
Località: Romanengo
Contatta:

grafici del ping

Messaggio da ale » 24 giu 2016, 17:02

se vi interessa ho fatto un programmino in C# per fare dei grafici del ping di vari host:
https://github.com/alestanga/pingraph

è ancora in versione molto alpha e anche l'interfaccia grafica è penosa.
però funziona :)
se volete contribuire vi metto come collaboratori.
c'è da risolvere il problema di come mettere in sequenza i vari risultati dei ping.
il programma genera un thread per ogni host pingato e questo thread comunica al programma principale il ping.
il programma principale aggiunge poi il ping al grafico.
il fatto è che per design vorrei mettere poter aggiungere gli host realtime e se abilito la proprietà per sincronizzare gli assi X delle serie il componente chart si incazza perché le serie non hanno un numero identico di elementi.
ho cercato un po' in internet e pare non esserci soluzione, però secondo me c'è.
per ora ho ovviato alla cosa usando la funzione di chart che ordina gli elementi delle varie serie usando il valore dell'asse X come ordinamento, però MS stessa dice che potrebbe non funzionare per elementi alfanumerici, come data/ora convertito in stringa, ed in effetti non va; per ora ho messo un contatore ma fa schifo e non puoi sapere a che ora/minuto è avvenuto il ping.
E pluribus unum

Avatar utente
oMAR
GranGianGnomo
Messaggi: 2448
Iscritto il: 11 lug 2001, 12:49
Contatta:

Re: grafici del ping

Messaggio da oMAR » 24 giu 2016, 19:53

Un modo è integrare un Webbrowser, da c# fai il ping e tutto quello che ti serve poi generi in JSON e lo elabori e visualizzi i dati in JavaScript che ci sono un sacco di framework per i grafici
1) tu sei normale (quanto mi costa ammetterlo)[vava]
2) un palo nel culo è peggio solo di 2 o più pali nel culo [un cervello sempre più bruciato]
3) Sono gestionale. Sono geneticamente incoerente

4) Siamo in Italia, mica in un paese civile... [pensiero condiviso e condivisibile]
5) Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che si realizzi [A. Einstein]

Avatar utente
ale
Mac
Messaggi: 6797
Iscritto il: 27 apr 2001, 20:31
Località: Romanengo
Contatta:

Re: grafici del ping

Messaggio da ale » 24 giu 2016, 21:24

Si. Si può fare.
Bisogna vedere se c'è un modo per visualizzare in un grafico serie con numero di elementi differente che condividono porzioni dell'asse X.
Però non ne so molto di JS.
Oppure, o magari bisogna farlo anche se si passa a JS, bisogna inventare una funzione che tutte le volte che inserisco un valore per una lista lo inserisce anche nelle altre, magari come valore nullo che mi pare sia contemplato nel componente chart di .net, e che quando si crea una nuova lista auto anticamente mette tutti i valori passati per la nuova lista a null.
In modo da avere sempre liste di uguale dimensione.
E pluribus unum

Avatar utente
ale
Mac
Messaggi: 6797
Iscritto il: 27 apr 2001, 20:31
Località: Romanengo
Contatta:

Re: grafici del ping

Messaggio da ale » 25 giu 2016, 11:17

stavo pensando che si potrebbe creare un'unica lista, un array bidimensionale, dove inserire i valori.
la prima dimensione dell'array è il tempo in cui è stato preso il campione, la seconda dimensione è la serie di appartenenza del valore memorizzato.
poi si popola il grafico con le n serie prese dall'array mettendo a null i valori ai quali non corrisponde la rilevazione in quel dato momento.
si può fare secondo me.
E pluribus unum

Avatar utente
oMAR
GranGianGnomo
Messaggi: 2448
Iscritto il: 11 lug 2001, 12:49
Contatta:

Re: grafici del ping

Messaggio da oMAR » 25 giu 2016, 14:29

Alcuni framework js funzionano passando diversi array. Non so come sia l'oggetto di .net
Cmq per quelli passi un array che contiene le scalax del grafico, e poi ogni grandezza che vuoi visualizzare ha il suo array. Fa codice devi fare in modo che l'array della scala sia in passa con l'array dei dati. Se hai un buco di tempo in quel caso ci pensa il componente a gestire la visualizzazione.

Esempio , array tempo [11.50, 11.55, 15.00] array ping [33,55,22];
I dati mancanti tra le 11.55 e le 15.00 ci pensa l'oggetto a visualizzare l'intervallo corretto combaciando i dati in base all'indice dell'array.

Magari l'oggetto di .net funziona con lo stesso principio.

Se non trovi modi facili o belli possiamo provare con l'integrazione di un Webbrowser e posso darti una mano per la parte Javascript.

Ho visto un po di app desktop fatte in quel modo, tutta la parte di visualizzazione fatta tramite Javascript. Sarebbe bello giocarci... :-)
1) tu sei normale (quanto mi costa ammetterlo)[vava]
2) un palo nel culo è peggio solo di 2 o più pali nel culo [un cervello sempre più bruciato]
3) Sono gestionale. Sono geneticamente incoerente

4) Siamo in Italia, mica in un paese civile... [pensiero condiviso e condivisibile]
5) Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che si realizzi [A. Einstein]

Avatar utente
ale
Mac
Messaggi: 6797
Iscritto il: 27 apr 2001, 20:31
Località: Romanengo
Contatta:

Re: grafici del ping

Messaggio da ale » 25 giu 2016, 14:40

si può provare ad integrare JS :)
comunque il problema non è il buco dei tempi, è il buco dei dati nelle serie:
ogni ping viaggia su un thread diverso, metti che ci siano due indirizzi pingati, ci sono due thread.
a 00:00:01 arriva il ping da ip1, a 00:00:05 arriva il ping da ip2 e così via.
i dati si alternano e il componente chart di .net sclera perché le serie non sono allineate, bisognerebbe quindi creare un punto nullo per ip2 a 00:00:01 e uno nullo per ip1 a 00:00:05 e così via.
quando inserisci un terzo ip devi creare i punti nulli per tutti i vecchi tempi rilevati per ip1 e ip2.
E pluribus unum

Avatar utente
oMAR
GranGianGnomo
Messaggi: 2448
Iscritto il: 11 lug 2001, 12:49
Contatta:

Re: grafici del ping

Messaggio da oMAR » 25 giu 2016, 21:01

per farlo in javascript si può fare con array semplici utilizzando dei placeholder quando per un dato istante non c'è la misura. In JS e con Chartjs come framework per i grafici fai qualche cosa tipo:

IP1 = [00.00.01, 55 ; 00.01.03, 66]
IP2 = [00.00.12, 100; 00.02.00, 22]

tempo = [00.00.01; 00.00.12 ; 00.01.03,00.02.00, 22]

IP1 = [55, null, 66, null]
IP2 = [null, 100, null, 22]

poi passi al grafico l'array tempo per l'asse e gli n-array per le grandezze.
1) tu sei normale (quanto mi costa ammetterlo)[vava]
2) un palo nel culo è peggio solo di 2 o più pali nel culo [un cervello sempre più bruciato]
3) Sono gestionale. Sono geneticamente incoerente

4) Siamo in Italia, mica in un paese civile... [pensiero condiviso e condivisibile]
5) Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che si realizzi [A. Einstein]

Avatar utente
ale
Mac
Messaggi: 6797
Iscritto il: 27 apr 2001, 20:31
Località: Romanengo
Contatta:

Re: grafici del ping

Messaggio da ale » 28 giu 2016, 12:22

Ok. Ho fatto quello che avevo pensato.
Punti nulli per allineare le serie e funzione che inserisce punti vuoti all'inizio di una nuova serie appena inserita.
Funziona.
Non mi piace molto l'average per i punti nulli, magari c'è qualcosa di meglio.
Si può sempre provare ad integrare JS.
E pluribus unum

Avatar utente
gdeber
GranGianGnomo
Messaggi: 1547
Iscritto il: 13 set 2001, 10:40
Località: Rivolta d'Adda
Contatta:

Re: grafici del ping

Messaggio da gdeber » 30 giu 2016, 05:50

Solo guardando il repository, vi prenderei tutti a legnate
Form1.cs?!? e dove sono i diagrammi UML?!


:D
***L'assembler è alla base dell'universo®***
http://www.mecheros.it

Avatar utente
oMAR
GranGianGnomo
Messaggi: 2448
Iscritto il: 11 lug 2001, 12:49
Contatta:

Re: grafici del ping

Messaggio da oMAR » 04 lug 2016, 16:00

Intendi i diagrammi Urino Ma Lentamente, o Uomo Mangia Lattosio?
1) tu sei normale (quanto mi costa ammetterlo)[vava]
2) un palo nel culo è peggio solo di 2 o più pali nel culo [un cervello sempre più bruciato]
3) Sono gestionale. Sono geneticamente incoerente

4) Siamo in Italia, mica in un paese civile... [pensiero condiviso e condivisibile]
5) Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che si realizzi [A. Einstein]

Avatar utente
gdeber
GranGianGnomo
Messaggi: 1547
Iscritto il: 13 set 2001, 10:40
Località: Rivolta d'Adda
Contatta:

Re: grafici del ping

Messaggio da gdeber » 04 lug 2016, 21:29

Un Mare di Legnate
***L'assembler è alla base dell'universo®***
http://www.mecheros.it

Rispondi