麦步社区-论坛

标题: 我搞的显示GPS表盘源码 欢迎拍砖 [打印本页]

作者: 1076964977    时间: 2016-7-18 21:49
标题: 我搞的显示GPS表盘源码 欢迎拍砖

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "maibu_sdk.h"
#include "maibu_res.h"

static int32_t g_window_id = -1;
static int8_t g_layer_id_1 = -1;
static int8_t g_layer_id_2 = -1;

void GPS_phone_recv_callback(enum ERequestPhone type, void *context)
{
        P_Window p_window = app_window_stack_get_window_by_id(g_window_id);
        char url1[50];
char url2[50];
SGpsAltitude g_gps_altitude;
        memcpy(&g_gps_altitude, (SGpsAltitude *)context, sizeof(SGpsAltitude));
         sprintf(url1, "纬度%s", g_gps_altitude.lat);               
     sprintf(url2, "经度%s", g_gps_altitude.lon);
         P_Layer p_layer_1 = app_window_get_layer_by_id(p_window, g_layer_id_1);
         P_Layer p_layer_2 = app_window_get_layer_by_id(p_window, g_layer_id_2);
         app_layer_set_text_text(p_layer_1, url1);
         app_layer_set_text_text(p_layer_2, url2);
         app_window_update(p_window);
}


void GPS_timer_callback(date_time_t tick_time, uint32_t millis, void *context)
{    P_Window p_window = app_window_stack_get_window_by_id(g_window_id);
         P_Layer p_layer_1 = app_window_get_layer_by_id(p_window, g_layer_id_1);
         P_Layer p_layer_2 = app_window_get_layer_by_id(p_window, g_layer_id_2);
         app_layer_set_text_text(p_layer_1, "AA");
         app_layer_set_text_text(p_layer_2, "BB");
         app_window_update(p_window);
maibu_comm_request_phone(ERequestPhoneGPSAltitude,  NULL,0);       
}

int main()
{
//simulator_init();
        P_Window pPP_window = app_window_create();
        if (NULL == pPP_window)
        {
                return 0;
        }
        maibu_comm_register_phone_callback(GPS_phone_recv_callback);
        GRect frame1 = {{0, 45}, {40, 128}};
        LayerText text1 = {"AA", frame1, GAlignCenter, U_GBK_SIMSUNBD_16};       
        GRect frame2 = {{0, 80}, {40, 128}};
        LayerText text2 = {"BB", frame2, GAlignCenter, U_GBK_SIMSUNBD_16};
         P_Layer layer1 = app_layer_create_text(&text1);
        g_layer_id_1=app_window_add_layer(pPP_window, layer1);       
        P_Layer layer2 = app_layer_create_text(&text2);
        g_layer_id_2=app_window_add_layer(pPP_window, layer2);
        g_window_id=app_window_stack_push(pPP_window);       
        app_window_timer_subscribe(pPP_window, 5000, GPS_timer_callback, (void *)pPP_window);
//simulator_wait();
        return 1;

}



作者: 不贰小    时间: 2016-7-19 09:48

作者: fengyun88    时间: 2016-7-19 13:17
其实还是挺简单,就是觉得应用场景难找
作者: dualxu    时间: 2016-8-9 06:17
这个layer1和layer2有重叠的没关系吧?
作者: 1076964977    时间: 2016-8-9 13:51
没有重叠啊。重叠了有没有关系我觉得您试验一下:)
作者: dualxu    时间: 2016-8-9 16:26
本帖最后由 dualxu 于 2016-8-9 16:34 编辑
1076964977 发表于 2016-8-9 13:51
没有重叠啊。重叠了有没有关系我觉得您试验一下:)

GRect frame1 = {{0, 45}, {40, 128}};
GRect frame2 = {{0, 80}, {40, 128}};  不是有{{0, 80}, {5, 128}}; 这个部分被重叠了麽?
还是我X,Y坐标看错了
作者: 步往康来    时间: 2016-8-9 22:03
如何生成表盘文件呢
作者: 1076964977    时间: 2016-8-10 09:56
步往康来 发表于 2016-8-9 22:03
如何生成表盘文件呢

随便找个例程 把C文件里的东西删了换成我的这一堆代码 编译就出来了
作者: 1076964977    时间: 2016-8-10 10:01
dualxu 发表于 2016-8-9 16:26
GRect frame1 = {{0, 45}, {40, 128}};
GRect frame2 = {{0, 80}, {40, 128}};  不是有{{0, 80}, {5, 128} ...

struct GRect
接口名        struct GRect

功能说明        矩形结构体
参数说明        GPoint origin  矩形左上角坐标
GSize size 矩形的高度和宽度

你看一看GRect的结构,第一个定义的是左上角坐标,所以0,45和0,80是不重合的


作者: dualxu    时间: 2016-8-10 10:58
嗯,实话说我还真是实际在模拟器上测试过

测试代码如下,确实看到重叠的,你试试:

GRect frame1 = {{0, 45}, {40, 128}};
        LayerText text1 = {"AA", frame1, GAlignBottomLeft, U_GBK_SIMSUNBD_16};        
        GRect frame2 = {{0, 80}, {40, 128}};
        LayerText text2 = {"BB", frame2, GAlignTopLeft, U_GBK_SIMSUNBD_16};
作者: dualxu    时间: 2016-8-10 10:59
本帖最后由 dualxu 于 2016-8-10 11:00 编辑
1076964977 发表于 2016-8-10 10:01
struct GRect
接口名        struct GRect
高度上有重合,45+40>80啦
GRect frame1 = {{0, 45}, {40, 128}};
        LayerText text1 = {"AA", frame1, GAlignBottomLeft, U_GBK_SIMSUNBD_16};        
        GRect frame2 = {{0, 80}, {40, 128}};
        LayerText text2 = {"BB", frame2, GAlignTopLeft, U_GBK_SIMSUNBD_16};

作者: 1076964977    时间: 2016-8-10 11:04
dualxu 发表于 2016-8-10 10:59
高度上有重合,45+40>80啦
GRect frame1 = {{0, 45}, {40, 128}};
        LayerText text1 = {"AA", frame ...

还真是重合了一点。你调整一下看看:)




欢迎光临 麦步社区-论坛 (http://bbs.maibu.cc/) Powered by Discuz! X3.2