接下来的任务是实现在C语言中调用Python函数。
我的想法是,通过将一个Python函数注册到侦听器,当有按键中断触发的时候,调用这个Python函数。
也就是说,这些函数不是事先写死到代码中的,而是通过动态注册的方式实现。
这里面要用到的一个特殊的方法是mp_sched_schedule,提供个C调用Python的方法,但是此方法目前好像只能传一个参数过去,还没来得及传入多个参数用那个方法。
废话不多说,开始写码!
第一步,在昨天代码的基础上,对children_obj_t扩展出一个lollipop_arrive的方法,并定义一个active_children作为最后的活动类,让C知道应该触发谁的事件,同时对mars_children_make_new方法进行简单修改,加入一行active_children=self;代码如下:typedef struct _children_obj_t
{
mp_obj_base_t base; // 定义的对象结构体要包含该成员
char* name; // 成员函数
uint8_t age;
uint8_t sex;
**mp_obj_t lollipop_arrive; //当棒棒糖到达的时候的回调函数**
}children_obj_t;
**children_obj_t* active_children;**
STATIC mp_obj_t mars_children_make_new(const mp_obj_type_t *type,
<