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:
Image

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 :o

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 :wink:

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 :wink:
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é.
:oops:

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))
:wink:

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. :wink:
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.
:mrgreen:
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 :mrgreen: :lol:

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 :wink:
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) !!! 8O

Super belle ton appli...tellement belle qu'on aimerait la déposer sur le bureau...pas virtuel :wink:
En tout cas c'est un petit miracle, on pourrait même te qualifier de petite fée... du "logis" :mrgreen:
Merci beaucoup du partage 8)