通过改变需求方UUID的项目的UUIDs is proper, but the discovery functions are populating the dsps enviroment structure which holds the information regarding the service that is discovered on the other side of the link, so you will have to modify that accoring to your needs as well. In order to check if the discovery is working properly you will have to check if the the infomation in the application enviroment are proper and correspond to the actual handles of your peripheral's database.
嗨prasanth.velliyangiri,
1.这些是不同的项目,所需的更改远非微小的修改,DSPS主机检查特定配置文件(DSP配置文件),因此您应该更改主机的服务发现操作并将其调整为IOT可用服务特征。发现服务后,可以在可用特征上启用通知,并且您可以按UART上通知您的数据。
2.同样适用于自定义项目,必须更改主机的发现过程,以查找自定义配置文件的特征。
谢谢mt_dialog.
问:如何为客户端角色创建自定义配置文件,搜索服务(Sample128_After第7.3.6.zip项目(@Server角色))连接到服务,查找特征并读取/写入特征?
我经历了rw-ble-gatt-is.doc。这个Doc只给出协议。所以,如果您提供的步骤教程,如自定义档案创作,那将是很棒的..谢谢你..!
嗨prasanth.velliyangiri,
不幸的是,没有有关服务和特征的发现过程的可用教程,但您可以作为示例,DSP(这是自定义128位服务)主机侧,以便实现您自己的Central连接,搜索。并在客户端设备中发现特定服务。
谢谢mt_dialog.
亲爱的对话框
这些是我在DSPS主机中完成的更改 - Sample128_Awter第7.3.6节项目-@服务器角色
第1步:按照我的自定义配置文件服务和特征,在SPS_CLIER.H中介入UUID
sps_service_uuid = sample128_svc.
sps_server_tx_uuid = sample128_1_val.
sps_server_rx_uuid = sample128_2_val.
sps_flow_ctrl_uuid = sample128_3_val.
第2步:下一个凹陷
const struct prf_char_def_128 spsc_sps_char [spsc_char_max] = {
[SPSC_SRV_TX_DATA_CHAR] = {sample128_1_val, ATT_MANDATORY, ATT_CHAR_PROP_RD | ATT_CHAR_PROP_WR },
[spsc_srv_rx_data_char] = {sample128_2_val,att_mandatory,att_char_prop_rd |ATT_CHAR_PROP_NTF},
[SPSC_FLOW_CTRL_CHAR] = {sample128_3_val, ATT_MANDATORY, ATT_CHAR_PROP_RD | ATT_CHAR_PROP_NTF }
};
第3步:在sps_client_enable_req_handler&gattc_cmp_evt_handler中分配uuid ...
UINT8_T SPS_DATA_SERVICE_UUID [] = SAMPLE128_SVC;
but code stops at GLOBAL_INT_START(); // arch_main
what am i missing ...??what else i have to change ?
嗨prasanth,
首先,您需要提到您的代码停止在global_int_start();我不认为你的代码在那里停下来,它只是通过主要功能循环,自设备刚刚扫描并且不做任何其他事情,这是您的代码更常见的点,所以您正在运行循环时正确地运行应该和所有例子都在做。
通过改变需求方UUID的项目的UUIDs is proper, but the discovery functions are populating the dsps enviroment structure which holds the information regarding the service that is discovered on the other side of the link, so you will have to modify that accoring to your needs as well. In order to check if the discovery is working properly you will have to check if the the infomation in the application enviroment are proper and correspond to the actual handles of your peripheral's database.
谢谢mt_dialog.
你能告诉我,当客户个人资料教程将可用时请告诉我?
谢谢对话框
嗨prasanth,
据我所知,任何关于一个关于教程的计划,它将一步一步地指导您关于创建主机和发现过程。
谢谢mt_dialog.
亲爱的对话框
在DSPS_HOST项目中
Q1:您能否指定与读取DSPS_DEVICE(服务器项目)的特征相关的函数
嗨prasanth,
在580中,没有指示中央读取的特征的应用程序,这是由堆栈处理的,没有配置文件应用程序功能,如果这是你的意思。有关DSP的应用程序配置文件函数的更多信息,您可以在6.7部分应用程序任务界面上查看用户手册(UM-B-038)到串行端口服务。
谢谢mt_dialog.
int sample128_timer_handler.(ke_msg_id_t const msgid,
struct gapm_cmp_evt const * param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
ke_timer_set(app_sample128_timer,task_app,50);
sample128_placeholder++;
struct sample128_upd_char2_req * req = ke_msg_alloc(
sample128_upd_char2_req,
task_sample128,
task_app,
sample128_upd_char2_req.
);
req-> val = sample128_PlaceHolder;
req-> conhdl = app_env.conhdl;
KE_MSG_SEND(REQ);
}
我想在DSP设备项目中实现TIMER处理程序以获取我们正在发送的数据,因此DSP设备项目定期传输......我在-USER_SPS_SERVER_DATA_TX_CFM_HANDLLER中尝试过......但似乎不起作用
嗨prasanth,
示例128使用不同的消息来触发比DSP项目的通知。您提到的函数发送示例128_upd_char2_req消息,DSP中没有处理此类消息的DSP中没有处理程序,因为DSP不支持此消息。您提到的处理程序处理SPS_SERVER_DATA_TX_CFM,该命令确认数据已放在TX缓冲区中。如果您希望设备定期发送数据,您可以在下面的帖子遵循http://support.dialog-semicondiondiondiondum/dsps-panasonic-evalpan1740。
谢谢mt_dialog.
亲爱的对话框,
/ ***************************************************************/
typedef struct wrbl_env_t.
{
void(* wrbl_timer_cb)();
uint16_t sensor_read_time; // VP
uint16_t sensor_read_time_1;// vp.
uint16_t sensor_read_time_2;// vp.
wrbl_env_struct;
/ **************************************************************** /
void user_ble_pull(bool init,bool成功)
{
如果(init)
{
句号_data_timer_handler();
}
别的
{
句号_data_timer_handler();
}
}
/ ******************************************************************** /
void句号_data_timer_handler(void)
{
static uint16_t length;
uint8_t * p_data = null;
user_send_ble_data(p_data,长度);
wrbl_env.sensor_read_time = app_easy_timer(100,句号_data_timer_handler);
}
/ ********************************************************************** /
void user_on_disconnect(struct gapc_disconnect_ind const * param)
{
default_app_on_disconnect(param);
ARCH_PRINTF(“设备已断开\ r \ n”);
if(wrbl_env.sensor_read_time == 1)
{
app_easy_timer_cancel(wrbl_env.sensor_read_time);
}
}
/ ********************************************************************* /
Q1:我在DSP设备项目的上面更改 - 代码在这里停止 - > if((getword16(sys_stat_reg)&dbg_is_up)== dbg_is_up)
__asm(“bkpt#0 \ n”);
什么可能是这个问题??我错过了什么?谢谢你..
嗨prasanth,
我猜你代码在NMI或HardFault处理程序中停止,您的代码粘在某个地方,大多数可能在读取SPI传感器时(如果启用了看门狗)或者您正在访问空指针和硬盘处理程序触发器。SDK提供该功能,以弄清楚发生错误的位置,请检查UM-B-051文档以获取更多信息,以便调试此操作。
谢谢mt_dialog.
亲爱的对话框
Q1:即使添加此功能后,我也没有发现传输中的任何延迟。你能帮我解决这个问题吗?
void句号_data_timer_handler(void)
{
//静态UINT16_T长度;
// uint8_t * p_data = null;
user_send_ble_data("FELLOW", 6);
wrbl_env.sensor_read_time = app_easy_timer(20000,句号_data_timer_handler);
/*如果(wrbl_env.sensor_read_time!= null)
{
app_easy_timer_cancel(wrbl_env.sensor_read_time);
* /
}
Q2:如果我想使用ke_timer_set();直接用于定期传输,如何在DSP设备项目中使用它?
嗨prasanth,
我没有得到这个问题,内核计时器没有触发?您可以使用ARCH_SET_PXACT_GPIO()并检查计时器是否已过度。我在新的DSP项目中测试了上面的代码,并在连接时触发定时器,它工作正常,我可以在手机应用程序上正确接收数据。
使用app_easy_timer()API,它使用KE_TIMER_SET(),并且当处理程序执行时,您可以执行代码并重置计时器。如果要直接使用ke_timer_set检查您的其他帖子http://support.dialog-semicondiondiondiondum/apptimerset-0.。
谢谢mt_dialog.
我没有得到 - 连接时触发计时器?实际上我正在打电话 - 句号 - _data_timer_handler();- 内部函数 - void user_ble_pull(bool init,bool成功)......你能否建议我在哪里放置 - 句号_data_timer_handler();- DSP设备项目中的呼叫功能?如果你给我工作的例子代码,那就太好了......
嗨prasanth,
您必须建立一个连接,以便开始向中央发送通知,而无需连接,我不会看到这是可能的。因此,连接到一个中央并启动计时器,当处理程序触发时,您将通过user_send_ble_data发送通知,并且您将重置计时器。preriodical_data_timer_handler()只是一个处理程序,当您使用该回调的计时器启动时,将在时间过去时执行回调。
谢谢mt_dialog.