Page 1 sur 2
Ephemeride + Météo
Publié : jeu. 23/juin/2016 8:38
par logis27
Salut les gens
Je vous propose un Ephemeride + une station météo + une supervision de vos disques durs ou SSD.
https://www.dropbox.com/s/93qy67mgmxstj ... n.rar?dl=0
Il vous faudra entrer le code de votre ville, voir:
Code : Tout sélectionner
Procedure ChargeData()
Protected i,Champ2$
;Code ville pour la France:
;https://weather.codes/france/
;FRXX0076:1:FR => Paris France
InitNetwork()
i=ReceiveHTTPFile("http://wxdata.weather.com/wxdata/weather/local/FRXX0076:1:FR?cc=&unit=m&dayf=6","Meteo.txt")
OpenFile(0,Repertoire$+"Meteo.txt")
DataBrut$=ReadString(0,#PB_File_IgnoreEOL)
"FRXX0076:1:FR" est le code pour Paris
Il est indispensable d'avoir une connexion internet mais pas besoin d'une connexion rapide.
Une image de la fenêtre:

Re: Ephemeride + Météo
Publié : jeu. 23/juin/2016 8:40
par Zorro
jolie interface

Re: Ephemeride + Météo
Publié : jeu. 23/juin/2016 8:57
par Marc56
Beau boulot
Par contre tu as oublié de packager le fichier icône de l'application (..\1-Imagerie\Icones\Calendr1.ico dans les options du compilateur)
et le fichier son (Sd_Clic.ogg)
dans le .rar
Suggestion: Tu pourrais mettre le tout (y compris les images de fond) en IncludeBinary comme ça tu aurais un EXE autonome

Re: Ephemeride + Météo
Publié : jeu. 23/juin/2016 10:14
par logis27
Merci des retours.
Le fichier .rar est corrigé.
J'en es profité pour corriger quelques idioties
Comme beaucoup, je pense, je ne réécris pas un programme complètement à chaque fois.
J'ai mes bibliothèques fonctionnelles que je copie/colle.
C'est pratique, rapide, mais ça apporte des coquilles.
Là par exemple c'est le cas du son clic complètement inutile => j'ai donc enlevé les fichier son, modifié le programme en conséquence mais j'en ai oublié.

Re: Ephemeride + Météo
Publié : jeu. 23/juin/2016 10:15
par Micoute
Je ne peux dire mieux que j'adore !
Re: Ephemeride + Météo
Publié : jeu. 23/juin/2016 10:19
par logis27
Merci.
Je regarde pour ajouter d'autres informations comme:
- encombrement corbeille et nombre de fichiers dans celle-ci
- flux des données internet entrantes et sortantes
- niveau réception wifi avec IP et Nom
Là pour l'instant je sèche.

Re: Ephemeride + Météo
Publié : jeu. 23/juin/2016 10:41
par Ar-S
C'est sympa merci du partage.
Je verrai qques modifs/ajouts :
- Ajouts d'infosbulles au survol des icones (sur l'arbre, le signe astro et d'autres)
- Il faudrait pouvoir choisir sa région/ville afin d'afficher la météo liée. (important)
- L'interface est un peu petite lorsqu'on est sur un 15 pouces en 1920x1080
- Je remplacerai ton receivehttpfile par un receivehttpmemory pour le fichier meteo afin de ne rien ecrire sur le DD
Je ne sais pas pourquoi tu es en PB 5.41 mais tu peux le compiler en 5.42 ça marche aussi
Sinon c'est chouette

Re: Ephemeride + Météo
Publié : jeu. 23/juin/2016 10:49
par Marc56
Suggestion: Tu as une fonction qui teste l'espace libre sur chaque disque qui pourrait être améliorée
- Elle affiche des disques qui n'existent pas chez tout le monde (et elle met alors la taille du dernier)
- Son code est répété pour chaque disque (au total 100 lignes)
- Elle fonctionne sans arrêt, alors qu'une fois par minute pourrait suffire (idéalement ne mettre à jour que lors d'un changement notoire et d'un certain temps (à cause des temp et du swap))

Re: Ephemeride + Météo
Publié : jeu. 23/juin/2016 10:57
par logis27
Merci
Les infos bulles j'y ai pensé mais comme la souris n'est pas limitée à la fenêtre Supervision, je n'ai pas trouvé comment faire.
Pour la ville j'ai donnée comment faire:
Code : Tout sélectionner
;Mise à jour données depuis le site Weather.com toutes les minutes
If ElapsedMilliseconds()>Chrono
Chrono=ElapsedMilliseconds()+60000
;Code ville pour la France:
;https://weather.codes/france/
;FRXX0076:1:FR => Paris France
i=ReceiveHTTPFile("http://wxdata.weather.com/wxdata/weather/local/FRXX0076:1:FR?cc=&unit=m&dayf=6","Meteo.txt")
ChargeData()
EndIf
FRXX0076:1:FR est pour Paris.
Il faut chercher sur
https://weather.codes/france/ le code propre à sa ville.
La taille de l'interface est faites en effet pour une résolution de 1920 x 1080.
J'ai déjà utilisé des astuces pour adapter une image en fonction de la résolution de l'écran utilisé mais ça donne pas toujours de bon résultats.
Comme ce n'est pas destiné à la commercialisation.
Je vais essayé receivehttpmemory à la place de receivehttpfile.
En effet j'ai 6 DD / SSD et je n'ai pas vérifié ce qui se passait s'il y en avait moins.
A+
Re: Ephemeride + Météo
Publié : jeu. 23/juin/2016 11:01
par Ar-S
J'ai vu que tu as donné comment faire, ce qui serait intéressant c'est que ton logiciel s'en charge.
+1 concernant les DD
J'ai C et D en disque dur sur mon portable, le soft indique C D E F H K en se référent au dernier valide à savoir mon D.
(Une indication d'espace libre dans un soft de météo/éphéméride je trouve ça un peu superflux)
Pour les infobulles, vu que tu es dans un screen, tu peux utiliser 2 options :
Soit un curseur sprite qui utilise spritecollision, soit simplement les coordonnées de tes cadres
Si curseurX > cadre1X et curseurX < (cadre1X+LargeurCadre1) et pareil pour Y
Alors drawtexte info sur cadre 1
Re: Ephemeride + Météo
Publié : jeu. 23/juin/2016 11:17
par Zorro
Ar-S a écrit :(Une indication d'espace libre dans un soft de météo/éphéméride je trouve ça un peu superflux)
c'est un disciple de Marc56

Re: Ephemeride + Météo
Publié : jeu. 23/juin/2016 12:22
par Ar-S
Pour revenir aux info bulles, plus simplement un cadre "info" qui affiche un message selon ce que tu survoles.
Ici sans sprite colision je ferai quelque chose comme ça
Code : Tout sélectionner
; Tu structures tes sprites
Structure SP
x.i
y.i
message.s
L.i
H.i
ID.i
EndStructure
Global Dim SP.SP(11) ; 12 sprites en tout
;Imaginons que ton cadre lune soit le sprite 0 / 11 sprites en tout
; #SpriteLune
Sp(0)/x = 50
Sp(0)/y = 40
Sp(0)/L = 40
Sp(0)/H = 40
Sp(0)/Message.s = "Phase lunaire"
; la procédure qui va te revoyer l'ID du message à afficher
Procedure CheckOverSprite()
Xcurseur = MouseX()
Ycurseur = MouseY()
For i = 0 To 11
If Xcurseur > SP(i)\X And Xcurseur < SP(i)\L And Ycurseur > SP(i)\Y And Ycurseur < SP(i)\H
ProcedureReturn SP(i)\message.s
Else
ProcedureReturn "NO"
EndIf
EndProcedure
; Ensuite dans ta boucle graphique, tu fais un drawText() du genre
Info = CheckOverSprite()
If Info.s <> "NO"
Startdrawing(screenoutput))
DrawText(Xmessage, Ymessage, info, $FFFFFF,$0)
stopdrawing()
EndIf
J'aurai aussi préféré utilisé un Canvas plutôt qu'un screen. C'est plus souple pour des affichages statiques
Re: Ephemeride + Météo
Publié : jeu. 23/juin/2016 12:54
par Marc56
[off topic]
@Zorro: tu fais bien de me le rappeler, j'avais envisagé à un moment de mettre une zone météo, ça va me reprendre
Pour l'instant, je regarde la façon de transformer toutes mes zones Images en Canvas pour pouvoir les déplacer à la souris.
Re: Ephemeride + Météo
Publié : jeu. 23/juin/2016 13:31
par Zorro
tu mets direct chacune de tes images dans un container, et c'est celui ci que tu deplaces.... non ?
note, tu dois pouvoir aussi deplacer direct les images gadget sans utiliser un container
Re: Ephemeride + Météo
Publié : jeu. 23/juin/2016 13:37
par Kwai chang caine
logis27 a écrit :Salut les gens
J'm'appelle pas "jean" moi..... mais KCC (pour les intimes) !!!
Super belle ton appli...tellement belle qu'on aimerait la déposer sur le bureau...pas virtuel
En tout cas c'est un petit miracle, on pourrait même te qualifier de petite fée... du "logis"

Merci beaucoup du partage
