FreeRTOS: Common I/O
AWS IoT Common I/O library
Return to main page ↑
iot_battery.h
Go to the documentation of this file.
1 /*
2  * FreeRTOS Common IO V1.0.0
3  * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a copy of
6  * this software and associated documentation files (the "Software"), to deal in
7  * the Software without restriction, including without limitation the rights to
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9  * the Software, and to permit persons to whom the Software is furnished to do so,
10  * subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be included in all
13  * copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21  *
22  * http://aws.amazon.com/freertos
23  * http://www.FreeRTOS.org
24  */
25 
26 /*******************************************************************************
27  * @file iot_battery.h
28  *
29  * @brief HAL APIs for Battery
30  *******************************************************************************
31  */
32 
39 #ifndef _IOT_BATTERY_H_
40 #define _IOT_BATTERY_H_
41 
50 #define IOT_BATTERY_SUCCESS ( 0 )
51 #define IOT_BATTERY_INVALID_VALUE ( 1 )
52 #define IOT_BATTERY_NOT_EXIST ( 2 )
53 #define IOT_BATTERY_READ_FAILED ( 3 )
54 #define IOT_BATTERY_FUNCTION_NOT_SUPPORTED ( 4 )
59 typedef enum
60 {
64 
68 typedef enum
69 {
75 
79 typedef enum
80 {
100 
104 typedef struct IotBatteryInfo
105 {
107  uint16_t usMinVoltage;
108  uint16_t usMaxVoltage;
109  int16_t sMinTemperature;
110  int16_t sMaxTemperature;
111  uint8_t usMaxCapacity;
116 
120 typedef enum IotBatteryIoctlRequest
121 {
175 
179 struct IotBatteryDescriptor_t;
180 
186 typedef struct IotBatteryDescriptor_t * IotBatteryHandle_t;
187 
204 typedef void ( * IotBatteryCallback_t)( IotBatteryStatus_t xStatus, void * pvUserContext );
205 
219 IotBatteryHandle_t iot_battery_open( int32_t lBatteryInstance );
220 
244 void iot_battery_set_callback( IotBatteryHandle_t const pxBatteryHandle,
245  IotBatteryCallback_t xCallback,
246  void * pvUserContext );
247 
259 
274 int32_t iot_battery_current( IotBatteryHandle_t const pxBatteryHandle,
275  uint16_t * pusCurrent);
276 
291 int32_t iot_battery_voltage( IotBatteryHandle_t const pxBatteryHandle,
292  uint16_t * pusVoltage);
293 
308 int32_t iot_battery_chargeLevel( IotBatteryHandle_t const pxBatteryHandle,
309  uint8_t * pucChargeLevel);
310 
311 
326 int32_t iot_battery_capacity( IotBatteryHandle_t const pxBatteryHandle,
327  uint16_t * pusCapacity);
328 
343 int32_t iot_battery_temp( IotBatteryHandle_t const pxBatteryHandle,
344  int16_t * psTemp);
345 
362 int32_t iot_battery_enable_charging( IotBatteryHandle_t const pxBatteryHandle,
363  uint8_t * pucEnable);
364 
378 int32_t iot_battery_is_charging( IotBatteryHandle_t const pxBatteryHandle,
379  uint8_t * pucCharging);
380 
399 int32_t iot_battery_ioctl( IotBatteryHandle_t const pxBatteryHandle,
400  IotBatteryIoctlRequest_t xRequest,
401  void * const pvBuffer );
402 
414 int32_t iot_battery_close( IotBatteryHandle_t const pxBatteryHandle );
415 
420 #endif /* ifndef _IOT_BATTERY_H_ */
421 
Definition: iot_battery.h:96
Definition: iot_battery.h:154
Definition: iot_battery.h:71
struct IotBatteryDescriptor_t * IotBatteryHandle_t
IotBatteryHandle_t type is the Battery handle returned by calling iot_battery_open() this is initiali...
Definition: iot_battery.h:186
void iot_battery_set_callback(IotBatteryHandle_t const pxBatteryHandle, IotBatteryCallback_t xCallback, void *pvUserContext)
iot_battery_set_callback is used to set the callback to be called when a notification needs to be sen...
IotBatteryStatus_t
Battery status.
Definition: iot_battery.h:79
int16_t sMinTemperature
Definition: iot_battery.h:109
Definition: iot_battery.h:126
IotBatteryInfo_t * iot_battery_getInfo(IotBatteryHandle_t const pxBatteryHandle)
iot_battery_getInfo is used to get the battery info
int32_t iot_battery_is_charging(IotBatteryHandle_t const pxBatteryHandle, uint8_t *pucCharging)
iot_battery_is_charging is used to query if the battery is currently charging.
int32_t iot_battery_chargeLevel(IotBatteryHandle_t const pxBatteryHandle, uint8_t *pucChargeLevel)
iot_battery_chargeLevel is used to get the battery charging level in percentage (from 1 to 100)...
Definition: iot_battery.h:162
Definition: iot_battery.h:93
Definition: iot_battery.h:164
Definition: iot_battery.h:170
int32_t iot_battery_close(IotBatteryHandle_t const pxBatteryHandle)
iot_battery_close is used to de-Initialize Battery driver.
Definition: iot_battery.h:156
IotBatteryIoctlRequest_t
Ioctl request types.
Definition: iot_battery.h:120
Definition: iot_battery.h:95
Definition: iot_battery.h:122
int16_t sMaxTemperature
Definition: iot_battery.h:110
Definition: iot_battery.h:72
Definition: iot_battery.h:172
Definition: iot_battery.h:136
Definition: iot_battery.h:160
int32_t iot_battery_voltage(IotBatteryHandle_t const pxBatteryHandle, uint16_t *pusVoltage)
iot_battery_voltage is used to get the battery voltage in milli-volts.
Definition: iot_battery.h:84
Definition: iot_battery.h:144
Definition: iot_battery.h:133
IotBatteryType_t
Battery Type.
Definition: iot_battery.h:59
int32_t iot_battery_temp(IotBatteryHandle_t const pxBatteryHandle, int16_t *psTemp)
iot_battery_temp is used to get the battery temperature in milliCelcius
IotBatteryChargeSource_t
Charger type.
Definition: iot_battery.h:68
IotBatteryType_t xBatteryType
Definition: iot_battery.h:106
Definition: iot_battery.h:150
int32_t iot_battery_capacity(IotBatteryHandle_t const pxBatteryHandle, uint16_t *pusCapacity)
iot_battery_capacity is used to get the current battery capacity value in mAh
Battery information.
Definition: iot_battery.h:104
Definition: iot_battery.h:142
Definition: iot_battery.h:130
Definition: iot_battery.h:98
Definition: iot_battery.h:86
Definition: iot_battery.h:82
Definition: iot_battery.h:81
uint8_t ucAsyncSupported
Definition: iot_battery.h:112
Definition: iot_battery.h:148
void(* IotBatteryCallback_t)(IotBatteryStatus_t xStatus, void *pvUserContext)
Battery notification callback type. This callback is passed to the driver by using iot_battery_set_ca...
Definition: iot_battery.h:204
int32_t iot_battery_current(IotBatteryHandle_t const pxBatteryHandle, uint16_t *pusCurrent)
iot_battery_current is used to get the battery current in mA.
Definition: iot_battery.h:70
uint16_t usMaxVoltage
Definition: iot_battery.h:108
Definition: iot_battery.h:88
Definition: iot_battery.h:62
Definition: iot_battery.h:61
Definition: iot_battery.h:139
uint16_t usMinVoltage
Definition: iot_battery.h:107
IotBatteryHandle_t iot_battery_open(int32_t lBatteryInstance)
iot_battery_open is used to initialize the Battery and Charging driver.
int32_t iot_battery_enable_charging(IotBatteryHandle_t const pxBatteryHandle, uint8_t *pucEnable)
iot_battery_enable_charging is used to enable battery charging if charging is supported. if battery is already at full charge, enable will not charge battery until the charging level drops below 100, and even if battery is at critical level, and charging is not enabled, battery will not be charging. Charging is always enabled by default unless disabled by using this API.
Definition: iot_battery.h:152
Definition: iot_battery.h:90
Definition: iot_battery.h:166
int32_t iot_battery_ioctl(IotBatteryHandle_t const pxBatteryHandle, IotBatteryIoctlRequest_t xRequest, void *const pvBuffer)
iot_battery_ioctl is used to set Battery configuration and Battery properties like battery threshold...
Definition: iot_battery.h:168
Definition: iot_battery.h:158
Definition: iot_battery.h:94
uint8_t usMaxCapacity
Definition: iot_battery.h:111
Definition: iot_battery.h:73
Definition: iot_battery.h:91
Definition: iot_battery.h:92
Definition: iot_battery.h:146