JasonChing 发表于 2017-5-13 16:43:07

CSR8670 MessagePioChanged

static void app_handler(Task task, MessageId id, Message message)
{
    switch(id)
    {
      case MESSAGE_PIO_CHANGED:
            handle_pio(task, (MessagePioChanged*)message);
            break;
      default:
            printf("Unhandled message 0x%x\n",id);
      }
}


static void handle_pio(Task task, MessagePioChanged *pio)
{
    if (pio->state & BUTTON_A)
      printf("BUTTON A pressed\n");
    if (pio->state & BUTTON_B)
      printf("BUTTON B pressed\n");
}



(MessagePioChanged*)message和   MessagePioChanged *pio是什么意思啊,没搞懂MessagePioChanged是个什么


kandy11 发表于 2017-5-13 22:25:28

MessagePioChanged是个结构体,成员如下:
uint16         state;    //The state of PIO lines 0..15 when this message was sent.
uint32         time;    //The time at which that state was valid.
uint16         state16to31;    //The state of PIO lines 16..31 when this messsage was sent.


JasonChing 发表于 2017-5-14 10:00:02

kandy11 发表于 2017-5-13 22:25
MessagePioChanged是个结构体,成员如下:
uint16         state;    //The state of PIO lines 0..15 when this...

谢谢,大概猜想是个结构体,不过在哪里查到的,我没查到。

另外,(MessagePioChanged*)message 是什么表示法,没见到过,麻烦您指点一下,谢谢您

kandy11 发表于 2017-5-14 13:28:05

(MessagePioChanged*)message 是强制类型转换。
VM library Doxygen里面有这个的具体说明,你可以找一下。

woodandwood 发表于 2017-5-14 14:24:18

路过学习一下。。。。

JasonChing 发表于 2017-5-14 17:05:30

kandy11 发表于 2017-5-14 13:28
(MessagePioChanged*)message 是强制类型转换。
VM library Doxygen里面有这个的具体说明,你可以找一下。 ...

好的,谢谢,刚开始学习,很多资料不知道如何下手查阅:handshake
页: [1]
查看完整版本: CSR8670 MessagePioChanged