SDK中类似于taskFxn任务在处理事件时有两种方式:一种是来自stack的消息事件,这种当时是直接返回相应的数据结构体;
另一种是通过向stack注册回调函数(我理解的是回调函数是向协议栈注册的,不知道是否正确,请指正!),通过自定义回调函数的内容post相应的事件内容,进而处理。
我想请问为何会有关于这两点的不同,以及在开发中如何区分哪些是可以注册回调函数,哪些是协议栈直接post事件消息?谢谢!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
SDK中类似于taskFxn任务在处理事件时有两种方式:一种是来自stack的消息事件,这种当时是直接返回相应的数据结构体;
另一种是通过向stack注册回调函数(我理解的是回调函数是向协议栈注册的,不知道是否正确,请指正!),通过自定义回调函数的内容post相应的事件内容,进而处理。
我想请问为何会有关于这两点的不同,以及在开发中如何区分哪些是可以注册回调函数,哪些是协议栈直接post事件消息?谢谢!
您好,
这两种方式的不同在于消息事件的来源不同。第一种方式是直接处理来自协议栈的消息事件,而第二种方式是通过自定义回调函数来处理应用程序自己的事件。
第一种方式更适合处理来自协议栈的通知和响应事件,例如连接状态变化、GATT请求等。这些事件可以直接根据消息结构体中的信息进行处理,并返回相应的数据结构体。
第二种方式更适合处理应用程序自己的事件,例如按键事件、传感器数据等。应用程序可以定义自己的事件类型,并通过自定义回调函数来处理这些事件。在回调函数中,应用程序可以根据事件类型和事件数据来执行相应的操作,并将处理结果发送回主任务处理。