Commit d0ae1b38c6e8d9617bdcec157f1195a7093e6bf5
1 parent
aa84636b
Code pour récupérer les informations et les convertir en nombre binaire
Showing
2 changed files
with
122 additions
and
0 deletions
Show diff stats
... | ... | @@ -0,0 +1,83 @@ |
1 | +import locale | |
2 | +import threading | |
3 | +import time | |
4 | +import requests | |
5 | +import json | |
6 | +import traceback | |
7 | +#import feedparser | |
8 | + | |
9 | + | |
10 | +LOCALE_LOCK = threading.Lock() | |
11 | + | |
12 | +time_format = 24 # 12 or 24 | |
13 | +weather_api_token = '76e35ed2404406f58fe91265afacbb2b' # create account at https://darksky.net/dev/ | |
14 | +weather_lang = 'fr' # see https://darksky.net/dev/docs/forecast for full list of language parameters values | |
15 | +weather_unit = 'auto' # see https://darksky.net/dev/docs/forecast for full list of unit parameters values | |
16 | +latitude = '39.917' # Set this if IP location lookup does not work for you (must be a string) | |
17 | +longitude = '116.433' # Set this if IP location lookup does not work for you (must be a string) | |
18 | + | |
19 | + | |
20 | +def tick(): | |
21 | + if time_format == 12: | |
22 | + heure = int(time.strftime('%M %p')) #hour in 12h format | |
23 | + minute = int(time.strftime('%M %p')) | |
24 | + else: | |
25 | + heure = int(time.strftime('%H')) #hour in 24h format | |
26 | + minute =int(time.strftime('%M')) | |
27 | + | |
28 | + return(heure,minute) | |
29 | + | |
30 | + | |
31 | +def get_weather(): | |
32 | + | |
33 | + weather_req_url = "https://api.darksky.net/forecast/%s/%s,%s?lang=%s&units=%s" % (weather_api_token, latitude, longitude, weather_lang, weather_unit) | |
34 | + | |
35 | + r = requests.get(weather_req_url) | |
36 | + weather_obj = json.loads(r.text) | |
37 | + | |
38 | + temperature2 = int(weather_obj['currently']['temperature']) | |
39 | + | |
40 | + return(temperature2) | |
41 | + | |
42 | +def dec2bin(d,nb=6): | |
43 | + | |
44 | + if d == 0: | |
45 | + return "0".zfill(nb) | |
46 | + if d<0: | |
47 | + d += 1<<nb | |
48 | + b="" | |
49 | + while d != 0: | |
50 | + d, r = divmod(d, 2) | |
51 | + b = "01"[r] + b | |
52 | + return b.zfill(nb) | |
53 | + | |
54 | +def binary_expression(heure,minute,temperature): | |
55 | + t_low = dec2bin(temperature) | |
56 | + | |
57 | + if (temperature < 0): | |
58 | + t_high = '11' | |
59 | + else: | |
60 | + t_high = '10' | |
61 | + | |
62 | + | |
63 | + m_low = dec2bin(minute) | |
64 | + m_high = '01' | |
65 | + | |
66 | + h_low = dec2bin(heure) | |
67 | + h_high = '00' | |
68 | + | |
69 | + return(h_high+h_low,m_high+m_low,t_high+t_low) | |
70 | + | |
71 | + | |
72 | +heure,minute = tick() | |
73 | +temperature = get_weather() | |
74 | + | |
75 | +h,m,t = binary_expression(heure,minute, temperature) | |
76 | + | |
77 | +print(h,m,t) | |
78 | + | |
79 | + | |
80 | + | |
81 | + | |
82 | + | |
83 | + | ... | ... |
... | ... | @@ -0,0 +1,39 @@ |
1 | +#include <stdio.h> | |
2 | +#include <stdlib.h> | |
3 | +#include <string.h> | |
4 | + | |
5 | +#define TAILLE_MAX_BUFFER 50 | |
6 | +#define TAILLE_MOT 8 | |
7 | + | |
8 | +int main() | |
9 | +{ | |
10 | + | |
11 | + FILE *file = popen("python get_data.py","r"); | |
12 | + | |
13 | + char a[TAILLE_MAX_BUFFER], b[TAILLE_MAX_BUFFER], c[TAILLE_MAX_BUFFER]; | |
14 | + | |
15 | + fscanf(file,"%s",a); | |
16 | + fscanf(file,"%s",b); | |
17 | + fscanf(file,"%s",c); | |
18 | + pclose(file); | |
19 | + | |
20 | + int i; | |
21 | + char heure[TAILLE_MOT],minute[TAILLE_MOT],temperature[TAILLE_MOT]; | |
22 | + for(i=0;i<8;i++){ | |
23 | + heure[i]=a[i+2]; | |
24 | + minute[i]=b[i+1]; | |
25 | + temperature[i]=c[i+1]; | |
26 | + } | |
27 | + | |
28 | + heure[8]='\0'; | |
29 | + minute[8]='\0'; | |
30 | + temperature[8]='\0'; | |
31 | + | |
32 | + | |
33 | + | |
34 | + printf("%s\n",heure); | |
35 | + printf("%s\n",minute); | |
36 | + printf("%s\n",temperature); | |
37 | + | |
38 | + return(0); | |
39 | +} | ... | ... |