mcu_hi3321_watch/tjd/ble/protocol/ble_weather_server.h
2025-05-26 20:15:20 +08:00

117 lines
3.0 KiB
C

/**************************************************************************************************
* Copyright (c) Fenda Technologies Co., Ltd. 2020-2021. All rights reserved.
* Description: 天气接口函数
* Author: ball.caojianguang
* Create: 2020-6-4
************************************************************************************************/
#ifndef _USER_WEATHER_SERVER_H_
#define _USER_WEATHER_SERVER_H_
#include <stdint.h>
#include "ble_protocol.h"
#define WEATHER_TEMP_NUM_MAX 5
//4.16.1 App 下发实时和预报天气
enum {
LOCATE_NAME_TYPE = 0x01,
UPDATE_TIME_TYPE,
NOW_TEMPER_TYPE,
NOW_WEATHER_ICON_TYPE = 0x31,
NOW_WEATHER_TEXT_TYPE,
FORECAST_ITEM_LEN_TYPE = 0xFE,
FORECAST_ITEM_TIME_TYPE = 0x04,
FORECAST_ITEM_WEATHER_ICON_TYPE,
FORECAST_ITEM_WEATHER_TEXT_TYPE = 0x0A,
FORECAST_ITEM_AQI_TYPE = 0x06,
FORECAST_ITEM_AQI_TEXT_TYPE,
FORECAST_ITEM_TEMPER_MAX_TYPE,
FORECAST_ITEM_TEMPER_MIN_TYPE,
WEARTHER_TYPE_MAX,
};
//4.16.2 设备通知 App 更新天气
enum {
UPDATE_WEARTHER_TYPE = 0x01,
UPDATE_WEARTHER_TYPE_MAX,
};
//实况风力枚举量
enum {
RT_WIND_SCALE_ZERO = 1, //0级
RT_WIND_SCALE_ONE,
RT_WIND_SCALE_TWO,
RT_WIND_SCALE_THREE,
RT_WIND_SCALE_FOUR,
RT_WIND_SCALE_FIVE,
RT_WIND_SCALE_SIX,
RT_WIND_SCALE_SEVEN,
RT_WIND_SCALE_EIGHT,
RT_WIND_SCALE_NINE,
RT_WIND_SCALE_TEN,
RT_WIND_SCALE_ELEVEN,
RT_WIND_SCALE_TWELVE,
RT_WIND_SCALE_THIRTEEN,
RT_WIND_SCALE_FOURTEEN,
RT_WIND_SCALE_FIFTEEN,
RT_WIND_SCALE_SIXTEEN,
RT_WIND_SCALE_SEVENTEEN,
RT_WIND_SCALE_EIGHTEEN,
RT_WIND_SCALE_MAX,
};
//预报风力枚举量
enum {
FORECAST_WIND_SCALE_ONE = 1, //1级
FORECAST_WIND_SCALE_TWO,
FORECAST_WIND_SCALE_THREE,
FORECAST_WIND_SCALE_FOUR,
FORECAST_WIND_SCALE_FIVE, //5级
FORECAST_WIND_SCALE_SIX,
FORECAST_WIND_SCALE_SEVEN,
FORECAST_WIND_SCALE_EIGHT,
FORECAST_WIND_SCALE_NINE,
FORECAST_WIND_SCALE_TEN, //10级
FORECAST_WIND_SCALE_MAX,
};
//风向枚举量
enum {
NORTHEAST = 1,
EAST,
SOUTHEAST,
SOUTH,
SOUTHWEST,
WEST,
NORTHWEST,
NORTH,
};
//APP 设置天气开关
enum {
WeatherSwitchType = 0x01,
WeatherTemperatureUnitType,
weather_switch_type_max,
};
/********************************
* 天气--4.16 命令ID
**********************************/
enum {
APP_distribution_RT_weather_ID = 0x01,
DVE_req_weather_ID,
APP_set_weather_switch,
WEATHER_SERVERE_MAX_ID = 6,
};
void BleDistributeRTAndForecastWeather(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
void BLE_DeviceNotifyAppUpdateweather(void);
void BleAppSetWeatherSwitch(uint8_t *in_data, uint16_t in_len, uint8_t *out_data, uint16_t *out_len);
extern const p_func_t WeatherServerFunc[WEATHER_SERVERE_MAX_ID];
#endif