原创 数据类型转换在msOS灵活运用

2013-9-4 16:55 2229 35 40 分类: 消费电子

     一般转换都是用数组,结构体及指针,这样是便于以后函数操作。灵活的运用宏定义,编程更加简洁。

举例消息处理方法应用:

    如下的定义为在处理消息时候用到很方便,把消息类型和消息值最后封装在一起。

灵活的处理了Uint和Byte 之间转换。

 

#define UintToByte3(data)               ((byte *)(&(data)))[3]
#define UintToByte2(data)               ((byte *)(&(data)))[2]
#define UintToByte1(data)               ((byte *)(&(data)))[1]
#define UintToByte0(data)               ((byte *)(&(data)))[0]

#define UintToUshort1(data)             ((ushort *)(&(data)))[1]
#define UintToUshort0(data)             ((ushort *)(&(data)))[0]

#define GetMessageType(data)            UintToByte3(data) 
#define GetMessageData(data)            (data & 0x00FFFFFF)

消息封装处理函数:

void PostMessageToLogicTask(MessageType messageType, uint data)
{
    bool postMessage;

    if (messageType != TimerMessageType)
    {
        UintToByte3(data) = messageType;
    }
   
    postMessage = System.Os.PostMessageQueue(System.Device.MessageQueuePoint, (void *)data); 
    Assert(postMessage);
}

特别说明:MessageType 是枚举型,定义的值为Byte 类型。详细定义为如下

typedef enum
{
    KeyMessageType      = 0xFF,
   
    UartMessgeType      = 0xFE,  

    TimerMessageType    = 0xF0 

}MessageType;

 

更巧妙的定义,大家一起帮忙分析为什么可以这样定义,用引号来美化编程界面。


Menu.WorkForm.BackTextPoint = "频率          Hz功率   %       W电压    电流    温度   C        ";

 

    App.Menu.WorkForm.BackTextPoint =

                                      "频率          Hz"
                                      "功率   %       W"
                                      "电压    电流    "
                                      "温度   C        ";

上面二种定义为啥功能一样。欢迎各位探讨。

typedef struct
{
    const byte* BackTextPoint;
    Chart     * ChartPoint;
    Label     * LabelPoint;
    TextBox   * TextBoxPoint;
    void      * FocusTextBoxDataPoint;
}Form;


欢迎各位与我一起学习ARM 技术,我的E-MIAL:timeisours@163.com,web:www.51buddy.com,QQ:158377757
 

PARTNER CONTENT

文章评论5条评论)

登录后参与讨论

ND7 2014-3-27 02:11

呵呵,这里是美法时差。我们这儿早上,你们那儿是下午^_^

用户1254902 2014-3-27 00:57

是这样,就是把中法时差搞反了,我这里早上你们已经下午了。

用户1580874 2014-3-25 11:18

继续期待

用户528170 2014-3-24 19:03

不知你15年后还会有这样的想法吗!

用户528170 2014-3-24 19:03

不知你15年后还会有这样的想法吗!

用户614020 2014-3-24 09:49

不只是搞技术的,有个在香港工作的朋友,他老板是法国人,很努力的说~

用户1277994 2014-3-24 09:42

做IC的研发真不容易!不知是不是被亚洲的公司给害的。

用户1096501 2014-3-20 17:40

一样,我的美国同事们,一点也不懒,非常非常辛苦的说。敬佩!

用户1742363 2014-3-20 08:46

精神支撑着梦想和这个汗液的发展。。。

用户1674662 2014-3-19 22:36

赞 ··等下文··
相关推荐阅读
用户1711683 2014-05-08 06:32
亚马逊智能手机 解读
  亚马逊智能手机 查询各大网站,还真看到介绍出入不大的介绍,难道是为了前期推广之用还是?请各位高手解答为什么没有上市,外面的介绍这么详细且正确呢? 详细如下:     亚马逊智能手机 编辑 ...
用户1711683 2014-05-05 06:56
云存储及反向控制(51buddy)
                 软硬开发工作总算在青年节全部完成,恭喜。恭喜。      成本非常低廉,硬件和软件支持(云服务器服务2年)大约在300元。    ...
用户1711683 2013-12-07 00:47
PSU 设计学习与探讨
       最近学习,老是感觉身边没有一个程控电源,在网络里找到开源的,查询淘宝没有看到有程控电源学习扳子卖,所以想做自己DIY,看到元器件不知道如何采购,本着学习原则,想先购一批回来,大概投入...
用户1711683 2013-12-03 17:59
上下拉电阻大小计算
            上下拉电阻大小计算,一直很困惑,这些大小计算来路,还恳请各位帮忙引导~~决定因子有那些.   ...
用户1711683 2013-12-03 17:59
LDO 电路中LC 计算来由
LC 电路相关属性计算来由,这些困惑小弟很久,还请各位帮忙引导,L 的阻抗大小跟什么有关系,及感抗,C的大小确定. ...
用户1711683 2013-12-02 11:35
0欧姆电阻学习
         如下为收集到的资料,可是没有实力,还是不能完全理解,还肯请各位帮忙提供具体例子,Buddy 兄在此谢各位了.   1,在电路中没有任何功能,只是在PCB上为了调试方便或兼...
EE直播间
更多
我要评论
5
35
关闭 站长推荐上一条 /3 下一条