您尚未登录。

楼主 # 昨天 16:21:28

onongg
会员
注册时间: 2025-05-13
已发帖子: 7
积分: 17

事件回调里的singalCode疑惑

移植到单片机,做事件回调时参考:https://pikapython.com/doc/coreapi_event.html
单片机IO口触发,C语言通过pks_eventLisener_sendSignal发送信号。

python代码:
def callback(signal):
    print('callback,signal:',signal)

测试C代码:
PikaEventListener* g_pika_user_listener;
uint32_t EventId = 0;

void Device_DigitalInput_setCallBack(PikaObj *self, Arg* eventCallBack)
{
    if(NULL==g_pika_user_listener)
    {
        pika_eventListener_init(&g_pika_user_listener);
    }
    uint32_t eventId = EventId;
    // 将这个事件注册进监听器
    pika_eventListener_registEventCallback(g_pika_user_listener,eventId,eventCallBack);
}

void EventHandler(uint32_t code)
{
    uint32_t eventId = EventId;
    pks_eventLisener_sendSignal(g_pika_user_listener, eventId, code);
}

当有触发时调用EventHandler,发送信号,这个code变化,而python里打印的signal却一直是0。
再继续用code++测试发送,到16时有打印16,经观擦是低4bit被清0

这个里面是否还有其他配置,或者这个singalCode有范围?

离线

#1 昨天 17:45:45

lyon1998
Moderator
注册时间: 2021-12-01
已发帖子: 140
积分: 155

Re: 事件回调里的singalCode疑惑

这个问题我也发现了,是内部 bug,我已经修改了,需要更新一下版本:

pikascript-core==latest
PikaStdLib==latest

离线

楼主 #2 昨天 23:16:55

onongg
会员
注册时间: 2025-05-13
已发帖子: 7
积分: 17

Re: 事件回调里的singalCode疑惑

更新前是V1.13.4,更新后是一串数字87640856fa447be1ab1f70668994b55aeeaade5e

更新后,在keil里有提示error
linking...
.\objects\template.axf: Error: L6218E: Undefined symbol strdup (referred from pikaobj.o).
.\objects\template.axf: Error: L6218E: Undefined symbol strndup (referred from pikaobj.o).
Not enough information to list load addresses in the image map.
Not enough information to list image symbols.
这个strdup和strndup好像之前没有的。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn