亲爱的对话框
我的问题是
1.多体DSP设备将处于睡眠模式(Appx 6 DSP设备)
2. DSPS主机调查一个DSP设备,因此DSP设备唤醒并准备发送数据。
3.轮询完成后,下一步,DSPS主机将轮询下一个DSP设备。这该怎么做 ??请指导我...!
谢谢对话框
关键词:
设备:
亲爱的对话框
我的问题是
1.多体DSP设备将处于睡眠模式(Appx 6 DSP设备)
2. DSPS主机调查一个DSP设备,因此DSP设备唤醒并准备发送数据。
3.轮询完成后,下一步,DSPS主机将轮询下一个DSP设备。这该怎么做 ??请指导我...!
谢谢对话框
嗨prasanth.velliyangiri,
我想你的意思是设备未连接,您不希望实现多个同时连接,而是连接多个同时连接,而是连接,交换数据和断开方案。
1.外围设备必须醒来一次,虽然广告,但是核心无法看到非广告设备。
2.为了发送数据,必须有一个连接,因此扫描仪从外围找到广告,您可以在广告字符串或BD地址中查看信息并从中央发出连接请求。
3.交换数据后,主机可以发出断开连接并继续扫描下一个外设以连接和交换数据。
谢谢mt_dialog.
是的,您应该能够采用具有客户端(中央/主机)和服务器(外设/设备)实现的最新DSP应用程序。
目前,客户端应用程序只是扫描任何DSP外围设备,并连接到它发现的第一个。
您需要修改应用程序的客户端,以执行您需要的操作。
谢谢,马丁
嗨对话框
感谢你的回复。我正在使用DSP项目,我可以配置BLE设备地址
Q1:我看到不同的BLE地址,为什么??
1. #define bt_default_bdaddr {{0x01,0x23,0x45,0x67,0x89,RIPPLE_ID}}(IN => CO_BT.H)
2. ///设备的BD地址
.peer_addr_0 = {0x0,0x0,0x0,0x0,0x0,0x0},(in => user_config.h-line 340)
3.在DSPS Android应用程序中
device_address 90:b6:86:97:D2:A7(这个地址我无法找到DSPS_DEVICE项目中的)
4. #define cfg_nvds_tag_bd_address {0x00,0x00,0x00,0xca,0xea,0x80}(在nvds.c中)
Q2:基于哪个参数大师(DSPS_HOST)将决定它必须连接哪个从站(DSPS_DEVICE)?(中央(DSPA_HOST)与从机(DSPS_DEVICE)连接所需的参数是什么。
谢谢对话框......
嗨prasanth.velliyangiri,
Q1。您可以配置BD地址,引用设计从NVDS结构获取其BD地址,并且BD地址可以从CFG_NVDS_TAG_BD_ADDRESS的DA1458x_config_Advanced.h文件配置,如果您更改此,则该BD您的设备的地址应该改变。SDK虽然它首先检查OTP标头设备ID字段是否已刻录,包含与0不同的值。如果标题的值小于零,则这是设备将使用的地址。因此,如果在NVDS中定义BD地址,并且您的OTP标题具有刻录的设备ID字段,则将使用OTP的地址。在多个连接的情况下,您指示的结构构件涉及连接设备的BD地址。
Q2。当中央将在获得广告指示后立即发送连接参数,在user_on_add_report_ind中调用app_easy_gap_start_connection_to_set(),传递的参数是间隔12.5ms,并且从user_central_conf结构中拍摄REST参数。
谢谢mt_dialog.
嗨对话框
感谢你的回复。
Q1。在DSPS_DEVICE项目中,广告启动和停止?我想实现一个逻辑,在DSPS_HOST中发生连接后,DSPS_DEVICE会从DSPS_HOST接收测试STR,如果它匹配,则与预定定义数据进行比较,然后DSPS_DEVICE将数据发送到DSPS_HOST。
Q2:如果您可以为DSPS_HOST函数提供讲述DSPS_DEVICE广告,接收数据和SIMLAR的状态图,那将是很好的。
谢谢对话框
嗨prasanth.velliyangiri,
Q1。启动后,设备启动广告并继续广告,直到中央连接在设备上,一旦中央断开从设备断开连接,就会再次启动广告。关于您的问题,您的意思是当发生连接和断开连接时触发到外围设备的函数?这些函数将是user_on_connection()和user_on_disconnect。关于启动广告的广告,您调用default_advertise_operation,它在default_app_on_db_init_complete中调用(一旦创建数据库),并且在您的设备连接或取消时,就会出现广告停止。
Q2。在图4和5中的DSP用户手册UM-B-038中,示出了外围和中心的应用FSM。
谢谢mt_dialog.
嗨对话框
感谢你的回复..
在调试DSPS_DEVICE代码时(我从(app_task.c / line 383)=> execute_callback_void(app_on_db_init_complete),代码停止在下面的函数
int app_entry_point_handler(ke_msg_id_t const msgid,
void const * param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
INT I = 0;
enum ke_msg_status_tag process_msg_handling_result;
当我
嗨prasanth.velliyangiri,
您提到的函数是处理从BLE堆栈接收的所有消息的主处理程序。代码完全困住的地方?您是否对SDK进行了任何更改?
谢谢mt_dialog.
关于DSPS_HOST轮询DSPS_DEVIECE的对话
我做了以下事情
dsps_host -
// ***在user_sps_scheduler.c
///用户轮询数据
#define user_poll_data“\ x1a \ x1b \ x1c \ x1d \ x1e \ x1f”
void user_ble_pull(bool init,bool成功)
{
如果{
user_send_ble_data(user_poll_data,6);
}
别的{
user_send_ble_data(user_poll_data,6);
}
}
/ **************************************************************************************************************** /
//在DSPS_DEVIECE中
// ***在user_sps_scheduler.c
void user_ble_push(uint8_t * wrdata,uint16_t write_amount)
{
//将项目写入缓冲区;
user_buffer_write_items(&ble_to_periph_buffer,wrdata,write_amount);
seriond_timer_handler();
}
句号_timer_handler()
{
user_send_ble_data(“prasanth”,8);//将定期发送数据
}
主发送轮询数据=>设备接收UART的任何数据,定期计时器称为,现在Deviec将发送自己的数据...
但我没有看到DSPS_HOST侧的任何数据?任何帮助
谢谢
嗨prasanth.velliyangiri,
您已从User_ble_Pull中删除了所有实现,删除了所有检查和初始化,并通过没有条件的简单If()替换此操作,并且您只需对圣务区执行写入。让我们假设您不想将数据更新或推送到缓冲区中,因此您不需要上述所有功能,您只想直接写入其他特征(只是通过执行上述方式清除,您正在绕过发送数据的缓冲区到另一侧,您将数据写入外围特性)。DSP应用程序中的许多函数在包括user_on_system_powered()中的许多函数调用了user_ble_pull,这意味着即使在未连接时也会向堆栈发送数据,我无法预测会发生什么。如果您只想直接写入从设备的特征,您只需在连接时从主机中设置计时器并开始将数据与user_send_ble_data()发送到另一侧(确保在UART上进行正确的连接)。在您这样做的情况下,您可以在另一侧获取数据,在设备中的数据接收时启动定期处理程序,您应该在主机上开始获取数据,如果没有检查主机上的接收处理程序是否触发。另请确保已正确连接流控制引脚,并且您的终端在定义的流量控制下运行。
谢谢mt_dialog.
嗨对话小组
在DSPS_HOST代码=>
/ ****************************************************************************************************** /
void user_ble_pull(bool init,bool成功)
{
如果{
user_send_ble_data(“user_poll_data”,14);
}
别的{
user_send_ble_data(“user_poll_data”,14);
}
}
/ **************************************************************************************************************** /
//在DSPS_DEVIECE中
#dsps_polldata“dsps_polldata”
// ***在user_sps_scheduler.c
void user_ble_push(uint8_t * wrdata,uint16_t write_amount)
{
//将项目写入缓冲区;
user_buffer_write_items(&ble_to_periph_buffer,wrdata,write_amount);
if(!memcmp(wrdata,dsps_polldata,sizeof(dsps_polldata))))
{
seriond_timer_handler();
}
}
/ ********************************************************************************** /
句号_timer_handler()
{
user_send_ble_data(“prasanth”,8);//将定期发送数据
}
上面的轮询逻辑工作正常与主机<=>一个dsps_device,但是通过host <=>多维DSPS_DEVICE我没有得到任何数据,通过此轮询逻辑我的主机<=>多维DSPS_DEVICE代码正常工作(我能够连接两个设备同时,我正在将数据从DSPS_DEVICE获取到主机端),可能是问题
谢谢
嗨prasanth.velliyangiri,
如许多帖子所述,DSP示例不支持在一个外设上连接的多个从站,您可以看一下这篇文章,其中客户达到该帖子,但对话框不支持这一点https://support.dialog-semicondiondiondum/ multiple-slaveda14580-connectio ...。我想在尝试从中央发送数据时,首先要查看的是连接索引,请检查您尝试通过数据从设备1或从设备的两个连接的站点。
谢谢mt_dialog.