Pink Floyd Posté(e) 22 février 2012 Share Posté(e) 22 février 2012 (modifié) Bonjour a tous, Est ce que quelqu'un pourrais m'aider a comprendre les sources de Dashlaunch temp monitor ? J'aimerais faire ma propre appli un peu plus élaboré ( alarme, graphique etc... ) Sauf que j'ai un peu de mal avec le c# J'aimerais comprendre comment allez lire les infos sur le port 7030 de la console. Autant je comprend comment il convertis les donné etc... autant je ne comprend pas comment les "lire" Quelqu'un pour m'aiguiller ? PS : je vois pas mal de truc interessant dans Main.cs, notament la fonction "private void bw_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)" et la : IPEndPoint ep = new IPEndPoint(0, portnum); s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); s.Bind(ep); run(); Merci ! ====================================================================== Credits - Thanks to: ====================================================================== - Author : Swizzy's - cOz, Thanks for dashlaunch! and thanks for all your help with everything! - Jack Nepacha, Thanks for the icon and general support with the designing! - My Beta testers, Thanks for always beeing there for me, to help me find bugs, and giving me general advice of how to improve the apps i make! src.rar Modifié 22 février 2012 par Pink Floyd Lien vers le commentaire Partager sur d'autres sites More sharing options...
HoRuS VbR Posté(e) 22 février 2012 Share Posté(e) 22 février 2012 Salut, je vais tenter d'expliquer... bon la partie : IPEndPoint ep = new IPEndPoint(0, portnum); s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); s.Bind(ep); permet (en gros) d'ouvrir le port d'écoute "portnum" dans ce cas la c'est le 7030 en udp en suite on fait appel a la fonction run(); bw.RunWorkerAsync(); while (bw.IsBusy) { Application.DoEvents(); Thread.Sleep(100); readingsout.Text = readings.ToString(); } qui elle fait appel a la fonction bw_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e) de manière asynchrone (autre thread) afin de pas bloquer l'application principale. et dans cette même fonction dès que l'on recoit des "infos" on les traites. En esperant de t'avoir un peu aider Lien vers le commentaire Partager sur d'autres sites More sharing options...
Pink Floyd Posté(e) 23 février 2012 Auteur Share Posté(e) 23 février 2012 (modifié) bizzarement quand j'ecoute en udp sur le 7030 de ma carte, je ne vois rien bon j'ai finalement reussi, maintenant faut comprendre comment recup les valeurs : 18:55:21.506953 IP XBOX360.1032 > 255.255.255.255.7030: UDP, length 512 0x0000: 4500 021c b221 0000 4011 05ee c0a8 001a E....!..@....... 0x0010: ffff ffff 0408 1b76 0208 ead1 075a 3127 .......v.....Z1' 0x0020: 40e9 3a69 1e2c 0000 0000 0000 4672 6565 @.:i.,......Free 0x0030: 7374 796c 652e 6578 6500 0000 0000 0154 style.exe......T 0x0040: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0x0050: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0x0060: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0x0070: 0000 0000 0000 0000 0000 0000 5c44 6576 ............\Dev 0x0080: 6963 655c 4d61 7373 305c 5f46 7265 6573 ice\Mass0\_Frees 0x0090: 7479 6c65 6461 7368 5c64 6566 6175 6c74 tyledash\default 0x00a0: 2e78 6578 0000 .xex.. Modifié 23 février 2012 par Pink Floyd Lien vers le commentaire Partager sur d'autres sites More sharing options...
HoRuS VbR Posté(e) 23 février 2012 Share Posté(e) 23 février 2012 (modifié) la sortie, c'est "serverData" ? Edit : j'ai fait un tit truc a l'arrache pour voir si ça marche (vu que chez moi j'ai pas les moyens de tester... snif) : Sources , si ça fonctionne je pourrai plus te le commenter afin de t'aider. Modifié 23 février 2012 par HoRuS VbR Lien vers le commentaire Partager sur d'autres sites More sharing options...
Pink Floyd Posté(e) 24 février 2012 Auteur Share Posté(e) 24 février 2012 (modifié) HoRuS VbR, il te serait possible de me compiler ton truc pour qu'il me sorte le resultat en ligne de commande que je puisse l'integrer a mon appli ? car je developpe pas en VB et j'ai du mal a comprendre comment convertir les données brut en données lisible en gros cette partie la quoi : if(temp->commandIdent == 0x7) { double cpu = (temp->cpuLower | (temp->cpuUpper << 8)) / 256.0; double gpu = (temp->gpuLower | (temp->gpuUpper << 8)) / 256.0; double edram = (temp->edramLower | (temp->edramUpper << 8)) / 256.0; double mb = (temp->moboLower | (temp->moboUpper << 8)) / 256.0; DWORD tid = loadBe32(&temp->titleId); DWORD mid = loadBe32(&temp->mediaId); printf("CPU:%3.1fC GPU:%3.1fC EDRAM:%3.1fC MB:%3.1fC TID: 0x%08x MID: 0x%08x", cpu, gpu, edram, mb, tid, mid); Modifié 24 février 2012 par Pink Floyd Lien vers le commentaire Partager sur d'autres sites More sharing options...
HoRuS VbR Posté(e) 24 février 2012 Share Posté(e) 24 février 2012 (modifié) J'ai pas trop compris, tu voudrais un truc dans ce genre ? Edit : Tu developpes en quoi ? Modifié 24 février 2012 par HoRuS VbR Lien vers le commentaire Partager sur d'autres sites More sharing options...
Ac_K Posté(e) 24 février 2012 Share Posté(e) 24 février 2012 Il ne comprend pas les opérations de bits faites sur la réponse du Socket... Lien vers le commentaire Partager sur d'autres sites More sharing options...
HoRuS VbR Posté(e) 24 février 2012 Share Posté(e) 24 février 2012 ahhhh oki ! J'ai un peu de mal lol Bon alors on lit 512 octets du socket on met tout ça dans un tableau mReceive. On test le premier octet si le 1er octet (mReceive[0]) == 0x07 alors on continu... sinon on va se coucher (je pars du principe que le 2eme octet = 0x5a et le 3eme = 0x31 (parce que j'ai envie )) 0x5a = 01011010 (en binaire) = 90 (décimal) 0x31 = 00110001 (en binaire) = 49 (décimal) alors l'opération pour la température du cpu (je prend le code que tu as posté en c#) : Cpu = ((mReceive[1]) + (mReceive[2] << 8)) / mDivisor; devient dans notre exemple : Cpu = (0x5a + (0x31 << 8)) / 256; (0x31 << 8) correspond a un décalage de 8 bits vers la gauche : 0110001 << 8 = 0011000100000000 = 0x3100 = 12544 (décimal) donc : Cpu = (0x5a + 0x3100) / 256.0; = (90 + 12544) / 256.0; (décimal) = 49.3515625 (décimal) Conclusion notre CPU est a 49.35°c. Désolé si ça fait un peu neuneu mais j'essaye d'être le plus clair possible Lien vers le commentaire Partager sur d'autres sites More sharing options...
Pink Floyd Posté(e) 25 février 2012 Auteur Share Posté(e) 25 février 2012 (modifié) J'ai pas trop compris, tu voudrais un truc dans ce genre ? Edit : Tu developpes en quoi ? ah vi ! exactement ca ! sinon je developpe en Autoit... donc l'appli sera x32 et x64 sous Win merci pour ton explication j'ai conmpris vais tenter de reproduire ca, sinon ta capture d'ecran c'est le script python que tu as lancé ? EDIT : suffit d'ouvrir les yeux pour voir que c'est le .c que tu as lancé , tu pourrais me l'envoyer stp que je comprare les deux méthode ? Merci ! Modifié 25 février 2012 par Pink Floyd Lien vers le commentaire Partager sur d'autres sites More sharing options...
HoRuS VbR Posté(e) 25 février 2012 Share Posté(e) 25 février 2012 le screen que je t'ai fait est un enorme fake, vu que j'ai pas DashLaunch... (je prog un peu a l'aveuglette) Bon j'ai fais ça [TempMonitor.rar], lance l'executable (sans aucun paramètre) déja juste pour voir si ça marche... lol PS. Desolé pour le code de "Program.cs", il est vraiment dégueu, mais c'est "CTemp.cs" qui est le plus intérressent. Lien vers le commentaire Partager sur d'autres sites More sharing options...
Pink Floyd Posté(e) 25 février 2012 Auteur Share Posté(e) 25 février 2012 (modifié) le screen que je t'ai fait est un enorme fake, vu que j'ai pas DashLaunch... (je prog un peu a l'aveuglette)Bon j'ai fais ça [TempMonitor.rar], lance l'executable (sans aucun paramètre) déja juste pour voir si ça marche... lol PS. Desolé pour le code de "Program.cs", il est vraiment dégueu, mais c'est "CTemp.cs" qui est le plus intérressent. merci je test de suite marche nickel du premier coup ! Modifié 25 février 2012 par Pink Floyd Lien vers le commentaire Partager sur d'autres sites More sharing options...
HoRuS VbR Posté(e) 25 février 2012 Share Posté(e) 25 février 2012 C'est bien la premiere fois que ça m'arrive lol Si tu as des questions n'hésite pas. Lien vers le commentaire Partager sur d'autres sites More sharing options...
Pink Floyd Posté(e) 25 février 2012 Auteur Share Posté(e) 25 février 2012 C'est bien la premiere fois que ça m'arrive lol Si tu as des questions n'hésite pas. juste histoire d'être chiant ( surtout pour limiter les acces disques en fait ) tu pourrais juste rajouter une option pour tout ecrire dans un seul fichier texte ? Enorme merci en tout cas, tu m'as bien débloqué. Lien vers le commentaire Partager sur d'autres sites More sharing options...
HoRuS VbR Posté(e) 25 février 2012 Share Posté(e) 25 février 2012 la ligne tu la veux sous quelle forme ? ex : CPU:49 GPU:55...etc... Lien vers le commentaire Partager sur d'autres sites More sharing options...
Pink Floyd Posté(e) 25 février 2012 Auteur Share Posté(e) 25 février 2012 la ligne tu la veux sous quelle forme ?ex : CPU:49 GPU:55...etc... comme ca t'enquiquine le moins, c'est pas le plus dur/compliqué a coder, ton exemple est tres bien ! Lien vers le commentaire Partager sur d'autres sites More sharing options...
HoRuS VbR Posté(e) 25 février 2012 Share Posté(e) 25 février 2012 no je te pose la question pour que sa soit le plus facile pour toi, genre je peux les séparer par un caractere spécial genre CPU:49|GPU:55|RAM:...etc... ou faire un retour a la ligne pour chaques.... Lien vers le commentaire Partager sur d'autres sites More sharing options...
Pink Floyd Posté(e) 25 février 2012 Auteur Share Posté(e) 25 février 2012 bah si tu veux faire le plus simple pour moi c'est encore juste les valeurs alors 48|58|29|0|FDE0000|0 Lien vers le commentaire Partager sur d'autres sites More sharing options...
HoRuS VbR Posté(e) 25 février 2012 Share Posté(e) 25 février 2012 Voila [TempMonitor2] . Je te conseille de changer le "Refresh" et de le mettre entre 500 et 1000 parce que sinon on écrit le fichier toutes les 100 ms et je pense que ça fait beaucoup. Lien vers le commentaire Partager sur d'autres sites More sharing options...
Pink Floyd Posté(e) 25 février 2012 Auteur Share Posté(e) 25 février 2012 Voila [TempMonitor2] .Je te conseille de changer le "Refresh" et de le mettre entre 500 et 1000 parce que sinon on écrit le fichier toutes les 100 ms et je pense que ça fait beaucoup. C'est quoi l'option a mettre car il continu de me creer tout les log Lien vers le commentaire Partager sur d'autres sites More sharing options...
HoRuS VbR Posté(e) 25 février 2012 Share Posté(e) 25 février 2012 (modifié) TempMonitor.exe --onefile --refresh=500 faut le lancer appartir de l'invite de commande "cmd.exe" ensuite ta le reste des commandes dans "utilisation.txt" Modifié 25 février 2012 par HoRuS VbR Lien vers le commentaire Partager sur d'autres sites More sharing options...
Pink Floyd Posté(e) 25 février 2012 Auteur Share Posté(e) 25 février 2012 Parfait, vais manger et je m'y attaque serieusement apres, j'ai quasi fini l'interface graphique Merci encore Lien vers le commentaire Partager sur d'autres sites More sharing options...
Pink Floyd Posté(e) 25 février 2012 Auteur Share Posté(e) 25 février 2012 Here we go ! http://gueux-forum.net/index.php?showtopic...=0#entry2013661 Lien vers le commentaire Partager sur d'autres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant