自定义配置文件开发

6个帖子/ 0新
最后一篇
Richardejiang
离线
最后一次露面:6年1个月前
加入:2015-05-08 04:49
自定义配置文件开发

您好,我正在为指南(AN-B-029)开发DA14580的自己的自定义配置文件。有几个我不确定的部分,所以我需要一些澄清者。

1.在DOC的第7.2.4部分中,我们正在修改“struct sample128_val_ind”(并且还为部分到7.2.4末),我们正在更改与特征相关的所有数据类型。它是否与之相关写作?如果有几个具有写性能的特征怎么样?我应该为所有写作属性做同样的事情吗?当我们需要“Sample128_send_val”方法时,我将如何修改它?我应该为每个特征定义一个用写属性,还是应该改变参数?对不起,我对这个区域很新,所以你可以给我一些关于如何做的建议吗?

2.在DOC的第7.3.6部分,这部分与通知财产有关吗?我应该为所有特征进行通知属性吗?

谢谢!

设备:
mt_dialog.
离线
最后一次露面:6个月3周前
职员
加入:2015-06-08 11:34
嗨richardejiang,

嗨richardejiang,

当在特征处执行写入时,处理程序Gattc_Write_cmd_ind_handler()从那里,根据特征,调用相应的函数,发出写入指示。所以是的,您必须为所有可以编写的特征做同样的特征,并为您想要的每种指示和发送指示消息的新函数进行新消息。yes部分从7.3添加了一个通知属性的特征。

谢谢mt_dialog.

Richardejiang
离线
最后一次露面:6年1个月前
加入:2015-05-08 04:49
你好,

你好,

感谢您的回复,确实有很多帮助。但是,我仍然有一些关于代码的疑虑(对于gattc_write_cmd_ind_handler())。我已经更改了sample128_val_send(uint8_t):sample128_val_send(simple_char_1,simple_char_3,simple_char_7)(我有三个用写属性的特征),然后在gattc_write_cmd_ind_handler中,我将检查条件更改为此:if(char_code == sample128_char_1 || char_code== sample128_char_3 || char_code == sample128_char_7),之后是正确的这样做:
if(char_code == sample128_char_1)attmdb_att_set_value(param->句柄,sizeof(simple_char_1),(uint8_t *)和param->值[0]);
否则if(char_code == sample128_char_3)attmdb_att_set_value(param->句柄,sizeof(simple_char_3),(uint8_t *)和param->值[0]);
else attmdb_att_set_value(param->句柄,sizeof(simple_char_7),(uint8_t *)和param->值[0]);

那么我应该如何使用Sample128_send_val()(在以上3个语句之后,如果(param-> last))?我将参数的数量设置为3,但我不知道在这里,我应该将参数作为示例它作为sample128_send_val()。

谢谢!

mt_dialog.
离线
最后一次露面:6个月3周前
职员
加入:2015-06-08 11:34
嗨richardejiang,

嗨richardejiang,

来自函数sample128_val_send,您将发送第一个特征已经写的指示。您必须为每个不同的特征声明不同的消息指示,并发送不同的指示消息,您所做的同样的事情,以便在教程中添加第三个特征的消息。请建议其他参考项目作为一个例子。

谢谢mt_dialog.

Richardejiang
离线
最后一次露面:6年1个月前
加入:2015-05-08 04:49
你好:

你好:

你可以在哪个项目上更具体地参考该示例吗?我想我明白了:我必须为写属性的每个特征定义一组函数和结构(示例:在Sample128_task.h中,带有写属性的Char 1的Samle128_val_ind_1,用于Char 2的Sample128_Val_ind_2,写入属性......另一个例子在Sample128.c:sample128_send_val_1中为char 1,sample128_send_val_2 for char 2 ......)我是正确理解吗?

谢谢!

mt_dialog.
离线
最后一次露面:6个月3周前
职员
加入:2015-06-08 11:34
嗨richardejiang,

嗨richardejiang,

我没有考虑到一个特定的项目,但你有这一点。

然后在gattc_write_cmd_ind_handler中的sample128_task.c中,您可以使用这样的内容。

if(char_code == sample128_1_char)
{

//保存DB中的值
attmdb_att_set_value(param->句柄,sizeof(uint8_t),(uint8_t *)和param->值[0]);
如果(param->最后)
{
sample128_send_val(param-> value [0]);
}

status = prf_err_ok;

}
否则if(char_code == sample128_2_char)
{
attmdb_att_set_value(param->句柄,sizeof(uint8_t),(uint8_t *)和param->值[0]);
如果(param->最后)
sample128_send_val_2(param-> value [0]);
status = prf_err_ok;
}
否则if(char_code == sample128_3_char)
{
attmdb_att_set_value(param->句柄,sizeof(uint8_t),(uint8_t *)和param->值[0]);
如果(param->最后)
sample128_send_val_3(param-> value [0]);
status = prf_err_ok;
}

谢谢mt_dialog.