ATS_system.h 4.68 KB
/*
Copyright Wang yong ALL RIGHT RESERVED !
 @ file name: ATS_system.h

 @ description:  系统相关的函数接口文件

 @ Author: wangyong, doforfaith@gmail.com
 
 @ Modify History:

	Date					Event												Person
 10-05-31      Creator               			wangyong	
 
*/
#if defined(__SKY_3DGUI__)
#ifndef __ATS_SYSTEM_H__
#define __ATS_SYSTEM_H__

#include "ATS_basic.h"
#include "ATS_adaptation_features.h"

typedef enum
{
	ATS_SYS_DATE_DDMMYYYY = 0, 
	ATS_SYS_DATE_MMDDYYYY,
	ATS_SYS_DATE_YYYYMMDD
	
}ATS_SYS_DATE_FORMAT;

typedef enum
{
	ATS_SYS_TIME_24,
	ATS_SYS_TIME_12
	
}ATS_SYS_TIME_FORMAT;

typedef enum 
{
   ATS_SYS_BATTERY_LOW_POWEROFF = 0,
   ATS_SYS_BATTERY_LOW_TX_PROHIBIT,
   ATS_SYS_BATTERY_LOW_WARNING,
   ATS_SYS_BATTERY_LEVEL_0,
   ATS_SYS_BATTERY_LEVEL_1,
   ATS_SYS_BATTERY_LEVEL_2,
   ATS_SYS_BATTERY_LEVEL_3, 
   ATS_SYS_BATTERY_LEVEL_MAX = ATS_SYS_BATTERY_LEVEL_3

} ATS_SYS_BATTERY_LEVEL;

typedef struct 
{
	ats_uint16 nYear;
	ats_uint8 nMonth;
	ats_uint8 nDay;
	ats_uint8 nHour;
	ats_uint8 nMin;
	ats_uint8 nSec;
	ats_uint8 DayIndex; /* 0=Sunday */
	
}ATS_SYS_TIME;


typedef enum 
{
	ATS_SYS_LANG_TYPE_NONE = -1,

	ATS_SYS_LANG_TYPE_CHINESE_SIMPLIFIED,
	ATS_SYS_LANG_TYPE_CHINESE_TRADITIONAL,
	ATS_SYS_LANG_TYPE_ENGLISH,
	
	ATS_SYS_LANG_TYPE_MAX
	
}ATS_SYS_LANGUAGE_TYPE;

typedef enum
{
	ATS_SYS_PROFILE_GENERAL,
	ATS_SYS_PROFILE_MEETING,
	ATS_SYS_PROFILE_OUTDOOR,
	ATS_SYS_PROFILE_INDOOR,
	ATS_SYS_PROFILE_HEADSET,
	ATS_SYS_PROFILE_SILENT,
	ATS_SYS_PROFILE_BT,
	ATS_SYS_PROFILE_CUSTOMIZE,

	ATS_SYS_PROFILE_MAX
	
}ATS_SYS_PROFILE_TYPE;


/*memory 操作*/
extern void* ATS_sys_memchr (const void *buf, ats_int32 ch, ats_uint32 size);

extern ats_int32 ATS_sys_memcmp (const void *buf1, const void *buf2, ats_uint32 size);

extern void*  ATS_sys_memcpy (void*dst, const void*src, ats_uint32 size);

extern void* ATS_sys_memmove (void*dst, const void*src, ats_uint32 size);

extern void* ATS_sys_memset (void* dst, ats_int32 ch, ats_uint32 size);


/*time 相关*/
/*获取当前的系统时间*/
extern void ATS_sys_get_time( ATS_SYS_TIME* time);

/*获取系统当前的时间显示格式*/
extern ATS_SYS_TIME_FORMAT ATS_sys_get_time_format(void);

/*获取系统当前的日期显示格式*/
extern ATS_SYS_DATE_FORMAT ATS_sys_get_date_format( ats_uint8* Seperator );

/*将当前系统的task 睡眠挂起,ms 为挂起时间,单位为毫秒*/
extern void ATS_sys_sleep_task_ms( ats_uint32 ms );

/*将当前系统的task 睡眠挂起,ticks 为挂起时钟周期*/
extern void ATS_sys_sleep_task(ats_uint32 ticks);

/*通过年月日,获取到星期几,0 为星期天,1 为星期一,依次类同*/
extern ats_uint8 ATS_sys_get_weekday(ats_uint16 y, ats_uint8 m, ats_uint8 d);

/*获取当前系统运行的tick 数*/
extern ats_uint32 ATS_sys_get_ticks(void);

/*将tick 值转换为毫秒*/
extern ats_uint32 ATS_sys_ticks_to_milli_secs(ats_uint32 ticks);

/*启用随机数*/
extern void ATS_sys_srand(void);

/*获取指定区域内的随机数值: [bottom, top]*/
extern ats_int32 ATS_sys_get_rand_bound( ats_int32 bottom, ats_int32 top );

/*获取[0, range) 范围的随机数值*/
extern ats_int32 ATS_sys_get_rand( ats_int32 range );


/*锁相关*/
/*创建互斥锁*/
extern void* ATS_sys_create_mutex( ats_uint8* mutex_name_ptr);

/*获取互斥锁*/
void ATS_sys_take_mutex(void* mutex);

/*释放互斥锁*/
void ATS_sys_give_mutex(void* mutex);


/*语言 相关*/
/*获取当前系统的语言类型*/
extern ATS_SYS_LANGUAGE_TYPE ATS_sys_get_language_type(void);
/*获取当前语言类型是否为文字从右往左打印的*/
extern ATS_BOOL ATS_sys_is_text_right_to_left(void);

/*背光 相关*/
/*开启背光,disable_sleep 为是否要取消睡眠模式,为ATS_TRUE 即表示背光将一直保持打开状态
为ATS_FALSE 表示背光将在一定时间内自动关闭,具体时间由系统其它地方决定*/
extern void ATS_sys_turn_on_backlight(ATS_BOOL disable_sleep);

/*关闭背光,need_half_dark 为是否经过半亮状态*/
extern void ATS_sys_turn_off_backlight(ATS_BOOL need_half_dark);

/*震动相关*/
/*停止震动*/
extern void ATS_sys_stop_vibrator(void);

/*开始震动,ms 为震动时间*/
extern void ATS_sys_start_vibrator(ats_int32 ms);

/*存储设备*/
/*获取系统盘符值,该盘符为不可见盘,可用来存储一些配置数据*/
extern ats_uint8 ATS_sys_get_system_driver(void);

/*获取储存卡盘符值*/
extern ats_uint8 ATS_sys_get_card_driver(void);

/*电池相关*/
/*判断是否充电完成*/
extern ATS_BOOL ATS_sys_is_charging_completed(void);

/*判断充电器是否连接*/
extern ATS_BOOL ATS_sys_is_charger_connected(void);

/*获取当前电量的级数*/
extern ATS_SYS_BATTERY_LEVEL ATS_sys_get_current_battery_level(void);

/*获取最大的电量级数*/
extern ATS_SYS_BATTERY_LEVEL ATS_sys_get_max_battery_level(void);

/*获取系统当前的情景模式*/
extern ATS_SYS_PROFILE_TYPE ATS_sys_get_profile_type(void);

/*判断系统当前是否处在飞行模式*/
extern ATS_BOOL ATS_sys_is_flight_mode(void);

/*判读系统当前是否处于USB 存储模式*/
extern ATS_BOOL ATS_sys_is_usb_storage_mode(void);


#endif /*__ATS_SYSTEM_H__*/
#endif /*__SKY_3DGUI__*/