完成天气、联网时钟
This commit is contained in:
parent
821c3616f8
commit
1407d87385
119
User/APP_Weather/APP_Weather.c
Normal file
119
User/APP_Weather/APP_Weather.c
Normal file
@ -0,0 +1,119 @@
|
||||
#include "sys.h"
|
||||
#include "systick.h"
|
||||
|
||||
#include "key.h"
|
||||
|
||||
#include "GameEngine.h"
|
||||
#include "WLAN.h"
|
||||
|
||||
#include "APP_Weather.h"
|
||||
|
||||
/**************************************** 私有定义 ****************************************/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t city[20];
|
||||
uint8_t weather[20];
|
||||
uint8_t temp[20];
|
||||
uint8_t wind_dir[20];
|
||||
uint8_t wind_force[20];
|
||||
uint8_t humidity[20];
|
||||
uint8_t quality[20];
|
||||
} Weather;
|
||||
|
||||
/*****************************************************************************************/
|
||||
|
||||
/**************************************** 全局变量 ****************************************/
|
||||
|
||||
Weather weather;
|
||||
uint8_t city_str[30];
|
||||
|
||||
/*****************************************************************************************/
|
||||
|
||||
/**************************************** 私有函数 ****************************************/
|
||||
|
||||
void APP_Weather_SetCity(uint8_t *str);
|
||||
uint8_t APP_Weather_Sync(void);
|
||||
|
||||
/*****************************************************************************************/
|
||||
|
||||
/**
|
||||
* @brief 启动天气应用
|
||||
*/
|
||||
void APP_Weather_Launcher(void)
|
||||
{
|
||||
APP_Weather_SetCity("汉中");
|
||||
|
||||
GE_Draw_ClrAll(WHITE);
|
||||
|
||||
if (APP_Weather_Sync())
|
||||
{
|
||||
printf("连网获取天气成功\n天气: %s %s %s %s %s %s %s\n",
|
||||
weather.city,
|
||||
weather.weather,
|
||||
weather.temp,
|
||||
weather.wind_dir,
|
||||
weather.wind_force,
|
||||
weather.humidity,
|
||||
weather.quality);
|
||||
|
||||
uint8_t temp_str[200];
|
||||
sprintf(temp_str,
|
||||
"城市:%s\n天气:%s\n温度:%s\n风向:%s\n风力:%s\n湿度:%s\n空气质量:%s\n",
|
||||
weather.city,
|
||||
weather.weather,
|
||||
weather.temp,
|
||||
weather.wind_dir,
|
||||
weather.wind_force,
|
||||
weather.humidity,
|
||||
weather.quality);
|
||||
GE_GUI_MsgBox(5, 5, 310, 230, "天气", temp_str, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("连网获取天气失败\n");
|
||||
|
||||
GE_GUI_MsgBox(5, 5, 310, 230, "天气", "连网获取天气失败", NULL);
|
||||
}
|
||||
|
||||
KEY_WaitKey(JOY_L);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 选择城市
|
||||
* @param str: 城市名
|
||||
*/
|
||||
void APP_Weather_SetCity(uint8_t *str)
|
||||
{
|
||||
strcpy(city_str, str);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 同步天气
|
||||
* @retval 成功返回 1,失败返回 0
|
||||
*/
|
||||
uint8_t APP_Weather_Sync(void)
|
||||
{
|
||||
uint8_t weather_str[50];
|
||||
if (WLAN_GetWeather(weather_str, city_str) != 1)
|
||||
return 0;
|
||||
|
||||
uint8_t *p;
|
||||
|
||||
strtok(weather_str, "&");
|
||||
strcpy(weather.city, weather_str);
|
||||
p = strtok(NULL, "&");
|
||||
strcpy(weather.weather, p);
|
||||
p = strtok(NULL, "&");
|
||||
strcpy(weather.temp, p);
|
||||
p = strtok(NULL, "&");
|
||||
strcpy(weather.wind_dir, p);
|
||||
p = strtok(NULL, "&");
|
||||
strcpy(weather.wind_force, p);
|
||||
p = strtok(NULL, "&");
|
||||
strcpy(weather.humidity, p);
|
||||
p = strtok(NULL, "&");
|
||||
strcpy(weather.quality, p);
|
||||
|
||||
return 1;
|
||||
}
|
||||
6
User/APP_Weather/APP_Weather.h
Normal file
6
User/APP_Weather/APP_Weather.h
Normal file
@ -0,0 +1,6 @@
|
||||
#ifndef __APP_WEATHER_H
|
||||
#define __APP_WEATHER_H
|
||||
|
||||
void APP_Weather_Launcher(void);
|
||||
|
||||
#endif
|
||||
86
User/Clock/Clock.c
Normal file
86
User/Clock/Clock.c
Normal file
@ -0,0 +1,86 @@
|
||||
#include "GameEngine.h"
|
||||
#include "WLAN.h"
|
||||
|
||||
#include "Clock.h"
|
||||
|
||||
ClockTime clock_time = {0, 0, 0, 0, 0, 0};
|
||||
uint8_t is_disp = 0;
|
||||
uint16_t disp_x;
|
||||
uint16_t disp_y;
|
||||
uint8_t disp_mode;
|
||||
|
||||
void Clock_Init(void)
|
||||
{
|
||||
printf(
|
||||
"连网获取时间是否成功: %d\n时间: %d-%d-%d %d:%d:%d\n",
|
||||
Clock_Sync(),
|
||||
clock_time.year,
|
||||
clock_time.month,
|
||||
clock_time.day,
|
||||
clock_time.hour,
|
||||
clock_time.minute,
|
||||
clock_time.second);
|
||||
}
|
||||
|
||||
uint8_t Clock_Sync(void)
|
||||
{
|
||||
uint8_t clock_time_str[20];
|
||||
if (WLAN_GetNetClockTime(clock_time_str) != 1)
|
||||
return 0;
|
||||
|
||||
uint8_t *p;
|
||||
|
||||
strtok(clock_time_str, "&");
|
||||
sscanf(clock_time_str, "%d", &clock_time.year);
|
||||
p = strtok(NULL, "&");
|
||||
sscanf(p, "%d", &clock_time.month);
|
||||
p = strtok(NULL, "&");
|
||||
sscanf(p, "%d", &clock_time.day);
|
||||
p = strtok(NULL, "&");
|
||||
sscanf(p, "%d", &clock_time.hour);
|
||||
p = strtok(NULL, "&");
|
||||
sscanf(p, "%d", &clock_time.minute);
|
||||
p = strtok(NULL, "&");
|
||||
sscanf(p, "%d", &clock_time.second);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
void Clock_Handler(void)
|
||||
{
|
||||
clock_time.second++;
|
||||
|
||||
if (clock_time.second == 60)
|
||||
{
|
||||
clock_time.second = 0;
|
||||
clock_time.minute++;
|
||||
|
||||
if (clock_time.minute == 60)
|
||||
{
|
||||
clock_time.minute = 0;
|
||||
clock_time.hour++;
|
||||
|
||||
if (clock_time.hour == 24)
|
||||
{
|
||||
clock_time.hour = 0;
|
||||
clock_time.day++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// static char temp_str[20];
|
||||
// if (is_disp)
|
||||
// {
|
||||
// sprintf(
|
||||
// temp_str,
|
||||
// "%04d %02d %02d %02d %02d %02d",
|
||||
// clock_time.year,
|
||||
// clock_time.month,
|
||||
// clock_time.day,
|
||||
// clock_time.hour,
|
||||
// clock_time.minute,
|
||||
// clock_time.second);
|
||||
// GE_Font_Print(disp_x, disp_y, BORDER_MAX, BORDER_MAX, FONT_16, BLUE, WHITE, FALSE, temp_str);
|
||||
// GE_Draw_Disp();
|
||||
// }
|
||||
}
|
||||
21
User/Clock/Clock.h
Normal file
21
User/Clock/Clock.h
Normal file
@ -0,0 +1,21 @@
|
||||
#ifndef __CLOCK_H
|
||||
#define __CLOCK_H
|
||||
|
||||
#include "sys.h"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint16_t year;
|
||||
uint8_t month;
|
||||
uint8_t day;
|
||||
uint8_t hour;
|
||||
uint8_t minute;
|
||||
uint8_t second;
|
||||
} ClockTime;
|
||||
|
||||
void Clock_Init(void);
|
||||
uint8_t Clock_Sync(void);
|
||||
|
||||
void Clock_Handler(void);
|
||||
|
||||
#endif
|
||||
Loading…
x
Reference in New Issue
Block a user