为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 麦步智能手表_表盘及应用开发API

麦步智能手表_表盘及应用开发API

2017-11-18 50页 doc 241KB 43阅读

用户头像

is_496339

暂无简介

举报
麦步智能手表_表盘及应用开发API麦步智能手表_表盘及应用开发API 表盘及应用开发API 麦步科技有限公司 智能手表 表盘及应用开发API 表盘及应用开发API 修订记录 日期 描述 作者 2015-08-14 创建版本V01 麦步科技有限公司 研发部 2 表盘及应用开发API 1. 概况..............................................................................................................................
麦步智能手表_表盘及应用开发API
麦步智能手_表盘及应用开发API 表盘及应用开发API 麦步科技有限公司 智能手表 表盘及应用开发API 表盘及应用开发API 修订记录 日期 描述 作者 2015-08-14 创建版本V01 麦步科技有限公司 研发部 2 表盘及应用开发API 1. 概况.................................................................................................................................................................... 5 2. 接口.................................................................................................................................................................... 6 2.1 APP服务 ................................................................................................................................................. 6 2.1.1 传感器.............................................................................................................................................. 6 void maibu_get_sport_data(SportData *data, uint8_t day); ........................................................................... 6 2.1.2 时钟 .................................................................................................................................................. 6 app_service_timer_subscribe.......................................................................................................................... 6 app_service_timer_unsubscribe...................................................................................................................... 6 app_service_get_datetime............................................................................................................................... 6 2.1.3 马达 .................................................................................................................................................. 7 maibu_service_vibes_pulse ............................................................................................................................ 7 2.1.4 系统事件 ......................................................................................................................................... 7 app_service_sys_event_subscribe .................................................................................................................. 7 2.1.5 系统通知 ......................................................................................................................................... 7 app_service_sys_notify................................................................................................................................... 7 2.1.6 类型定义 ......................................................................................................................................... 8 AppServiceTimerCallback ............................................................................................................................. 8 AppServiceSysEventCallback ........................................................................................................................ 8 enum SysEventType ....................................................................................................................................... 8 typedef stuct NotifyParam .............................................................................................................................. 8 enum VibesPulseType .................................................................................................................................... 9 2.2 APP资源 ................................................................................................................................................. 9 2.2.1 读取资源 ......................................................................................................................................... 9 uint8_t res_get_user_bitmap(uint16_t key, GBitmap *bitmap); .................................................................... 9 2.3 APP存储 ................................................................................................................................................. 9 2.3.1 读写数据 ....................................................................................................................................... 10 2.3.1.1 app_persist_read_data ................................................................................................................. 10 2.3.1.2 app_persist_write_data................................................................................................................ 10 2.3.1.3 app_persist_delete_data .............................................................................................................. 10 2.4.1.4 app_persist_create............................................................................................................................ 10 2.4.1.5 app_persist_get_data_size ............................................................................................................... 11 2.4 APP界面 ............................................................................................................................................... 11 窗口API列表 ............................................................................................................................................... 11 图层API列表 ............................................................................................................................................... 12 2.4.1 窗口 ................................................................................................................................................ 14 app_window_create ...................................................................................................................................... 14 app_window_add_layer ................................................................................................................................ 14 app_window_click_subscribe....................................................................................................................... 14 app_window_stack_push .............................................................................................................................. 14 app_window_stack_pop ............................................................................................................................... 15 app_window_update ..................................................................................................................................... 15 app_window_stack_replace_window ........................................................................................................... 15 app_window_stack_get_window_by_id....................................................................................................... 15 app_window_set_up_button ......................................................................................................................... 16 app_window_set_down_button .................................................................................................................... 16 app_window_timer_subscribe ...................................................................................................................... 16 app_window_get_layer_by_id...................................................................................................................... 17 app_window_replace_layer .......................................................................................................................... 17 app_window_set_current_selected_layer ..................................................................................................... 17 app_window_disable_layer .......................................................................................................................... 17 2.4.2 图层 ................................................................................................................................................ 18 app_layer_create_text ................................................................................................................................... 18 app_layer_set_text_text ................................................................................................................................ 18 app_layer_create_bitmap .............................................................................................................................. 18 app_layer_set_bitmap_bitmap ...................................................................................................................... 18 app_layer_create_scroll ................................................................................................................................ 19 app_layer_set_scroll_text_key ..................................................................................................................... 19 app_layer_create_geometry .......................................................................................................................... 19 app_layer_create_multi_menu...................................................................................................................... 19 app_layer_add_multi_menu_item ................................................................................................................ 20 3 表盘及应用开发API app_layer_add_multi_menu_element........................................................................................................... 20 app_layer_set_multi_menu_selected ............................................................................................................ 20 app_layer_get_multi_menu_selected ........................................................................................................... 20 app_layer_set_multi_menu_item_text.......................................................................................................... 21 app_layer_set_multi_menu_item_bitmap..................................................................................................... 21 app_layer_create_block ................................................................................................................................ 21 app_layer_add_block_element ..................................................................................................................... 22 app_layer_set_block_element_text............................................................................................................... 22 app_layer_get_block_element_text .............................................................................................................. 22 app_layer_set_block_element_bitmap ......................................................................................................... 23 app_layer_get_block_element_selected ....................................................................................................... 23 app_layer_set_block_element_selected........................................................................................................ 23 app_layer_set_block_element_frame ........................................................................................................... 23 app_layer_set_block_element_color ............................................................................................................ 24 app_layer_set_bg_color ................................................................................................................................ 24 app_layer_set_selected_status ...................................................................................................................... 24 2.4.3 类型定义 ....................................................................................................................................... 25 enum LayerType ........................................................................................................................................... 25 struct LayerBitmap ....................................................................................................................................... 25 struct LayerText............................................................................................................................................ 25 struct LayerScroll.......................................................................................................................................... 25 struct LayerMultiMenu ................................................................................................................................. 26 struct MultiMenuItem ................................................................................................................................... 26 struct Element ............................................................................................................................................... 26 struct LayerGeometry ................................................................................................................................... 27 struct Geometry ............................................................................................................................................ 27 enum GeometryType .................................................................................................................................... 27 struct Click.................................................................................................................................................... 27 enum ButtonId .............................................................................................................................................. 28 ClickCallback ............................................................................................................................................... 28 struct GRect .................................................................................................................................................. 28 struct GPoint ................................................................................................................................................. 28 struct GSize................................................................................................................................................... 29 struct GBitmap.............................................................................................................................................. 29 enum GAlign ................................................................................................................................................ 29 enum GColor ................................................................................................................................................ 29 struct GPathInfo............................................................................................................................................ 30 enum FillType............................................................................................................................................... 30 struct GFont .................................................................................................................................................. 30 AnimationType ............................................................................................................................................. 30 3. DEMO ............................................................................................................................................................. 31 3.1 文本DEMO ............................................................................................................................................. 31 3.2 位图DEMO ............................................................................................................................................. 32 3.3 菜单DEMO ............................................................................................................................................. 33 3.4 滚动DEMO ............................................................................................................................................. 35 3.5 几何DEMO ............................................................................................................................................. 37 4 表盘及应用开发API 1. 概况 说明: 麦步手表因为硬件的限制,无法做到像大型的系统一样资源基本无限制的使用,所以在编写APP的代码时请注意: 请尽量少使用全局变量,同时不要使用非静态的全局变量,系统分配给APP的内存大小为500字节,请一定注意内存的使用。 5 表盘及应用开发API 2. 接口 2.1 APP服务 2.1.1 传感器 void maibu_get_sport_data(SportData *data, uint8_t day); void maibu_get_sport_data(SportData *data, uint8_t day); 接口名 功能说明 使用传感器数据服务 参数说明 data 运动数据。 day总天数,若为0则返回当天数据 返回值 参考 其他 2.1.2 时钟 app_service_timer_subscribe uint8_t app_service_timer_subscribe(uint32_t millis, AppServiceTimerCallback 接口名 timer_callback) 功能说明 使用定时服务 参数说明 millis 定时单位,毫秒 timer_callback 定时回调函数 返回值 该应用申请的定时器ID 参考 其他 app_service_timer_unsubscribe void app_service_timer_unsubscribe(uint8_t timer_id) 接口名 功能说明 取消使用定时服务 参数说明 timer_id 定时器ID 返回值 参考 其他 app_service_get_datetime bool app_service_get_datetime(date_time_t t) 接口名 功能说明 获取系统时间 6 表盘及应用开发API 参数说明 t 年月日时分秒 返回值 参考 其他 2.1.3 马达 maibu_service_vibes_pulse void maibu_service_vibes_pulse(enum VibesPulseType pulse_type, uint8_t times) 接口名 功能说明 使用马达震动 参数说明 type 马达震动类型 times 马达震动次数 返回值 参考 其他 当震动类型为VibesPulseTypeShort 时,times无需设定 2.1.4 系统事件 app_service_sys_event_subscribe void app_service_sys_event_subscribe(AppServiceSysEventCallback 接口名 sys_event_callback) 功能说明 注册系统事件回调函数,如果有系统事件发生,回调用户函数并传递系统事件及参数 参数说明 返回值 参考 其他 2.1.5 系统通知 app_service_sys_notify void app_service_sys_notify(NotifyParam *param) 接口名 功能说明 供用户应用在后台运行时调用系统通知界面,显示应用提供的相关信息。 参数说明 param 需要通知的参数 返回值 参考 其他 7 表盘及应用开发API 2.1.6 类型定义 AppServiceTimerCallback typedef void(*AppServiceTimerCallback)(date_time_t tick_time, uint32_t millis )接口名 功能说明 使用定时服务回调函数 参数说明 tick_time 当前时间结构 millis定时单位,毫秒 返回值 参考 其他 AppServiceSysEventCallback typedef void(*AppServiceSysEventCallback)(enum SysEventType type, void *context )接口名 功能说明 使用定时服务回调函数 参数说明 type 系统事件类型 context 事件参数,需要转换为对应结构体使用,如果是时间更改,则context为当前时间 结构体指针struct date_time 返回值 参考 其他 enum SysEventType enum SysEventType 接口名 功能说明 系统事件类型 参数说明 SysEventTypeTimeChange 时间更改 SysEventTypeBleConnected 被连接 SysEventTypeBleDisconnected 断开连接 返回值 参考 其他 typedef stuct NotifyParam typedef stuct NotifyParam 接口名 功能说明 通知参数 参数说明 GBitmap bmp 通知界面中心显示的图片 char main_title[20] 主标题 char sub_title[30] 副标题 enum VibesPulseType pulse_type 震动类型 void *context 保留 8 表盘及应用开发API 返回值 参考 其他 enum VibesPulseType enum VibesPulseType 接口名 功能说明 马达震动类型 参数说明 VibesPulseTypeShort 短震动 VibesPulseTypeMiddle 中震动 VibesPulseTypeLong 长震动 返回值 参考 其他 2.2 APP资源 说明:使用图片时,请使用bmp格式位深度为1的图片。所有图片点阵(不是图片文件)的大小总和请不要超过200Kbytes。 2.2.1 读取资源 uint8_t res_get_user_bitmap(uint16_t key, GBitmap *bitmap); uint8_t res_get_user_bitmap(uint16_t key, GBitmap *bitmap); 接口名 功能说明 读取用户图片资源 参数说明 key 资源ID bitmap 图片结构体指针 返回值 实际读取的资源大小 参考 其他 2.3 APP存储 说明: 1. 读写数据时应该先create,如果之前已经create,则create立即返回成功。 2. 文件的KEY需要编写代码时自定义。 3. 文件小于4Kbytes的将至少占用4Kbytes的空间,外置存储中分配给文件使用的区域 大小是512Kbytes,建议尽量吧零碎的数据存放到一个文件中。 9 表盘及应用开发API 2.3.1 读写数据 2.3.1.1 app_persist_read_data uint32_t app_persist_read_data(const uint32_t key, void *buff, const uint32_t size) 接口名 功能说明 读取存储区的数据 参数说明 key 数据标识 buff 存储数据缓存 size 缓存大小 返回值 实际读取的数据大小 参考 其他 2.3.1.2 app_persist_write_data uint32_t app_persist_write_data(const uint32_t key, const void* buff, const uint32_t size) 接口名 功能说明 写入数据到存储区 参数说明 key 数据标识 buff 数据缓存 size 数据大小 返回值 实际写入的数据大小 参考 其他 2.3.1.3 app_persist_delete_data uint32_t app_persist_delete_data(const uint32_t key) 接口名 功能说明 删除存储区的数据 参数说明 key 数据标识 返回值 删除数据的大小 参考 其他 2.4.1.4 app_persist_create bool app_persist_create(const uint32_t key , uint32_t max_file_size) 接口名 功能说明 以key创建一个大小为max_file_size的文件 参数说明 key 数据标识 max_file_size 该key可以存储的大小 返回值 成功或者失败 参考 其他 10 表盘及应用开发API 2.4.1.5 app_persist_get_data_size uint32_t app_persist_get_data_size(const uint32_t key) 接口名 功能说明 得到某个key当前的大小 参数说明 key 数据标识 返回值 该key存储的大小 参考 其他 2.4 APP界面 窗口 图层 几何图层位图图层文本图层滚动图层菜单图层 直线多边形圆弧 GUI层次结构图 说明: 1. 一个应用最多创建3个窗口,有多层窗口需要可以使用窗口替换接口。 2. 一个窗口最多创建20个图层。不要创建过多。 3. 尽量少使用几何图层来实现复杂的图形,建议用位图图层代替。 4. 窗口中某图层的显示顺序和该图层添加到窗口中的顺序有关。 5. 如果在窗口中同一块区域有两个图层重叠,后添加的图层覆盖先添加的图层。 6. 窗口只能在前台运行。 窗口API列表 Window *app_window_create(void); 创建窗口 int8_t app_window_add_layer(Window *window, Layer *layer); 添加图层到窗口 void app_window_click_subscribe(Window *window, enum ButtonId button_id, ClickCallback click_callback); 注册窗口按键回调事件 int8_t app_window_stack_push(Window *window); 窗口放入窗口栈显示 void app_window_stack_pop(Window *window); 从窗口栈pop出窗口 void app_window_update(Window *window); 11 表盘及应用开发API 更新指定窗口, 只有该窗口是窗口栈top窗口,才更新 int8_t app_window_stack_replace_window(Window *old_window, Window *new_window); 替换窗口 Window *app_window_stack_get_window_by_id(int8_t id); 根据窗口ID获取窗口栈中窗口句柄 void app_window_set_up_button(Window *window); 设置向上按键,当需要向上选择图层时使用 void app_window_set_down_button(Window *window); 设置向下按键, 当需要向下选择图层时使用 int8_t app_window_timer_subscribe(Window *window, uint32_t millis, AppServiceTimerCallback timer_callback, void *context); 窗口定时器 Layer *app_window_get_layer_by_id(Window *window, int8_t id); 根据图层ID获取某窗口中图层句柄 int8_t app_window_replace_layer(Window *window, Layer *old_layer, Layer *new_layer); 替换图层 void app_window_set_current_selected_layer(Window *window, Layer *layer); 设置窗口中某图层被选择 void app_window_disable_layer(Window *window, Layer *layer); 设置窗口中某图层不可用 图层API列表 P_Layer app_layer_create_text(LayerText *layer_text); 创建文本图层 void app_layer_set_text_text(Layer *layer, char *text); 设置文本图层文本内容 P_Layer app_layer_create_bitmap(LayerBitmap *layer_bitmap); 创建位图图层 void app_layer_set_bitmap_bitmap(Layer *layer, GBitmap * bitmap); 设置位图图层的位图 P_Layer app_layer_create_scroll(LayerScroll *layer_scroll); 创建滚动图层 void app_layer_set_scroll_text_key(Layer *layer, uint8_t text_key); 设置滚动图层文本地址 P_Layer app_layer_create_geometry(LayerGeometry *layer_geometry); 创建几何图层 P_Layer app_layer_create_multi_menu(LayerMultiMenu *layer_multi_menu); 创建复杂菜单图层 12 表盘及应用开发API int8_t app_layer_add_multi_menu_item(LayerMultiMenu *lmm, MultiMenuItem *mmi); 添加菜单项 int8_t app_layer_add_multi_menu_element(MultiMenuItem *mmi, Element *e); 添加某菜单项中元素 void app_layer_set_multi_menu_selected(Layer *layer, uint8_t selected); 设置菜单图层被选择项 int8_t app_layer_get_multi_menu_selected(Layer *layer); 获取菜单图层被选择项 void app_layer_set_multi_menu_item_text(Layer *layer, int8_t item_id, int8_t element_id, const char *text); 设置菜单图层菜单项文本 void app_layer_set_multi_menu_item_bitmap(Layer *layer, int8_t item_id, int8_t element_id, GBitmap *bitmap); 设置菜单图层菜单项图片 P_Layer app_layer_create_block(LayerBlock *layer_block); 创建块图层 int8_t app_layer_add_block_element(LayerBlock *block, BElement *element); 添加块中元素 void app_layer_set_block_element_text(Layer *layer, int8_t element_id, char *text, int8_t text_size); 设置块元素文本信息 void app_layer_get_block_element_text(Layer *layer, int8_t element_id, char *text, int8_t text_size); 获取块中元素文本 void app_layer_set_block_element_bitmap(Layer *layer, int8_t element_id, GBitmap *bitmap); 设置块元素图片信息 int8_t app_layer_get_block_element_selected(Layer *layer); 获取块当前选择元素序列 void app_layer_set_block_element_selected(Layer *layer, int8_t selected); 设置块当前选择元素序列 void app_layer_set_block_element_frame(Layer *layer, int8_t element_id, GRect *rect); 设置块中元素框架 void app_layer_set_block_element_color(Layer *layer, int8_t element_id, enum GColor color); 设置块元素颜色 void app_layer_set_bg_color(Layer *layer, enum GColor color); 设置背景颜色 void app_layer_set_selected_status(Layer *layer, uint8_t status); 设置图层可被选择状态 13 表盘及应用开发API 2.4.1 窗口 app_window_create Window *app_window_create(void) 接口名 功能说明 创建一个默认窗口 参数说明 返回值 参考 其他 屏幕上显示的任何数据,都必须建立在一个可见的窗口上。 只有创建了窗口,才能在窗口上添加图层。 app_window_add_layer uint8_t app_window_add_layer(Window *window, Layer *layer) 接口名 功能说明 给窗口添加图层 参数说明 window 需要添加图层的窗口指针 layer 图层指针 返回值 成功:返回图层ID 失败:-1 参考 其他 window上的所有显示内容,以图层为单位 app_window_click_subscribe void app_window_click_subscribe(Window *window, enum ButtonId button_id, 接口名 ClickCallback click_callback) 功能说明 注册按键的回调函数 参数说明 window 要注册按键事件的窗口指针 button_id 按键类型ID click_callback 按键回调函数 返回值 参考 其他 app_window_stack_push int8_t app_window_stack_push(Window *window) 接口名 功能说明 把窗口放置窗口栈顶显示 14 表盘及应用开发API 参数说明 window 需要放置的窗口 返回值 窗口ID 参考 其他 如果窗口不属于前台运行程序,则不会显示。 如果应用在前台有定时更新界面的操作,务必保留该窗口ID,之后通过 app_window_stack_get_window_by_id获取窗口指针,再调用其他相关接口。 app_window_stack_pop void app_window_stack_pop(Window *window) 接口名 功能说明 从窗口栈pop出窗口 参数说明 window 需要pop的窗口 返回值 参考 其他 app_window_update void app_window_update(Window *window) 接口名 功能说明 如果window是当前窗口,则重新显示 参数说明 window 窗口指针 返回值 参考 其他 如果窗口不属于前台运行程序,则不会显示 app_window_stack_replace_window 接口名 int8_t app_window_stack_replace_window(Window *old_window, Window *new_window) 功能说明 使用新的窗口替换旧窗口 参数说明 old_window 旧窗口指针 new_window 新窗口指针 返回值 参考 其他 app_window_stack_get_window_by_id 接口名 Window *app_window_stack_get_window_by_id(int8_t id); 功能说明 根据窗口ID获取窗口指针句柄 15 表盘及应用开发API 参数说明 id 窗口ID 返回值 窗口句柄 NULL 参考 其他 app_window_set_up_button void app_window_set_up_button(Window *window) 接口名 功能说明 设置向上按键,当需要向上选择图层时使用,在注册的向上按键回调函数中使用。 参数说明 window 窗口指针 返回值 参考 其他 app_window_set_down_button void app_window_set_down_button(Window *window) 接口名 功能说明 设置向下按键,当需要向下选择图层时使用,在注册的向下按键回调函数中使用。 参数说明 window 窗口指针 返回值 参考 其他 app_window_timer_subscribe 接口名 int8_t app_window_timer_subscribe(Window *window, uint32_t millis, AppServiceTimerCallback timer_callback, void *context); 功能说明 窗口定时器 参数说明 window 窗口指针 mills 调用间隔 timer_callback 回调函数 context 上下文参数 返回值 成功:返回定时器ID 失败:-1 参考 其他 窗口定时器在窗口销毁时,会自动注销。 16 表盘及应用开发API app_window_get_layer_by_id Layer * app_window_get_layer_by_id(Window *window, int8_t id) 接口名 功能说明 根据图层ID获取窗口中该图层指针 参数说明 window 窗口指针 id 图层ID 返回值 成功:返回图层指针 失败:NULL 参考 其他 app_window_replace_layer int8_t app_window_replace_layer(Window *window, Layer *old_layer, Layer *new_layer) 接口名 功能说明 用新的图层替换窗口中某旧图层 参数说明 window 窗口指针 old_layer 旧图层指针 new_layer 新图层指针 返回值 成功:0 失败:-1 参考 其他 app_window_set_current_selected_layer void app_window_set_current_selected_layer(Window *window, int8_t id) 接口名 功能说明 设置当前窗口中被选择的图层ID 参数说明 window 窗口指针 id 图层ID 返回值 参考 其他 app_window_disable_layer void app_window_disable_layer(Window *window, Layer *layer) 接口名 功能说明 设置窗口中某图层不可用 参数说明 window 窗口指针 layer 图层指针 返回值 参考 17 表盘及应用开发API 其他 2.4.2 图层 app_layer_create_text Layer *app_layer_create_text(LayerText *layer_text) 接口名 功能说明 创建一个文本图层 参数说明 layer_text 文本结构指针 返回值 成功:文本图层指针 失败:NULL 参考 其他 文本图层只能显示一行文字 app_layer_set_text_text 接口名 void app_layer_set_text_text(Layer *layer, char *text); 功能说明 设置文本图层文本内容 参数说明 layer_text 文本图层指针 text 文本内容 返回值 参考 其他 app_layer_create_bitmap Layer *app_layer_create_bitmap(LayerBitmap *layer_bitmap) 接口名 功能说明 创建一个位图图层 参数说明 layer_bitmap 位图结构指针 返回值 成功:位图图层指针 失败:NULL 参考 其他 app_layer_set_bitmap_bitmap 接口名 void app_layer_set_bitmap_bitmap(Layer *layer, GBitmap * bitmap); 功能说明 设置一个位图图层显示的位图 参数说明 layer 位图图层指针 18 表盘及应用开发API bitmap 位图指针 返回值 参考 其他 app_layer_create_scroll 接口名 P_Layer app_layer_create_scroll(LayerScroll *layer_scroll); 功能说明 创建一个滚动图层 参数说明 layer_scroll 滚动结构指针 返回值 成功:滚动图层指针 失败:NULL 参考 其他 滚动图层可以显示多行文字,并且具有翻页功能,最多显示5页。 app_layer_set_scroll_text_key void app_layer_set_scroll_text_key(Layer *layer, uint8_t text_key) 接口名 功能说明 设置滚动图层显示的文本KEY 参数说明 layer 图层指针 text_key 文本key(通过存储接口把文本内容放在该key中) 返回值 参考 其他 app_layer_create_geometry Layer *app_layer_create_geometry(LayerGeometry *layer_geometry) 接口名 功能说明 创建一个几何图层 参数说明 layer_geometry 几何结构指针 返回值 成功:图层指针 失败:NULL 参考 其他 在几何结构中可以添加多个几何图形。 app_layer_create_multi_menu Layer *app_layer_create_multi_menu(LayerMultiMenu *layer_multi_menu) 接口名 功能说明 创建一个菜单图层 参数说明 layer_multi_menu 菜单结构指针 19 表盘及应用开发API 返回值 成功:图层指针 失败:NULL 参考 其他 菜单图层中菜单项可以不等宽,可以自定义每个菜单项中显示什么类容及其排列。 app_layer_add_multi_menu_item void app_layer_add_multi_menu_item(LayerMultiMenu *lmm, MultiMenuItem *mmi) 接口名 功能说明 添加菜单项 参数说明 lmm 菜单图层指针 mmi 菜单项元素指针 返回值 参考 其他 建议在一个菜单项,最多设置三个菜单项,如果要显示的菜单项过多,可以每次创建新的 菜单图层(添加最新要显示的菜单项)替换旧的菜单图层。 app_layer_add_multi_menu_element void app_layer_add_multi_menu_element(MultiMenuItem *mmi, Element *e) 接口名 功能说明 添加菜单项中元素 参数说明 mmi 菜单项指针 e 菜单项中元素指针 返回值 参考 其他 app_layer_set_multi_menu_selected void app_layer_set_multi_menu_selected(Layer *layer, uint8_t selected) 接口名 功能说明 设置菜单图层被选择项 参数说明 layer 图层指针 selected 被选择菜单项序列 返回值 参考 其他 app_layer_get_multi_menu_selected int8_t app_layer_get_multi_menu_selected(Layer *layer) 接口名 功能说明 获取菜单图层被选择项 20 表盘及应用开发API 参数说明 layer 图层指针 返回值 当前被选择的菜单项序列 参考 其他 app_layer_set_multi_menu_item_text 接口名 void app_layer_set_multi_menu_item_text(Layer *layer, int8_t item_id, int8_t element_id, const char *text); 功能说明 设置菜单图层中某菜单项中某元素文本内容 参数说明 layer 图层指针 item_id 菜单项序列 element_id 菜单项中元素序列 text 文本指针 返回值 参考 其他 app_layer_set_multi_menu_item_bitmap 接口名 void app_layer_set_multi_menu_item_bitmap(Layer *layer, int8_t item_id, int8_t element_id, GBitmap *bitmap); 功能说明 设置菜单图层中某菜单项中某元素位图 参数说明 layer 图层指针 item_id 菜单项序列 element_id 菜单项中元素序列 bitmap 位图指针 返回值 成功 图层指针 失败 NULL 参考 其他 app_layer_create_block 接口名 P_Layer app_layer_create_block(LayerBlock *layer_block); 创建块图层 功能说明 每个块图层最多可以包含4个文本元素或位图元素或其组合。 参数说明 layer_block 块结构指针 返回值 参考 21 表盘及应用开发API 其他 app_layer_add_block_element 接口名 int8_t app_layer_add_block_element(LayerBlock *block, BElement *element); 功能说明 添加块中元素 参数说明 block 块结构指针 element 块元素指针 返回值 参考 其他 app_layer_set_block_element_text 接口名 void app_layer_set_block_element_text(Layer *layer, int8_t element_id, char *text, int8_t text_size); 功能说明 设置块图层中某元素文本内容 参数说明 layer 图层指针 element_id 块中元素序列 text 文本内容指针 text 文本大小 返回值 参考 其他 块中文本元素最多只能显示4个汉字 app_layer_get_block_element_text 接口名 void app_layer_get_block_element_text(Layer *layer, int8_t element_id, char *text, int8_t text_size); 功能说明 获取块图层中某元素文本内容 参数说明 layer 图层指针 element_id 块中元素序列 text 文本内容指针 text 文本大小 返回值 参考 其他 块中文本元素最多只能显示4个汉字 22 表盘及应用开发API app_layer_set_block_element_bitmap 接口名 void app_layer_set_block_element_bitmap(Layer *layer, int8_t element_id, GBitmap *bitmap); 功能说明 设置块图层中某元素图片内容 参数说明 layer 图层指针 element_id 块中元素序列 bitmap 图片内容 返回值 参考 其他 app_layer_get_block_element_selected 接口名 int8_t app_layer_get_block_element_selected(Layer *layer); 功能说明 获取块中当前被选择的元素序列 参数说明 layer 图层指针 返回值 元素序列 参考 其他 app_layer_set_block_element_selected 接口名 void app_layer_set_block_element_selected(Layer *layer, int8_t selected); 功能说明 设置块中被选择的元素 参数说明 layer 图层指针 selected 元素序列 返回值 参考 其他 app_layer_set_block_element_frame 接口名 void app_layer_set_block_element_frame(Layer *layer, int8_t element_id, GRect *rect); 功能说明 设置块中元素显示的位置 参数说明 layer 图层指针 element_id 元素序列号 rect 显示位置 返回值 参考 23 表盘及应用开发API 其他 app_layer_set_block_element_color 接口名 void app_layer_set_block_element_color(Layer *layer, int8_t element_id, enum GColor color); 功能说明 设置块中元素颜色 参数说明 layer 图层指针 element_id 元素序列号 color 颜色 返回值 参考 其他 目前只支持bound_width为1 app_layer_set_bg_color 接口名 void app_layer_set_bg_color(Layer *layer, enum GColor color); 功能说明 设置图层背景颜色 参数说明 layer 图层指针 color 颜色 返回值 参考 其他 app_layer_set_selected_status void app_layer_set_selected_status(Layer *layer, uint8_t status) 接口名 功能说明 设置图层边界 参数说明 layer 图层指针 status 选择状态 LAYER_UNSELECTED 0 不能被选择 LAYER_SELECTED 1 能被选择 返回值 参考 其他 24 表盘及应用开发API 2.4.3 类型定义 enum LayerType enum LayerType 接口名 功能说明 图层类型 参数说明 LayerTypeBitmap, //位图 LayerTypeText, //文本 LayerTypeScroll, //滚动 LayerTypeGeometry, //几何 LayerTypeMultiMenu, //复杂菜单 LayerTypeStatusBar, //状态栏 LayerTypeBlock //块 返回值 参考 其他 struct LayerBitmap struct LayerBitmap 接口名 功能说明 位图图层结构体 参数说明 GBitmap bitmap; //位图数据 GRect frame; //显示位图的矩形结构 enum GAlign alignment; //对齐方式 返回值 参考 其他 struct LayerText struct LayerText 接口名 功能说明 文本图层结构体 参数说明 const char *text; //文本数据 GRect frame; //显示文本的矩形结构 enum GAlign alignment; //对齐方式 uint8_t font_type:7; //字体类型 uint8_t bound_width:1; //边界宽度 返回值 参考 其他 struct LayerScroll struct LayerScroll 接口名 25 表盘及应用开发API 功能说明 滚动图层结构体 参数说明 GRect frame; //显示位图的矩形结构 uint16_t key; //文本存放地址key uint16_t total_bytes; //文本字节数 uint8_t font_type; //字体类型 uint8_t gap; //行间 enum GColor color; //颜色 uint8_t bound_width; //边界宽度 返回值 参考 其他 struct LayerMultiMenu struct LayerMultiMenu 接口名 功能说明 菜单图层结构体 参数说明 GRect frame; //显示菜单的矩形结构 返回值 参考 其他 struct MultiMenuItem struct MultiMenuItem 接口名 功能说明 菜单项 参数说明 GRect frame; //菜单项矩形结构指针 返回值 参考 其他 struct Element struct Element 接口名 功能说明 菜单项中元素 参数说明 void *content; //元素类容 GRect frame; //存放元素矩形结构指针 uint8_t type:1; //元素类型 uint8_t font:7; //字体,如果是文字 返回值 参考 其他 26 表盘及应用开发API struct LayerGeometry struct LayerGeometry 接口名 功能说明 几何图层结构体 参数说明 uint8_t num; //几何图形的个数 P_Geometry *p_g; //几何图形指针数组 返回值 参考 其他 struct Geometry struct Geometry 接口名 功能说明 几何图形属性 参数说明 enum GeometryType type; //几何类型 enum FillType fill_type; //填充类型 enum GColor color; //颜色 void *element; //构造要素,type类型不同,element为不同结构 返回值 参考 其他 enum GeometryType enum GeometryType 接口名 功能说明 几何类型 参数说明 GeometryTypeLine, //直线 GeometryTypePolygon, //多边形 GeometryTypeCircle, //圆 GeometryTypeArc, //弧 返回值 参考 其他 struct Click struct Click 接口名 功能说明 按键结构体 参数说明 ButtonId id 按键类型 ClickCallback callback 对应的按键回调函数 返回值 参考 其他 27 表盘及应用开发API enum ButtonId enum ButtonId 接口名 功能说明 按键类型 参数说明 ButtonIdBack 回退 ButtonIdUp 向上 ButtonIdSelect选择 ButtonIdDown 向下 返回值 参考 其他 ClickCallback typedef void(* ClickCallback)( void *context) 接口名 功能说明 按键回调函数 参数说明 context 按键传递的内容 返回值 参考 其他 struct GRect struct GRect 接口名 功能说明 矩形结构体 参数说明 GPoint origin 矩形左上角坐标 GSize size 矩形的高度和宽度 返回值 参考 其他 struct GPoint struct GPoint 接口名 功能说明 坐标结构体 参数说明 int16_t x X轴位置 int16_t y Y轴位置 返回值 参考 其他 坐标以屏幕的左上角为源点(0,0),向下为Y轴延伸,向右为X轴延伸 28 表盘及应用开发API struct GSize struct GSize 接口名 功能说明 大小结构体 参数说明 int16_t h 高度 int16_t w 宽度 返回值 参考 其他 struct GBitmap struct GBitmap 接口名 功能说明 位图数据结构体 参数说明 uint8_t height; //像素高度 uint8_t width; //像素宽度 返回值 参考 其他 enum GAlign struct GAlign 接口名 功能说明 显示方式 参数说明 GAlignCenter 居中 GAlignTopLeft 左上 GAlignTopRight 右上 GAlignTop 顶部 GAlignLeft 靠左 GAlignBottom 底部 GAlignRight 靠右 GAlignBottomRight 右下 GAlignBottomLeft 左下 返回值 参考 其他 enum GColor struct GColor 接口名 功能说明 颜色定义 参数说明 GColorBlack 黑色 GColorWhite 白色 返回值 29 表盘及应用开发API 参考 其他 struct GPathInfo struct GPathInfo 接口名 功能说明 多边形坐标结构体 参数说明 uint32_t num_points 坐标个数 GPoint *points 坐标指针 返回值 参考 其他 enum FillType enum FillType 接口名 功能说明 填充类型 参数说明 FillArea 区域填充 FillOutline 边界填充 返回值 参考 其他 struct GFont typedef void * GFont 接口名 功能说明 字体结构 参数说明 uint8_t height; //字体高度像素 uint8_t width; //字体宽度像素 uint8_t type; //字体类型 返回值 参考 其他 AnimationType enum AnimationType 接口名 功能说明 动画类型 参数说明 AnimationType0 无动画 AnimationType1 待定 AnimationType2 待定 返回值 30 表盘及应用开发API 参考 其他 3. Demo 3.1 文本demo #include #include #include #include "app_sdk.h" #include "app_res.h" int main() { /*创建窗口*/ P_Window p_window = app_window_create(); if (NULL == p_window) { return 0; } /*创建文本图层框架范围*/ GRect frame = {{0, 45}, {40, 128}}; unsigned char buf[]= "麦步欢迎您!"; /*生成文本结构体, 依次为文本内容、文本显示框架、对齐方式、字体字号*/ LayerText text = {buf, frame, GAlignCenter, U_GBK_SIMSUNBD_16}; /*创建文本图层*/ P_Layer layer = app_layer_create_text(&text); /*添加文本图层到窗口中*/ app_window_add_layer(p_window, layer); /*把窗口放入窗口栈中显示*/ app_window_stack_push(p_window); 31 表盘及应用开发API return 1; } 3.2 位图demo #include #include #include #include "app_sdk.h" #include "app_res.h" int main() { /*创建窗口,窗口中可以添加唯一的基本元素图层*/ P_Window p_window = app_window_create(); if (NULL == p_window) { return 0; } /*创建位图图层显示框架范围,起始点{x=40,y=10},屏幕左上角为{0,0},高度宽度{h=64,w=64},位图大小必须小于等于框架*/ GRect frame = {{40, 10}, {64, 64}}; GBitmap bitmap; /*获取位图资源, 宏RES_BITMAP_WATCHFACE_WEATHER_CLOUDY由用户在appinfo.json中配置*/ res_get_user_bitmap(RES_BITMAP_TEST, &bitmap); /*生成位图结构体, 依次为位图资源、显示位置、对齐方式*/ LayerBitmap layer_bitmap = {bitmap, frame, GAlignCenter}; /*创建图层*/ P_Layer layer = app_layer_create_bitmap(&layer_bitmap); /*添加图层到窗口中*/ app_window_add_layer(p_window, layer); /*把窗口放入窗口栈中显示*/ 32 表盘及应用开发API app_window_stack_push(p_window); return 0; } 3.3 菜单demo #include #include #include #include "app_sdk.h" #include "app_res.h" Int main() { /*创建窗口*/ P_Window p_window = NULL; p_window = app_window_create(); MultiMenuItem item; //菜单项 LayerMultiMenu lmm; //菜单结构 Element element; //菜单项中元素 P_Layer menu_layer = NULL; //菜单图层指针 memset(&element, 0, sizeof(Element)); memset(&item, 0, sizeof(MultiMenuItem)); memset(&lmm, 0, sizeof(LayerMultiMenu)); /*设置菜单图层大小*/ GPoint menu_p = {0, 0}; GSize menu_size = {128, 128}; GRect menu_frame = {menu_p, menu_size}; lmm.frame = menu_frame; int8_t i = 0; for (i = 0; i < 4; i++) { memset(&item, 0, sizeof(MultiMenuItem)); /*添加一个菜单项中元素*/ /*设置每个菜单项图标大小,icon_p为相对坐标*/ 33 表盘及应用开发API GPoint icon_p = {4, 6}; GSize icon_size = {28,24}; GRect icon_frame = {icon_p, icon_size}; element.type = ELEMENT_TYPE_BITMAP; GBitmap icon = {0, RES_BITMAP_ICON + i, 28, 24}; element.content = (void *)&icon; element.frame = &icon_frame; app_layer_add_multi_menu_element(&item, &element); /*添加一个菜单项中元素*/ /*设置每个菜单项标题大小, title_p为相对坐标*/ memset(&element, 0, sizeof(Element)); GPoint text_p = {36, 12}; GSize text_size = {16, 92}; GRect text_frame = {text_p, text_size}; element.type = ELEMENT_TYPE_TEXT; char buf[20] = ""; sprintf(buf, "菜单项%d", i+1); element.content = (void *)buf; element.frame = &text_frame; element.font = U_GBK_SIMSUN_16; app_layer_add_multi_menu_element(&item, &element); /*把菜单项添加到菜单中*/ GPoint item_p = {0, 0}; GSize item_size = {40, 128}; GRect item_frame = {item_p, item_size}; item.frame = &item_frame; app_layer_add_multi_menu_item(&lmm, &item); } /*创建菜单图层*/ menu_layer = app_layer_create_multi_menu(&lmm); /*添加图层到窗口*/ int8_t index = 0; index = app_window_add_layer(p_window, menu_layer); /*设置选择该图层*/ app_window_set_current_selected_layer(p_window, index); /*把窗口放入窗口栈中显示*/ app_window_stack_push(p_window); return 0; } 34 表盘及应用开发API 3.4 滚动demo #include #include #include #include "app_sdk.h" #include "app_res.h" #define SCROLL_KEY 200 /*定义向上按键事件*/ void scroll_select_up(void *context) { P_Window wtmp = (P_Window)context; app_window_set_up_button(wtmp); } /*定义向下按键事件*/ 35 表盘及应用开发API void scroll_select_down(void *context) { P_Window wtmp = (P_Window)context; app_window_set_down_button(wtmp); } /*定义后退按键事件*/ void scroll_select_back(void *context) { P_Window p_window = (P_Window)context; app_window_stack_pop(p_window); } int main() { /*创建窗口*/ P_Window p_window = app_window_create(); if (NULL == p_window) { return 0; } char buff[300] = "我们工作在深圳最具科技氛围的南山科技园,毗邻腾讯大厦。"\ "我们专注于让硬件结合互联网,提供好玩的、开放的网络社区服务。"\ "我们希望帮助人们更加快乐地健康生活。"; /*这里需要先创建一个文件KEY, 用来存储滚动图层中需要显示的内容*/ /*为了演示方便,这里定义buf为300字节,实际APP中建议不要申请过大的内存来临时存放数据*/ app_persist_create(SCROLL_KEY, strlen(buff)); app_persist_write_data(SCROLL_KEY, buff, strlen(buff)); int16_t total_bytes = app_persist_get_data_size(SCROLL_KEY); /*初始化滚动结构体, 依次为滚动图层显示框架, 内容文件KEY,需要显示的内容大小、字体字号*/ LayerScroll ls1 = {{{5,10},{108,118}}, SCROLL_KEY, total_bytes, U_GBK_SIMSUN_16}; P_Layer layer1 = app_layer_create_scroll(&ls1); app_window_add_layer(p_window, layer1); /*添加按键事件,实现上下翻页功能*/ app_window_click_subscribe(p_window, ButtonIdDown, scroll_select_down); app_window_click_subscribe(p_window, ButtonIdUp, scroll_select_up); app_window_click_subscribe(p_window, ButtonIdBack, scroll_select_back); 36 表盘及应用开发API /*把窗口放入窗口栈中显示*/ app_window_stack_push(p_window); return 0; } 3.5 几何demo #include #include #include #include "app_sdk.h" #include "app_res.h" int main() { /*创建窗口*/ P_Window p_window = app_window_create(); if (NULL == p_window) { return 0; } Geometry *geometry[6]; /*创建存储几何图形的指针数组, 几何图形数量不能超过指针数组大小*/ uint8_t num = 0; LayerGeometry layer_geometry; /*几何图层结构体*/ memset(geometry, 0, sizeof(geometry)); /*直线*/ Line l = {{0,0}, {128,128}}; //直线的起始点坐标 /*几何结构体,依次为几何类型、填充类型、填充颜色、具体的几何图结构*/ Geometry lg = {GeometryTypeLine, FillOutline, GColorBlack, (void*)&l}; geometry[num++] = ≶ //存入指针数组中 /*圆*/ Circle c = {{64,64}, 20};//圆心为{64,64},半径为50 Geometry cg = {GeometryTypeCircle, FillArea, GColorBlack, (void*)&c}; 37 表盘及应用开发API geometry[num++] = &cg; /*多边形*/ GPoint ppoint[4] = {{25,15}, {60,15}, {60,105}, {25,105}};//多边形各个点坐标 Polygon p = {4, ppoint}; Geometry pg = {GeometryTypePolygon, FillOutline, GColorBlack,(void*)&p}; geometry[num++] = &pg; /*初始化几何结构体*/ layer_geometry.num = num; layer_geometry.p_g = geometry; /*创建几何图层*/ P_Layer layer = app_layer_create_geometry(&layer_geometry); app_window_add_layer(p_window, layer); /*把窗口放入窗口栈中显示*/ app_window_stack_push(p_window); return 0; } 38
/
本文档为【麦步智能手表_表盘及应用开发API】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索