zoukankan      html  css  js  c++  java
  • Mocor平台SC6531模块添加

           

    1. 创建模块文件夹(假设模块名为XXX,以下类同):

      a) 在“%工程目录%MS_MMIsourcemmi_appapp”目录下创建模块文件夹“xxx”,并在其下创建名为“c”和“h”两个子文件夹,分别用于保存模块的源代码和头文件。

      b) 在“%工程目录%projectpublic_mkmmi_res_128x64xxx”目录下新建名为“MMI_RES_DEFAULT”的文件夹,并在其中创建“ANIM”、“DATA”、“IMAGE”三个子文件夹。(提醒:建立完毕后需加至相应的压缩包内)

    2. 创建模块相关文件:

      a) 在“h”文件夹下分别创建以下文件:xxx_mdu_def.h、mmixxx_export.h、mmixxx_id.def、mmixxx_id.h、mmixxx_image.h、mmixxx_menutable.def、mmixxx_menutable.h、mmixxx_menu_id.def、mmixxx_nv.h、mmixxx_text.h,各文件功能简述如下:

    • xxx_mdu_def.h:模块资源定义(包含图片、字符串等)
    • mmixxx_export.h:模块外部接口,用于声明各函数,供其它模块调用
    • mmixxx_id.def:存放WIN_ID数组的元素(文件被mmixxx_id.c中的数组作为元素包含)
    • mmixxx_id.h:定义CTRL_ID枚举类型
    • mmixxx_image.h:定义IMAGE_ID枚举类型,但具体的枚举元素在xxx_mdu_def.h添加(无须改动)
    • mmixxx_menutable.def:存放MENU_GROUP_ID枚举的元素
    • mmixxx_menutable.h:定义MENU_GROUP_ID和MENU_ID两个枚举类型,但具体的枚举元素分别在mmixxx_menutable.def和mmixxx_menu_id.def中添加(MENU_GROUP_ID和MENU_ID需要被模块的其它文件使用,因此将定义直接放在头文件中,无须改动)
    • mmixxx_menu_id.def:存放MENU_ID枚举的元素
    • mmixxx_nv.h:定义NV的ITEM_ID枚举类型
    • mmixxx_text.h:定义TEXT_ID枚举类型,但具体的枚举元素在xxx_mdu_def.h添加(无须改动)

      b) 在“c”文件夹下分别创建以下文件:mmixxx_app.c、mmixxx_id.c、mmixxx_menutable.c、mmixxx_nv.c、mmixxx_wintab.c,各文件功能简述如下:

    • mmixxx_app.c:定义模块的功能函数,供外部调用,功能函数的声明在mmixxx_export.h中
    • mmixxx_id.c:WIN_ID数组的定义,但具体的数组元素在mmixxx_id.def添加(无须改动)
    • mmixxx_menutable.c:组合各级MENU_GROUP的MENU(当模块较大时,可将各级菜单组分开于多个文件中)
    • mmixxx_nv.c:NV的ITEM_ID内存空间申请,将ITEM_ID所需空间组合成数组,因此数组元素要与mmixxx_nv.h中的ITEM_ID一一对应
    • mmixxx_wintab.c:定义WINDOWS_TABLE及其回调函数

    3. 在工程文件mmi_res_prj_def.h中添加XXX模块的ID:

    1 RES_ADD_MODULE(MMI_MODULE_XXX,"\xxx\xxx_mdu_def.h")         // MMI_MODULE_XXX为模块ID,"\xxx\xxx_mdu_def.h"为模块路径

    4. 修改mk文件:

      a) 在resource.mk(路径:%工程目录%make esource)中增加模块定义路径和文件名:

    • 在相应位置添加:MS_MMI/source/mmi_app/app/xxx/h
    • 在“SOURCE +=”表达式最后增加xxx_mdu_def.h

      b) 在app.mk(路径:%工程目录%makeapp)中增加模块定义路径和文件名:

    • 在相应位置添加:MINCPATH += MS_MMI/source/mmi_app/app/xxx/h
    • 在相应位置添加:MSRCPATH += MS_MMI/source/mmi_app/app/xxx/c
    • 在“SOURCES =”表达式最后增加模块中所有c文件的文件名

    特别声明:模块添加完毕后无法在mainapp.c之流中直接调用(即使是在其中包含了相应的头文件),调用模块还是得新建一级菜单后在其下(或在已有菜单下)附加模块功能。


    说明:以下内容为本人在工程中添加模块的具体实践,仅供参考。(模块源码不便上传,如若需要请另外联系本人。)

    添加模块需要修改工程中的文件罗列如下(模块名为DEMO):

    • 在mainmenu_win.c的HandleMainMenuWinMsg()函数(文件1985行前后)中的switch(msg_id)结构中添加新case分支:
    1 case ID_DEMO_MULTIMEDIA:  //ID_DEMO_MULTIMEDIA为MENU_ID
    2      MMIDEMO_EnterMultimediaWin();
    3      break;

             注意:需要包含mmidemo_export.h和mmidemo_menutable.h两个头文件

    • 在mmi_menutable.c的menu_mainmenu_icon []数组(文件428行前后)中添加元素:
    1 {ID_DEMO_MULTIMEDIA,TIP_NULL,{STXT_OK,TXT_NULL,STXT_RETURN},TXT_DEMO_MULTIMEDIA,IMAGE_DEMO_MULTIMEDIA_1,0,0,MENU_NULL},

      注意:需要包含mmidemo_image.h、mmidemo_text.h和mmidemo_menutable.h 三个头文件

    • 在mmimain.c的InitMMIModule()函数(文件1746行前后)中添加模块初始化函数:
    1 MMIAPIDEMO_InitModule();

      注意:需要包含mmidemo_export.h头文件

      运行效果(仅截取模拟器屏幕):

       

    (欢迎转载,转载请注明出处!谢谢。)

  • 相关阅读:
    phpstorm设置内存限制的方法
    PHP str_replace的用法
    php PDO getlastsql写法
    css3 transform做动画
    PHP判断是否关注微信公众号
    nginx目录安全设置
    BaseAdapter自定义适配器——思路详解
    sys.path
    plt.rcParams[]
    %matplotlib inline
  • 原文地址:https://www.cnblogs.com/q10040/p/8116994.html
Copyright © 2011-2022 走看看