在创建消息时,我会被Ke_Build_ID(Task_ *,conidx)与task_ *混淆。主要是,何时使用它,当不使用它时。我认为它是一种创建一个实例的方法,或者我们是否正在执行c ++一个类的实例。显然,在调用连接时,我无法使用它,因为我还没有conidx。直到有一个连接指示,未定义此参数。我假设这意味着一个人不能同时尝试连接到两个设备。
因此,我的假设是在连接之后,所有消息创建都必须在ConIDX上用宏将ConIDX粘附到目标任务。这将是所有服务发现和相关的呼叫,配对和绑定程序,写作和读取特征/描述符,以及断开连接(也许有更多)。这是一个正确的假设吗?
嗨Brian,
task_taskname定义了任务的ID,但这与任何链接无关。然后宏Ke_Build_ID将使用特定链接绑定任务。
问候!
PY
好的,那么我纠正了一旦连接,我应该使用ke_build_id来调用连接的设备上的服务发现,配对,绑定,读/写入,断开连接等;
例如这一点
struct gapc_bond_cmd * bond_cmd = ke_msg_alloc(gapc_bond_cmd,ke_build_id(task_gapc,device-> conidx),task_app,gapc_bond_cmd);
而不是这样
struct gapc_bond_cmd * bond_cmd = ke_msg_alloc(gapc_bond_cmd,task_gapc,task_app,gapc_bond_cmd);
这两项工作,但我认为这是因为我只能用一个设备测试,如果我有多个设备连接,则第一个将工作,第二个将失败。